Quero evitar os erros de “Taxa excedida” ao usar o AWS CloudFormation.
Breve descrição
As chamadas de API para um serviço da AWS que excedem o máximo permitido de solicitações de API geram o erro Taxa excedida. Quando isso ocorre, as chamadas de API são limitadas.
Solução
Um serviço downstream da AWS excede a taxa máxima permitida
Para evitar que um serviço da AWS exceda a taxa máxima permitida durante a operação de pilha do CloudFormation, use as seguintes opções.
Use o atributo DependsOn
A menos que uma dependência seja definida entre os recursos, o CloudFormation cria e atualiza recursos ao mesmo tempo. O atributo DependsOn define dependências entre recursos para controlar atualizações simultâneas.
Para especificar quando cada recurso dependente é criado ou atualizado, use o atributo DependsOn. Por exemplo, se o recurso B depender do recurso A, você poderá especificar que o recurso A deve ser criado ou atualizado antes do recurso B. Essa especificação limita o número de chamadas de API que acontecem ao mesmo tempo e reduz a ocorrência de limitação. Você também pode usar o atributo DependsOn com pilhas aninhadas.
Solicite um aumento de cota
Se o atributo DependsOn não resolver o erro Taxa excedida, você poderá solicitar um aumento de cota. Antes de solicitar um aumento de cota para a API downstream, primeiro identifique a chamada da API para determinar aquela que está excedendo a taxa de chamadas.
Em sua solicitação de aumento de cota, inclua sua região da AWS, o período de limitação da API e o motivo do aumento.
Uma API do AWS CloudFormation excede a taxa máxima permitida
Para evitar que as chamadas de API do CloudFormation excedam o máximo permitido de solicitações de API, use as opções a seguir.
Implemente um recuo exponencial
Ao usar endpoints de API da AWS, implemente o back off para diminuir o número de chamadas de API.
O exemplo de pseudocódigo a seguir para uma chamada de API DescribeStacks está configurado para repetir a chamada de API após um período específico:
{
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
}
Crie ou atualize pilhas uma de cada vez
Várias pilhas do CloudFormation criadas ou atualizadas ao mesmo tempo podem causar muitas chamadas de API. Para evitar que as chamadas de API excedam o máximo permitido de solicitações de API, crie ou atualize uma pilha por vez.
Solicite um aumento de cota
Se você não conseguir criar ou atualizar pilhas, poderá solicitar um aumento de cota para a API do CloudFormation. Antes de solicitar um aumento de cota, primeiro identifique a chamada de API para determinar a que está excedendo a taxa de chamadas.
Em sua solicitação de aumento de cota, inclua sua região da AWS, o período de limitação da API e o motivo do aumento.