Memanggil API Data Amazon RDS dengan AWS CLI - Amazon Aurora

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.

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 CLI begin-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 database_name;" di permintaan sebelumnya. Kami merekomendasikan agar Anda menggunakan --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 into mytable 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 into mytable 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 dalam dokumentasi PostgreSQL.

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 CLI begin-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 into mytable 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 into mytable 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 CLI begin-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 CLI begin-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" }