Wie verhindere ich den Fehler „Rate exceeded“ in CloudFormation?

Lesedauer: 3 Minute
0

Ich möchte die Fehler „Rate exceeded“ verhindern, wenn ich AWS CloudFormation verwende.

Kurzbeschreibung

API-Aufrufe an einen AWS-Service, die die maximal zulässigen API-Anfragen überschreiten, generieren den Fehler Rate exceeded. In diesem Fall werden API-Aufrufe gedrosselt.

Lösung

Ein Downstream-AWS-Service überschreitet die maximal zulässige Rate

Verwenden Sie die folgenden Optionen, um zu verhindern, dass ein AWS-Service während des CloudFormation-Stack-Betriebs die maximal zulässige Rate überschreitet.

Verwenden des DependsOn-Attributs

Sofern keine Abhängigkeit zwischen Ressourcen definiert ist, erstellt und aktualisiert CloudFormation Ressourcen gleichzeitig. Das Attribut DependsOn definiert Abhängigkeiten zwischen Ressourcen, um gleichzeitige Aktualisierungen zu steuern.

Verwenden Sie das DependsOn-Attribut, um anzugeben, wann jede abhängige Ressource erstellt oder aktualisiert wird. Wenn beispielsweise Ressource B von Ressource A abhängig ist, können Sie angeben, dass Ressource A vor Ressource B erstellt oder aktualisiert werden muss. Diese Spezifikation begrenzt die Anzahl der gleichzeitigen API-Aufrufe und reduziert das Auftreten von Drosselungen. Sie können das DependsOn-Attribut auch mit verschachtelten Stacks verwenden.

Anfordern einer Kontingenterhöhung

Wenn das DependsOn-Attribut den Fehler Rate exceeded nicht behebt, können Sie eine Kontingenterhöhung beantragen. Bevor Sie eine Kontingenterhöhung für die Downstream-API beantragen, identifizieren Sie den API-Aufruf, der die Aufrufrate überschreitet.

Geben Sie in Ihrer Anfrage für eine Kontingenterhöhung Ihre AWS-Region, den Zeitrahmen der API-Drosselung und den Grund für die Erhöhung an.

Eine AWS-CloudFormation-API überschreitet die maximal zulässige Rate

Verwenden Sie die folgenden Optionen, um zu verhindern, dass die CloudFormation-API-Aufrufe die maximal zulässigen API-Anfragen überschreiten.

Implementieren von exponentiellem Backoff

Wenn Sie AWS-API-Endpunkte verwenden, implementieren Sie Backoff, um die Anzahl der API-Aufrufe zu verringern.

Der folgende Beispiel-Pseudocode für einen DescribeStacks-API-Aufruf ist so konfiguriert, dass der API-Aufruf nach einem bestimmten Zeitraum erneut versucht wird:

{
Make 'DescribeStacks' API call

if throttled: wait 2 sec; Make 'DescribeStacks' API call
if throttled: wait 4 sec; Make 'DescribeStacks'API call
if throttled: wait 8 sec; Make 'DescribeStacks' API call
if throttled: wait 16 sec; Make 'DescribeStacks' API call
if throttled: wait 32 sec; Make 'DescribeStacks' API call
}

Erstellen oder Aktualisieren einzelner Stacks

Das gleichzeitige Erstellen oder Aktualisieren mehrerer CloudFormation-Stacks kann dazu führen, dass zu viele API-Aufrufe entstehen. Um zu verhindern, dass die API-Aufrufe die maximal zulässigen API-Anfragen überschreiten, erstellen oder aktualisieren Sie einen Stack nach dem anderen.

Anfordern einer Kontingenterhöhung

Wenn Sie keine Stacks erstellen oder aktualisieren können, haben Sie die Möglichkeit, eine Kontingenterhöhung für die CloudFormation-API zu beantragen. Bevor Sie eine Kontingenterhöhung beantragen, identifizieren Sie den API-Aufruf, der die Aufrufrate überschreitet.

Geben Sie in Ihrer Anfrage für eine Kontingenterhöhung Ihre AWS-Region, den Zeitrahmen der API-Drosselung und den Grund für die Erhöhung an.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr