Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Drosselung von Anfragen für die Amazon ECS-API
Amazon Elastic Container Service drosselt alle API-Anfragen für jedes AWS Konto pro Region. Wir tun dies, um eine gleichbleibende Leistung und eine faire Nutzung des Service für alle Amazon ECS-Kunden sicherzustellen. Durch die Drosselung wird sichergestellt, dass Aufrufe der Amazon ECS-API die maximal zulässigen API-Anforderungsquoten sowohl für Amazon ECS als auch für die anderen AWS Services, in die es integriert ist, nicht überschreiten. API-Aufrufe unterliegen den Anforderungsquoten, unabhängig davon, ob sie aus folgenden Quellen stammen:
-
Eine Drittanbieteranwendung
-
Ein Befehlszeilentool
-
Die Amazon ECS-Konsole
Wenn Sie ein API-Drosselungskontingent überschreiten, erhalten Sie den ThrottlingException Fehlercode.
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)
Wie wird die Drosselung angewendet
Amazon ECS verwendet den Token-Bucket-Algorithmus
Amazon ECS untersucht die Rate der eingereichten API-Anfragen für alle Amazon ECS-APIs in Ihrem Konto pro Region und wendet zwei Arten von API-Drosselungsquoten an: nachhaltig und Burst. Die Dauerrate ist die durchschnittliche Anzahl von API-Anfragen, die pro Sekunde im Laufe der Zeit für einen Vorgang zulässig sind. Die Burst-Rate ist die maximale Anzahl von API-Anfragen, die in einer Sekunde zulässig sind. Mit Burst können Sie in regelmäßigen Abständen eine höhere Anzahl von API-Anfragen stellen, als für die Dauerrate vorgesehen ist. Danach drosselt Amazon ECS nachfolgende API-Anfragen, bis sich die Rate der im Laufe der Zeit erlaubten API-Anfragen auf die anhaltende Rate stabilisiert hat. Im Token-Bucket-Algorithmus steht die maximale Bucket-Kapazität für die Burst-Rate und die Bucket-Nachfüllrate für die Dauerrate. Wir verwenden diese Bedingungen, um Ihnen im folgenden Beispiel eine Veranschaulichung der Amazon ECS-API-Anforderungsdrosselung zu geben.
Die Anzahl der API-Anfragen, die Sie stellen, wird gedrosselt, und bei jeder Anfrage wird ein Token aus dem Token-Bucket entfernt. Beispielsweise beträgt die Bucket-Größe für Cluster-Leseaktionen wie die DescribeClusters API 50 Token, sodass Sie in einer Sekunde bis zu 50 DescribeClusters Anfragen stellen können. Wenn Sie in einer Sekunde mehr als 50 Anfragen haben, werden Sie gedrosselt und die verbleibenden Anfragen innerhalb dieser Sekunde schlagen fehl.
Eimer werden automatisch mit einer festgelegten Geschwindigkeit wieder aufgefüllt. Wenn der Bucket seine maximale Kapazität unterschreitet, wird ihm jede Sekunde eine bestimmte Anzahl von Tokens hinzugefügt, bis er seine maximale Kapazität erreicht hat. Wenn der Eimer voll ist, wenn die Nachfüll-Token eintreffen, werden sie weggeworfen. Der Bucket kann nicht mehr als die maximale Anzahl an Tokens aufnehmen. Beispielsweise beträgt die Bucket-Größe für Cluster-Leseaktionen wie die DescribeClusters API 50 Token, und die Nachfüllrate beträgt 20 Token pro Sekunde. Wenn Sie in einer Sekunde 50 DescribeClusters API-Anfragen stellen, wird der Bucket sofort auf null Token reduziert. Der Bucket wird dann jede Sekunde um 20 Token aufgefüllt, bis er seine maximale Kapazität von 50 Token erreicht hat. Das bedeutet, dass der zuvor leere Eimer nach 2,5 Sekunden seine maximale Kapazität erreicht.
Sie müssen nicht warten, bis der Bucket vollständig gefüllt ist, bevor Sie API-Anfragen stellen können. Sie können Tokens verwenden, wenn sie dem Bucket hinzugefügt werden. Wenn Sie die Nachfüll-Token sofort verwenden, erreicht der Eimer nicht seine maximale Kapazität. Beispielsweise beträgt die Bucket-Größe für Cluster-Leseaktionen wie die DescribeClusters API 50 Token, und die Nachfüllrate beträgt 20 Token pro Sekunde. Wenn Sie den Bucket leeren, indem Sie 50 API-Anfragen pro Sekunde stellen, können Sie weiterhin 20 API-Anfragen pro Sekunde stellen. Der Bucket kann nur dann bis zur maximalen Kapazität aufgefüllt werden, wenn Sie weniger als 20 API-Anfragen pro Sekunde stellen.
Größen und Nachfüllraten für Token-Buckets anfragen
Zur Begrenzung der Anforderungsrate sind API-Aktionen in Kategorien unterteilt. Alle API-Aktionen in einer Kategorie teilen sich denselben Token-Bucket. Zum Beispiel DescribeClusters teilen sich ListClusters APIs den Bereich Cluster-Leseaktionen, für den die Kapazität 50 und die Nachfüllrate 20 beträgt. Das bedeutet, dass die Gesamtzahl der API-Anfragen für alle Cluster-Leseaktionen um dieselbe Burst-Rate-Quote von 50 API-Anfragen gedrosselt wird. Sie können also 25 DescribeClusters und 25 ListClusters API-Anfragen in einer Sekunde oder 30 DescribeClusters und 20 ListClusters oder 50 und 0 oder 0 DescribeClusters ListClusters DescribeClusters und 50 stellenListClusters, aber Sie können nicht 50 DescribeClusters und 50 ListClusters Anfragen gleichzeitig stellen. Die konstante Rate wird in ähnlicher Weise kumulativ auf alle API-Anfragen innerhalb eines Buckets angewendet.
Die folgende Tabelle zeigt die Bucket-Kapazität (oder Burst-Kapazität) und die Nachfüllrate (oder die Dauerfüllrate) für alle Regionen. AWS In allen API-Aktionskategorien werden Preiskontingente für jedes AWS Konto pro Region festgelegt.
| API-Aktionskategorie | Aktionen | Maximale Kapazität des Buckets (oder Burst-Rate) | Nachfüllrate des Buckets (oder konstante Rate) |
|---|---|---|---|
| Aktionen zum Ändern des Clusters |
|
20 | 1 |
| Leseaktionen im Cluster |
|
50 | 20 |
| Aktionen zur Änderung der Aufgabendefinition |
|
20 | 1 |
| Aktionen zum Lesen der Aufgabendefinition |
|
50 | 20 |
| Aktionen zum Löschen von Aufgabendefinitionen |
|
5 | 1 |
| Aktionen zum Ändern des Kapazitätsanbieters |
|
10 | 1 |
| Leseaktionen des Kapazitätsanbieters |
|
50 | 20 |
| Aktionen mit dem Schlagwort „Ändern“ |
|
20 | 10 |
| Leseaktionen mit Tags versehen |
|
50 | 20 |
| Aktionen einrichten und ändern |
|
10 | 1 |
| Leseaktionen einrichten |
|
50 | 20 |
| Aktionen zum Ändern von Clusterressourcen |
|
100 | 40 |
| Aktionen zum Lesen von Clusterressourcen |
|
100 | 20 |
| Aktionen zum Ändern von Agenten |
|
200 | 120 |
| Aktionen zum Ändern des Dienstes |
|
50 | 5 |
| Aktionen zum Lesen des Dienstes |
|
100 | 20 |
| Aktionen zur Bereitstellung von Diensten |
|
50 | 20 |
| Aktionen zur Revision des Dienstes |
|
50 | 20 |
|
Aktionen zum Schutz von Aufgaben |
|
200 | 80 |
| Leseaktionen für Ressourcen des Clusterdienstes |
|
10 | 1 |
1 drosselt die Amazon RunTask ECS-API AWS Fargate zusätzlich auf die hier im Amazon ECS Developer Guide aufgeführten Tarife.
Anpassung der API-Drosselungsquoten
Sie können eine Erhöhung der API-Drosselungsquoten für Ihr Konto beantragen. AWS Um eine Kontingentanpassung anzufordern, kontaktieren Sie das AWS Support -Center
Umgang mit der API-Drosselung
Sie können eine Strategie zur Wiederholung von Fehlern und ein exponentielles Back-off implementieren, um die Auswirkungen von Drosselungsfehlern auf Ihre Workloads zu vermeiden. Wenn Sie AWS SDK verwenden, ist die automatische Wiederholungslogik bereits integriert und konfigurierbar. Weitere Informationen finden Sie in den folgenden Ressourcen:
-
Wiederholte Fehler und exponentielles Backoff finden Sie AWS im Allgemeinen Referenzhandbuch AWS
-
Blogbeitrag „Exponentieller Backoff
und Jitter“ -
Artikel „Timeouts“, „Wiederholungen“ und „Backoff mit Jitter
“ in der Amazon Builder-Bibliothek