Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memanggil API Data Amazon RDS dengan AWS CLI
Anda dapat memanggil RDS Data API (Data API) menggunakan file. AWS CLI
Contoh berikut menggunakan AWS CLI for Data API. Lihat informasi selengkapnya di Referensi AWS CLI untuk API Data.
Dalam setiap contoh, ganti Amazon Resource Name (ARN) untuk cluster DB dengan ARN untuk cluster Aurora DB Anda. Selain itu, ganti ARN rahasia dengan ARN rahasia di Secrets Manager yang mengizinkan akses ke klaster basis data.
catatan
Kaleng AWS CLI memformat tanggapan di JSON.
Topik
Memulai transaksi SQL
Anda dapat memulai transaksi SQL menggunakan perintah CLI aws rds-data
begin-transaction
. Panggilan ini menghasilkan pengidentifikasi transaksi.
penting
Dalam Data API, transaksi akan habis jika tidak ada panggilan yang menggunakan ID transaksinya dalam tiga menit. Jika waktu transaksi habis sebelum dilakukan, Data API akan mengembalikannya secara otomatis.
Pernyataan bahasa definisi data MySQL (DDL) di dalam transaksi menyebabkan komit implisit. Kami menyarankan Anda menjalankan setiap pernyataan MySQL DDL dalam perintah execute-statement
terpisah dengan opsi. --continue-after-timeout
Selain opsi umum, tentukan opsi --database
yang menyediakan nama basis data.
Misalnya, perintah CLI berikut memulai transaksi SQL.
Untuk Linux, macOS, atau Unix:
aws rds-data begin-transaction --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" \ --database "mydb
" --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
"
Untuk Windows:
aws rds-data begin-transaction --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" ^ --database "mydb
" --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
"
Berikut adalah contoh respons tersebut.
{
"transactionId": "ABC1234567890xyz
"
}
Menjalankan pernyataan SQL
Anda dapat menjalankan pernyataan SQL menggunakan perintah CLI aws rds-data execute-statement
.
Anda dapat menjalankan pernyataan SQL dalam transaksi dengan menentukan pengidentifikasi transaksi dengan opsi --transaction-id
. Anda dapat memulai transaksi menggunakan perintah CLI aws rds-data begin-transaction
. Anda dapat mengakhiri dan menerapkan transaksi menggunakan perintah CLI aws rds-data
commit-transaction
.
penting
Jika Anda tidak menentukan opsi --transaction-id
, perubahan yang dihasilkan dari panggilan akan diterapkan secara otomatis.
Selain opsi umum, tentukan opsi-opsi berikut:
-
--sql
(wajib) – Pernyataan SQL untuk dijalankan pada klaster basis data. -
--transaction-id
(opsional) – Pengidentifikasi transaksi yang dimulai menggunakan perintah CLIbegin-transaction
. Tentukan ID transaksi yang ingin Anda sertakan pernyataan SQL-nya. -
--parameters
(opsional) – Parameter untuk pernyataan SQL. -
--include-result-metadata | --no-include-result-metadata
(opsional) – Nilai yang menunjukkan apakah metadata disertakan dalam hasil. Nilai default-nya--no-include-result-metadata
. -
--database
(opsional) – Nama basis data.Opsi
--database
mungkin tidak berfungsi ketika Anda menjalankan pernyataan SQL setelah menjalankan--sql "use
di permintaan sebelumnya. Kami merekomendasikan agar Anda menggunakandatabase_name
;"--database
opsi, bukan menjalankan pernyataan--sql "use
.database_name
;" -
--continue-after-timeout | --no-continue-after-timeout
(opsional) — Nilai yang menunjukkan apakah akan terus menjalankan pernyataan setelah panggilan melebihi interval batas waktu API Data 45 detik. Nilai default-nya--no-continue-after-timeout
.Untuk pernyataan bahasa definisi data (DDL), kami merekomendasikan agar Anda terus menjalankan pernyataan setelah waktu panggilan habis untuk menghindari kesalahan dan kemungkinan struktur data rusak.
-
--format-records-as "JSON"|"NONE"
– Nilai opsional yang menentukan apakah hasil yang ditetapkan akan diformat sebagai string JSON. Nilai default-nya"NONE"
. Lihat informasi penggunaan tentang pemrosesan set hasil JSON di Memproses hasil kueri Amazon RDS Data API dalam format JSON.
Klaster basis data menghasilkan respons untuk panggilan.
catatan
Batas ukuran respons adalah 1 MiB. Jika panggilan menghasilkan data respons dengan ukuran lebih dari 1 MiB, panggilan tersebut akan diakhiri.
Untuk Aurora Serverless v1, jumlah maksimum permintaan per detik adalah 1.000. Untuk semua database lain yang didukung, tidak ada batasan.
Misalnya, perintah CLI berikut menjalankan satu pernyataan SQL dan menghilangkan metadata dalam hasil (default).
Untuk Linux, macOS, atau Unix:
aws rds-data execute-statement --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" \ --database "mydb
" --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" \ --sql "select * from mytable
"
Untuk Windows:
aws rds-data execute-statement --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" ^ --database "mydb
" --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" ^ --sql "select * from mytable
"
Berikut ini adalah contoh responsnya.
{
"numberOfRecordsUpdated": 0,
"records": [
[
{
"longValue": 1
},
{
"stringValue": "ValueOne
"
}
],
[
{
"longValue": 2
},
{
"stringValue": "ValueTwo
"
}
],
[
{
"longValue": 3
},
{
"stringValue": "ValueThree
"
}
]
]
}
Perintah CLI berikut menjalankan satu pernyataan SQL dalam transaksi dengan menentukan opsi --transaction-id
.
Untuk Linux, macOS, atau Unix:
aws rds-data execute-statement --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" \ --database "mydb
" --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" \ --sql "update mytable set quantity=5 where id=201
" --transaction-id "ABC1234567890xyz
"
Untuk Windows:
aws rds-data execute-statement --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" ^ --database "mydb
" --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" ^ --sql "update mytable set quantity=5 where id=201
" --transaction-id "ABC1234567890xyz
"
Berikut adalah contoh respons tersebut.
{
"numberOfRecordsUpdated": 1
}
Perintah CLI berikut menjalankan satu pernyataan SQL dengan parameter.
Untuk Linux, macOS, atau Unix:
aws rds-data execute-statement --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" \ --database "mydb
" --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" \ --sql "insert intomytable
values (:id
,:val
)" --parameters "[{\"name\": \"id
\", \"value\": {\"longValue\":1
}},{\"name\": \"val
\", \"value\": {\"stringValue\": \"value1
\"}}]"
Untuk Windows:
aws rds-data execute-statement --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" ^ --database "mydb
" --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" ^ --sql "insert intomytable
values (:id
,:val
)" --parameters "[{\"name\": \"id
\", \"value\": {\"longValue\":1
}},{\"name\": \"val
\", \"value\": {\"stringValue\": \"value1
\"}}]"
Berikut adalah contoh respons tersebut.
{
"numberOfRecordsUpdated": 1
}
Perintah CLI berikut menjalankan pernyataan SQL bahasa definisi data (DDL). Pernyataan DDL mengganti nama kolom job
menjadi kolom role
.
penting
Untuk pernyataan DDL, kami merekomendasikan agar Anda terus menjalankan pernyataan tersebut setelah waktu panggilan habis. Ketika pernyataan DDL berakhir sebelum selesai dijalankan, itu dapat mengakibatkan kesalahan dan kemungkinan struktur data rusak. Untuk terus menjalankan pernyataan setelah panggilan melebihi interval batas waktu API Data RDS 45 detik, tentukan opsi. --continue-after-timeout
Untuk Linux, macOS, atau Unix:
aws rds-data execute-statement --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" \ --database "mydb
" --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" \ --sql "alter table mytable change column job role varchar(100)
" --continue-after-timeout
Untuk Windows:
aws rds-data execute-statement --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" ^ --database "mydb
" --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" ^ --sql "alter table mytable change column job role varchar(100)
" --continue-after-timeout
Berikut adalah contoh respons tersebut.
{
"generatedFields": [],
"numberOfRecordsUpdated": 0
}
catatan
Data generatedFields
tidak didukung oleh Aurora PostgreSQL. Untuk mendapatkan nilai-nilai bidang yang dihasilkan, gunakan klausa RETURNING
. Lihat informasi selengkapnya di Returning data from modified rows
Menjalankan pernyataan SQL batch pada array data
Anda dapat menjalankan pernyataan SQL batch pada array data dengan menggunakan perintah CLI aws rds-data batch-execute-statement
. Anda dapat menggunakan perintah ini untuk melakukan impor massal atau operasi pembaruan.
Anda dapat menjalankan pernyataan SQL dalam transaksi dengan menentukan pengidentifikasi transaksi dengan opsi --transaction-id
. Anda dapat memulai transaksi menggunakan perintah CLI aws rds-data
begin-transaction
. Anda dapat mengakhiri dan menerapkan transaksi menggunakan perintah CLI aws rds-data commit-transaction
.
penting
Jika Anda tidak menentukan opsi --transaction-id
, perubahan yang dihasilkan dari panggilan akan diterapkan secara otomatis.
Selain opsi umum, tentukan opsi-opsi berikut:
-
--sql
(wajib) – Pernyataan SQL untuk dijalankan pada klaster basis data.Tip
Untuk pernyataan yang kompatibel dengan MySQL, jangan sertakan titik koma di akhir parameter
--sql
. Titik koma di belakang dapat menyebabkan kesalahan sintaksis. -
--transaction-id
(opsional) – Pengidentifikasi transaksi yang dimulai menggunakan perintah CLIbegin-transaction
. Tentukan ID transaksi yang ingin Anda sertakan pernyataan SQL-nya. -
--parameter-set
(opsional) – Set parameter untuk operasi batch. -
--database
(opsional) – Nama basis data.
Klaster basis data menghasilkan respons untuk panggilan.
catatan
Tidak ada batas atas tetap pada jumlah set parameter. Namun, ukuran maksimum permintaan HTTP yang dikirimkan melalui Data API adalah 4 MiB. Jika permintaan melebihi batas ini, Data API mengembalikan kesalahan dan tidak memproses permintaan. Batas 4 MiB ini mencakup ukuran header HTTP dan notasi JSON dalam permintaan. Dengan demikian, jumlah set parameter yang dapat Anda sertakan tergantung pada kombinasi faktor, seperti ukuran pernyataan SQL dan ukuran setiap set parameter.
Batas ukuran respons adalah 1 MiB. Jika panggilan menghasilkan data respons dengan ukuran lebih dari 1 MiB, panggilan tersebut akan diakhiri.
Untuk Aurora Serverless v1, jumlah maksimum permintaan per detik adalah 1.000. Untuk semua database lain yang didukung, tidak ada batasan.
Misalnya, perintah CLI berikut menjalankan pernyataan SQL batch pada array data dengan satu set parameter.
Untuk Linux, macOS, atau Unix:
aws rds-data batch-execute-statement --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" \ --database "mydb
" --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" \ --sql "insert intomytable
values (:id
,:val
)" \ --parameter-sets "[[{\"name\": \"id
\", \"value\": {\"longValue\":1
}},{\"name\": \"val
\", \"value\": {\"stringValue\": \"ValueOne
\"}}], [{\"name\": \"id
\", \"value\": {\"longValue\":2
}},{\"name\": \"val
\", \"value\": {\"stringValue\": \"ValueTwo
\"}}], [{\"name\": \"id
\", \"value\": {\"longValue\":3
}},{\"name\": \"val
\", \"value\": {\"stringValue\": \"ValueThree
\"}}]]"
Untuk Windows:
aws rds-data batch-execute-statement --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" ^ --database "mydb
" --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" ^ --sql "insert intomytable
values (:id
,:val
)" ^ --parameter-sets "[[{\"name\": \"id
\", \"value\": {\"longValue\":1
}},{\"name\": \"val
\", \"value\": {\"stringValue\": \"ValueOne
\"}}], [{\"name\": \"id
\", \"value\": {\"longValue\":2
}},{\"name\": \"val
\", \"value\": {\"stringValue\": \"ValueTwo
\"}}], [{\"name\": \"id
\", \"value\": {\"longValue\":3
}},{\"name\": \"val
\", \"value\": {\"stringValue\": \"ValueThree
\"}}]]"
catatan
Jangan sertakan jeda baris di opsi --parameter-sets
.
Menerapkan transaksi SQL
Dengan menggunakan perintah CLI aws rds-data commit-transaction
, Anda dapat mengakhiri transaksi SQL yang Anda mulai dengan aws rds-data
begin-transaction
dan menerapkan perubahan.
Selain opsi umum, tentukan opsi-opsi berikut:
-
--transaction-id
(wajib) – Pengidentifikasi transaksi yang dimulai menggunakan perintah CLIbegin-transaction
. Tentukan ID transaksi yang ingin Anda akhiri dan terapkan.
Misalnya, perintah CLI berikut mengakhiri transaksi SQL dan menerapkan perubahan.
Untuk Linux, macOS, atau Unix:
aws rds-data commit-transaction --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" \ --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" \ --transaction-id "ABC1234567890xyz
"
Untuk Windows:
aws rds-data commit-transaction --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" ^ --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" ^ --transaction-id "ABC1234567890xyz
"
Berikut adalah contoh respons tersebut.
{
"transactionStatus": "Transaction Committed"
}
Membatalkan transaksi SQL
Dengan menggunakan perintah CLI aws rds-data rollback-transaction
, Anda dapat membatalkan transaksi SQL yang Anda mulai dengan aws rds-data
begin-transaction
. Membatalkan transaksi akan membatalkan perubahannya.
penting
Jika ID transaksi telah kedaluwarsa, transaksi dibatalkan secara otomatis. Dalam kasus ini, perintah aws rds-data rollback-transaction
yang menentukan ID transaksi yang kedaluwarsa akan menghasilkan kesalahan.
Selain opsi umum, tentukan opsi-opsi berikut:
-
--transaction-id
(wajib) – Pengidentifikasi transaksi yang dimulai menggunakan perintah CLIbegin-transaction
. Tentukan ID transaksi yang ingin Anda batalkan.
Misalnya, AWS CLI perintah berikut memutar kembali transaksi SQL.
Untuk Linux, macOS, atau Unix:
aws rds-data rollback-transaction --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" \ --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" \ --transaction-id "ABC1234567890xyz
"
Untuk Windows:
aws rds-data rollback-transaction --resource-arn "
arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster
" ^ --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret
" ^ --transaction-id "ABC1234567890xyz
"
Berikut adalah contoh respons tersebut.
{
"transactionStatus": "Rollback Complete"
}