View a markdown version of this page

Minta pembatasan untuk Amazon ECS API - Amazon Elastic Container Service

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

Minta pembatasan untuk Amazon ECS API

Amazon Elastic Container Service membatasi semua permintaan API untuk setiap AWS akun per wilayah. Kami melakukan ini untuk memastikan kinerja yang konsisten dan penggunaan layanan yang adil untuk semua pelanggan Amazon ECS. Throttling memastikan bahwa panggilan ke Amazon ECS API tidak melebihi kuota permintaan API maksimum yang diizinkan untuk Amazon ECS dan AWS layanan lain yang terintegrasi dengannya. Panggilan API tunduk pada kuota permintaan apakah berasal dari:

  • Aplikasi pihak ketiga

  • Alat baris perintah

  • Konsol Amazon ECS

Jika melebihi kuota throttling API, Anda mendapatkan kode kesalahan ThrottlingException.

An error occurred (ThrottlingException) when calling the DescribeClusters operation (reached max retries: 4): Rate exceeded. com.amazonaws.services.ecs.model.AmazonECSException: Rate exceeded (Service: AmazonECS; Status Code: 400; Error Code: ThrottlingException; Request ID: 5ed90669-e454-464d-9b2f-6523bc86f537; Proxy: null)

Bagaimana throttling diterapkan

Amazon ECS menggunakan algoritma token bucket untuk mengimplementasikan pelambatan API. Dengan algoritme ini, akun Anda memiliki bucket yang memegang sejumlah tertentu token. Jumlah token dalam bucket mewakili kuota throttling Anda pada detik tertentu.

Amazon ECS memeriksa tingkat pengiriman permintaan API untuk semua API Amazon ECS di akun Anda, per Wilayah, dan menerapkan dua jenis kuota pembatasan API: berkelanjutan dan burst. Tingkat berkelanjutan adalah jumlah rata-rata permintaan API yang diizinkan per detik dari waktu ke waktu untuk suatu operasi. Kecepatan burst adalah jumlah maksimum permintaan API yang diizinkan dalam satu detik. Dengan burst, Anda dapat secara berkala membuat jumlah permintaan API yang lebih tinggi daripada tingkat berkelanjutan. Setelah itu, Amazon ECS membatasi permintaan API berikutnya hingga tingkat permintaan API yang diizinkan dari waktu ke waktu stabil ke tingkat berkelanjutan. Dalam algoritma token bucket, kapasitas maksimum bucket menandakan burst rate dan bucket refill rate adalah laju berkelanjutan. Kami akan menggunakan istilah ini untuk memberi Anda ilustrasi pembatasan permintaan Amazon ECS API dalam contoh berikut.

Anda dibatasi pada jumlah permintaan API yang Anda buat dan setiap permintaan menghapus satu token dari keranjang token. Misalnya, ukuran bucket untuk tindakan baca Cluster, seperti DescribeClusters API, adalah 50 token, sehingga Anda dapat membuat hingga 50 DescribeClusters permintaan dalam satu detik. Jika Anda melebihi 50 permintaan dalam satu detik, Anda dibatasi dan permintaan yang tersisa dalam detik itu gagal.

Bucket secara otomatis diisi ulang pada tingkat yang ditetapkan. Jika bucket berada di bawah kapasitas maksimumnya, sejumlah token ditambahkan kembali setiap detik hingga mencapai kapasitas maksimumnya. Jika ember penuh saat token isi ulang tiba, mereka dibuang. Bucket tidak dapat menampung lebih dari jumlah token maksimumnya. Misalnya, ukuran bucket untuk tindakan baca Cluster, seperti DescribeClusters API, adalah 50 token, dan tingkat isi ulang adalah 20 token per detik. Jika Anda membuat 50 permintaan DescribeClusters API dalam satu detik, bucket segera dikurangi menjadi nol token. Bucket kemudian diisi ulang dengan 20 token setiap detik, hingga mencapai kapasitas maksimum 50 token. Ini berarti bahwa ember yang sebelumnya kosong mencapai kapasitas maksimumnya setelah 2,5 detik.

Anda tidak perlu menunggu bucket benar-benar penuh sebelum Anda dapat membuat permintaan API. Anda dapat menggunakan token karena mereka ditambahkan ke bucket. Jika Anda segera menggunakan token isi ulang, ember tidak mencapai kapasitas maksimumnya. Misalnya, ukuran bucket untuk tindakan baca Cluster, seperti DescribeClusters API, adalah 50 token, dan tingkat isi ulang adalah 20 token per detik. Jika Anda menghabiskan bucket dengan membuat 50 permintaan API dalam satu detik, Anda dapat terus membuat 20 permintaan API per detik. Bucket dapat diisi ulang hingga kapasitas maksimum hanya jika Anda membuat kurang dari 20 permintaan API per detik.

