Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat, mengonfigurasi, dan menguji paket penggunaan menggunakan API Gateway CLI dan REST API
Sebelum mengonfigurasi paket penggunaan, Anda harus sudah melakukan hal berikut: menyiapkan metode yang dipilih API untuk memerlukan API kunci, menerapkan atau menerapkan ulang API ke tahap, dan membuat atau mengimpor satu atau beberapa kunci. API Untuk informasi selengkapnya, lihat Mengatur API kunci menggunakan API Gateway REST API.
Untuk mengonfigurasi paket penggunaan menggunakan API Gateway RESTAPI, gunakan petunjuk berikut, dengan asumsi bahwa Anda telah membuat paket APIs untuk ditambahkan ke paket penggunaan.
Topik
Migrasi ke paket penggunaan default
Saat membuat paket penggunaan pertama kali, Anda dapat memigrasikan API tahapan yang ada yang terkait dengan API kunci yang dipilih ke paket penggunaan dengan memanggil account:update
dengan isi berikut:
{ "patchOperations" : [ { "op" : "add", "path" : "/features", "value" : "UsagePlans" } ] }
Untuk informasi selengkapnya tentang API tahapan migrasi yang terkait dengan API kunci, lihat Memigrasi ke Paket Penggunaan Default di Konsol API Gateway.
Buat rencana penggunaan
Prosedur berikut menjelaskan cara membuat rencana penggunaan.
Untuk membuat rencana penggunaan dengan REST API
-
Hubungi
usageplan:create
untuk membuat paket penggunaan. Dalam payload, tentukan nama dan deskripsi rencana, API tahapan terkait, batas tarif, dan kuota.Catat pengidentifikasi rencana penggunaan yang dihasilkan. Anda membutuhkannya di langkah berikutnya.
-
Lakukan salah satu hal berikut ini:
-
Panggil
usageplankey:create
untuk menambahkan API kunci ke paket penggunaan. TentukankeyId
dankeyType
di payload.Untuk menambahkan lebih banyak API kunci ke paket penggunaan, ulangi panggilan sebelumnya, satu API tombol pada satu waktu.
-
Panggil
apikey:import
untuk menambahkan satu atau beberapa API kunci langsung ke paket penggunaan yang ditentukan. Payload permintaan harus berisi nilai API kunci, pengenal paket penggunaan terkait, tanda Boolean untuk menunjukkan bahwa kunci diaktifkan untuk paket penggunaan, dan, mungkin, nama API kunci dan deskripsi.Contoh
apikey:import
permintaan berikut menambahkan tiga API kunci (seperti yang diidentifikasi olehkey
,name
, dandescription
) ke satu paket penggunaan (seperti yang diidentifikasi olehusageplanIds
):POST /apikeys?mode=import&format=csv&failonwarnings=fase HTTP/1.1 Host: apigateway.us-east-1.amazonaws.com Content-Type: text/csv Authorization: ... key,name, description, enabled, usageplanIds abcdef1234ghijklmnop8901234567, importedKey_1, firstone, tRuE, n371pt abcdef1234ghijklmnop0123456789, importedKey_2, secondone, TRUE, n371pt abcdef1234ghijklmnop9012345678, importedKey_3, , true, n371pt
Akibatnya, tiga
UsagePlanKey
sumber daya dibuat dan ditambahkan keUsagePlan
.Anda juga dapat menambahkan API kunci ke lebih dari satu paket penggunaan dengan cara ini. Untuk melakukan ini, ubah setiap nilai
usageplanIds
kolom menjadi string yang dipisahkan koma yang berisi pengidentifikasi rencana penggunaan yang dipilih, dan diapit dalam sepasang tanda kutip (atau)."n371pt,m282qs"
'n371pt,m282qs'
catatan
APIKunci dapat dikaitkan dengan lebih dari satu paket penggunaan. Rencana penggunaan dapat dikaitkan dengan lebih dari satu tahap. Namun, API kunci yang diberikan hanya dapat dikaitkan dengan satu paket penggunaan untuk setiap tahap AndaAPI.
-
Mengelola paket penggunaan dengan menggunakan AWS CLI
Contoh kode berikut menunjukkan cara menambahkan, menghapus, atau memodifikasi pengaturan pelambatan tingkat metode dalam paket penggunaan dengan memanggil perintah. update-usage-plan
catatan
Pastikan untuk mengubah us-east-1
ke nilai Wilayah yang sesuai untuk AndaAPI.
Untuk menambah atau mengganti batas tarif untuk membatasi sumber daya dan metode individual:
aws apigateway --region us-east-1 update-usage-plan --usage-plan-id
<planId>
--patch-operations op="replace",path="/apiStages/<apiId>
:<stage>
/throttle/<resourcePath>
/<httpMethod>
/rateLimit",value="0.1"
Untuk menambah atau mengganti batas burst untuk membatasi sumber daya dan metode individual:
aws apigateway --region us-east-1 update-usage-plan --usage-plan-id
<planId>
--patch-operations op="replace",path="/apiStages/<apiId>
:<stage>
/throttle/<resourcePath>
/<httpMethod>
/burstLimit",value="1"
Untuk menghapus pengaturan pelambatan tingkat metode untuk sumber daya dan metode individual:
aws apigateway --region us-east-1 update-usage-plan --usage-plan-id
<planId>
--patch-operations op="remove",path="/apiStages/<apiId>
:<stage>
/throttle/<resourcePath>
/<httpMethod>
",value=""
Untuk menghapus semua pengaturan pelambatan tingkat metode untuk: API
aws apigateway --region us-east-1 update-usage-plan --usage-plan-id
<planId>
--patch-operations op="remove",path="/apiStages/<apiId>
:<stage>
/throttle ",value=""
Berikut adalah contoh menggunakan sampel Pet StoreAPI:
aws apigateway --region us-east-1 update-usage-plan --usage-plan-id
<planId>
--patch-operations op="replace",path="/apiStages/<apiId>
:<stage>
/throttle",value='"{\"/pets/GET\":{\"rateLimit\":1.0,\"burstLimit\":1},\"//GET\":{\"rateLimit\":1.0,\"burstLimit\":1}}"'
Uji rencana penggunaan
Sebagai contoh, mari kita gunakan PetStore API, yang dibuat diTutorial: Buat REST API dengan mengimpor contoh. Asumsikan bahwa API dikonfigurasi untuk menggunakan API kunci dariHiorr45VR...c4GJc
. Langkah-langkah berikut menjelaskan cara menguji rencana penggunaan.
Untuk menguji paket penggunaan Anda
-
Buat
GET
permintaan pada resource Pets (/pets
), dengan parameter?type=...&page=...
kueri, dari API (misalnya,xbvxlpijch
) dalam paket penggunaan:GET /testStage/pets?type=dog&page=1 HTTP/1.1 x-api-key: Hiorr45VR...c4GJc Content-Type: application/x-www-form-urlencoded Host: xbvxlpijch.execute-api.ap-southeast-1.amazonaws.com X-Amz-Date: 20160803T001845Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160803/ap-southeast-1/execute-api/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-api-key, Signature={sigv4_hash}
catatan
Anda harus mengirimkan permintaan ini ke
execute-api
komponen API Gateway dan memberikan API kunci yang diperlukan (misalnya,Hiorr45VR...c4GJc
) dix-api-key
header yang diperlukan.Respons yang berhasil mengembalikan kode
200 OK
status dan payload yang berisi hasil yang diminta dari backend. Jika Anda lupa mengaturx-api-key
header atau mengaturnya dengan kunci yang salah, Anda mendapatkan403 Forbidden
respons. Namun, jika Anda tidak mengonfigurasi metode untuk memerlukan API kunci, kemungkinan besar Anda akan mendapatkan200 OK
respons apakah Anda menyetelx-api-key
header dengan benar atau tidak, dan batas throttle dan kuota paket penggunaan dilewati.Kadang-kadang, ketika terjadi kesalahan internal di mana API Gateway tidak dapat menerapkan batas pembatasan rencana penggunaan atau kuota untuk permintaan, API Gateway melayani permintaan tanpa menerapkan batas pembatasan atau kuota seperti yang ditentukan dalam paket penggunaan. Tapi, itu mencatat pesan kesalahan
Usage Plan check failed due to an internal error
in CloudWatch. Anda dapat mengabaikan kesalahan sesekali seperti itu.