Throttle request ke REST API Anda untuk throughput yang lebih baik di API Gateway - APIGerbang Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Throttle request ke REST API Anda untuk throughput yang lebih baik di API Gateway

Anda dapat mengonfigurasi pembatasan dan kuota untuk API Anda untuk membantu melindungi mereka dari kewalahan oleh terlalu banyak permintaan. Baik throttle dan kuota diterapkan atas dasar upaya terbaik dan harus dianggap sebagai target daripada plafon permintaan yang dijamin.

API Gateway membatasi permintaan ke API Anda menggunakan algoritma token bucket, tempat token diperhitungkan untuk permintaan. Secara khusus, API Gateway memeriksa tingkat dan ledakan pengiriman permintaan terhadap semua API di akun Anda, per Wilayah. Dalam algoritma token bucket, burst dapat memungkinkan overrun yang telah ditentukan sebelumnya dari batas-batas tersebut, tetapi faktor lain juga dapat menyebabkan batas dikuasai dalam beberapa kasus.

Jika pengiriman permintaan melebihi tingkat permintaan kondisi tunak dan batas burst, API Gateway mulai membatasi permintaan. Klien mungkin menerima tanggapan 429 Too Many Requests kesalahan pada saat ini. Setelah menangkap pengecualian tersebut, klien dapat mengirimkan kembali permintaan yang gagal dengan cara yang membatasi tarif.

Sebagai pengembang API, Anda dapat menetapkan batas target untuk setiap tahapan atau metode API untuk meningkatkan kinerja keseluruhan di semua API di akun Anda. Atau, Anda dapat mengaktifkan paket penggunaan untuk mengatur pembatasan pada pengiriman permintaan klien berdasarkan tarif permintaan dan kuota yang ditentukan.

Bagaimana pengaturan batas pelambatan diterapkan di API Gateway

Sebelum mengonfigurasi setelan throttle dan kuota untuk API, sebaiknya pahami jenis setelan terkait throttling untuk API Anda dan bagaimana API Gateway menerapkannya.

Amazon API Gateway menyediakan empat tipe dasar pengaturan terkait pelambatan:

  • AWS batas pembatasan diterapkan di semua akun dan klien di Wilayah. Pengaturan batas ini ada untuk mencegah API Anda — dan akun Anda — kewalahan oleh terlalu banyak permintaan. Batasan ini ditetapkan oleh AWS dan tidak dapat diubah oleh pelanggan.

  • Batas per akun diterapkan ke semua API di akun di Wilayah tertentu. Batas tingkat tingkat akun dapat ditingkatkan berdasarkan permintaan - batas yang lebih tinggi dimungkinkan dengan API yang memiliki batas waktu lebih pendek dan muatan yang lebih kecil. Untuk meminta peningkatan batas pembatasan tingkat akun per Wilayah, hubungi Pusat Dukungan.AWS Untuk informasi selengkapnya, lihat Kuota Amazon API Gateway dan catatan penting. Perhatikan bahwa batas ini tidak boleh lebih tinggi dari batas AWS pelambatan.

  • Batas pelambatan per API, per tahap diterapkan pada tingkat metode API untuk suatu tahap. Anda dapat mengonfigurasi pengaturan yang sama untuk semua metode, atau mengonfigurasi pengaturan throttle yang berbeda untuk setiap metode. Perhatikan bahwa batas ini tidak boleh lebih tinggi dari batas AWS pelambatan.

  • Batas pembatasan per klien diterapkan pada klien yang menggunakan kunci API yang terkait dengan paket penggunaan Anda sebagai pengenal klien. Perhatikan bahwa batas ini tidak boleh lebih tinggi dari batas per akun.

API Gateway menerapkan setelan terkait throttling Anda dalam urutan berikut:

Pelambatan tingkat akun per Wilayah

Secara default, API Gateway membatasi permintaan kondisi tunak per detik (RPS) di semua API dalam AWS akun, per Wilayah. Ini juga membatasi burst (yaitu, ukuran bucket maksimum) di semua API dalam AWS akun, per Wilayah. Di API Gateway, batas burst mewakili jumlah maksimum target pengiriman permintaan bersamaan yang akan dipenuhi API Gateway sebelum mengembalikan respons 429 Too Many Requests kesalahan. Untuk informasi lebih lanjut tentang pembatasan kuota, lihat. Kuota Amazon API Gateway dan catatan penting

Mengonfigurasi target pelambatan level API dan level tahap dalam rencana penggunaan

Dalam paket penggunaan, Anda dapat menetapkan target pelambatan per metode untuk semua metode di API atau level tahap. Anda dapat menentukan laju pelambatan, yang merupakan tingkat, dalam permintaan per detik, token tersebut ditambahkan ke keranjang token. Anda juga dapat menentukan burst throttling, yang merupakan kapasitas bucket token.

Anda dapat menggunakan AWS CLI, SDK, dan AWS Management Console untuk membuat rencana penggunaan. Untuk informasi selengkapnya tentang cara membuat paket penggunaan, lihatPaket penggunaan dan API kunci untuk REST APIs di API Gateway .

Mengkonfigurasi target pelambatan tingkat tahap

Anda dapat menggunakan AWS CLI, SDK, dan AWS Management Console untuk membuat target pelambatan tingkat tahap.

Untuk informasi selengkapnya tentang cara menggunakan AWS Management Console untuk membuat target pelambatan tingkat tahap, lihat. Ubah pengaturan panggung Untuk informasi selengkapnya tentang cara menggunakan AWS CLI untuk membuat target pelambatan tingkat tahap, lihat create-stage.

Mengonfigurasi target pelambatan tingkat metode dalam rencana penggunaan

Anda dapat menetapkan target pelambatan tambahan pada tingkat metode dalam Rencana Penggunaan seperti yang ditunjukkan pada. Buat rencana penggunaan Di konsol API Gateway, ini diatur dengan menentukanResource=<resource>, Method=<method> dalam pengaturan Configure Method Throttling. Misalnya, PetStoremisalnya, Anda dapat menentukanResource=/pets,Method=GET.