Minta Ukuran Bucket Token dan Tarif Isi Ulang

Untuk tujuan pembatasan tingkat permintaan, tindakan API dikelompokkan ke dalam kategori. Semua tindakan API dalam kategori berbagi keranjang token yang sama. Misalnya, DescribeClusters dan ListClusters API berbagi bucket tindakan baca Cluster, yang kapasitasnya 50 dan laju isi ulang adalah 20. Ini berarti bahwa jumlah kumulatif permintaan API untuk semua tindakan baca Cluster dibatasi oleh kuota burst rate yang sama yaitu 50 permintaan API. Dengan demikian, Anda dapat membuat 25 DescribeClusters dan 25 permintaan ListClusters API dalam satu detik, atau 30 DescribeClusters dan 20ListClusters, atau 50 DescribeClusters dan 0ListClusters, atau 0 DescribeClusters dan 50ListClusters, tetapi Anda tidak dapat membuat 50 DescribeClusters dan 50 ListClusters permintaan pada saat yang sama. Tingkat berkelanjutan juga diterapkan secara kumulatif ke semua permintaan API dalam bucket.

Tabel berikut menunjukkan kapasitas bucket (atau burst) dan laju isi ulang (atau berkelanjutan) untuk semua AWS Wilayah. Semua kategori tindakan API memberlakukan kuota tarif untuk setiap AWS akun berdasarkan per wilayah.

Kategori aksi API Tindakan Kapasitas maksimum bucket (atau Burst rate) Tingkat isi ulang bucket (atau Tarif berkelanjutan)
Tindakan modifikasi cluster
  • CreateCluster

  • DeleteCluster

  • PutClusterCapacityProviders

  • UpdateCluster

  • UpdateClusterSettings

20 1
Tindakan membaca cluster
  • DescribeClusters

  • ListClusters

50 20
Definisi tugas memodifikasi tindakan
  • DeregisterTaskDefinition

  • RegisterTaskDefinition

20 1
Definisi tugas membaca tindakan
  • DescribeTaskDefinition

  • ListTaskDefinitions

  • ListTaskDefinitionFamilies

50 20
Tindakan penghapusan definisi tugas
  • DeleteTaskDefinitions

5 1
Penyedia kapasitas memodifikasi tindakan
  • CreateCapacityProvider

  • DeleteCapacityProvider

  • UpdateCapacityProvider

10 1
Penyedia kapasitas membaca tindakan
  • DescribeCapacityProviders

50 20
Tag memodifikasi tindakan
  • TagResource

  • UntagResource

20 10
Tag membaca tindakan
  • ListTagsForResource

50 20
Pengaturan memodifikasi tindakan
  • DeleteAccountSetting

  • PutAccountSetting

  • PutAccountSettingDefault

10 1
Mengatur tindakan baca
  • ListAccountSettings

50 20
Tindakan modifikasi sumber daya cluster
  • DeleteAttributes

  • DeregisterContainerInstance

  • ExecuteCommand

  • PutAttributes

  • RunTask1

  • StartTask

  • StopTask

  • UpdateContainerAgent

  • UpdateContainerInstancesStates

100 40
Tindakan membaca sumber daya cluster
  • DescribeContainerInstances

  • DescribeTasks

  • ListAttributes

  • ListContainerInstances

  • ListTasks

100 20
Agen memodifikasi tindakan
  • RegisterContainerInstance

  • SubmitAttachmentStateChanges

  • SubmitContainerStateChange

  • SubmitTaskStateChange

200 120
Layanan memodifikasi tindakan
  • CreateService

  • DeleteService

  • UpdateService

50 5
Tindakan membaca layanan
  • DescribeServices

  • ListServices

100 20
Tindakan penyebaran layanan
  • DescribeServiceDeployments

  • ListServiceDeployments

50 20
Tindakan revisi layanan
  • DescribeServiceRevisions

50 20

Tindakan perlindungan tugas

  • UpdateTaskProtection

  • GetTaskProtection

200 80
Tindakan membaca sumber daya layanan kluster
  • ListServicesByNamespace

10 1

1 AWS Fargate juga membatasi Amazon ECS RunTask API ke tarif yang tercantum di sini di Panduan Pengembang Amazon ECS.

Menyesuaikan kuota throttling API

Anda dapat meminta peningkatan kuota pembatasan API untuk akun Anda. AWS Untuk meminta penyesuaian kuota, hubungi AWS Dukungan Pusat.

Penanganan API throttling

Anda dapat menerapkan coba ulang kesalahan dan strategi back-off eksponensial untuk menghindari dampak kesalahan pelambatan pada beban kerja Anda. Jika Anda menggunakan AWS SDK, logika coba ulang otomatis sudah built-in dan dapat dikonfigurasi. Anda dapat merujuk ke sumber daya berikut untuk lebih jelasnya: