Membuat, mengonfigurasi, dan menguji paket penggunaan menggunakan API Gateway CLI dan REST API - APIGerbang Amazon

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.

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:updatedengan 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
  1. Hubungi usageplan:createuntuk 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.

  2. Lakukan salah satu hal berikut ini:

    1. Panggil usageplankey:createuntuk menambahkan API kunci ke paket penggunaan. Tentukan keyId dan keyType di payload.

      Untuk menambahkan lebih banyak API kunci ke paket penggunaan, ulangi panggilan sebelumnya, satu API tombol pada satu waktu.

    2. Panggil apikey:importuntuk 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) di x-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 mengatur x-api-key header atau mengaturnya dengan kunci yang salah, Anda mendapatkan 403 Forbidden respons. Namun, jika Anda tidak mengonfigurasi metode untuk memerlukan API kunci, kemungkinan besar Anda akan mendapatkan 200 OK respons apakah Anda menyetel x-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.