Quero usar a API RunTask do Amazon Elastic Container Service (Amazon ECS) para iniciar uma tarefa do AWS Fargate. No entanto, a tarefa falha devido à capacidade indisponível.
Breve descrição
Se o Amazon ECS não tiver a capacidade de iniciar uma tarefa do Fargate, a API RunTask apresentará falha com a seguinte mensagem de erro:
"Capacity is unavailable at this time. Please try again later or in a different availability zone"
Para solucionar esse erro, aguarde antes de tentar novamente a API RunTask. Também é possível usar o AWS Step Functions para automatizar o processo de nova tentativa.
Resolução
Tente novamente a API RunTask mais tarde.
As práticas a seguir podem conceder a você mais capacidade disponível para a RunTask e reduzir seu tempo de espera:
- Como o Amazon ECS gerencia a capacidade por Zona de disponibilidade, é uma prática recomendada definir várias sub-redes em diferentes Zonas de disponibilidade no parâmetro de solicitação networkConfiguration.awsvpcConfiguration.subnets da RunTask.
- Defina os parâmetros de solicitação overrides.cpu e overrides.memory da RunTask para diferentes combinações de CPU e memória. Para obter mais informações, consulte CPU e memória da tarefa.
Automatize a API RunTask
Para automatizar a iniciação e as novas tentativas subsequentes da API RunTask, use o Step Functions.
Se você iniciar a RunTask a partir do Step Functions e a tarefa falhar devido à capacidade limitada, o Step Functions registrará uma ECS.AmazonECSException em seu campo ErrorEquals. É possível usar essas informações para configurar novas tentativas futuras.
Para configurar um fluxo de trabalho do Step Function, consulte Realizar tarefas do ECS ou do Fargate com o Step Functions. Para obter mais informações sobre o relatório de erros do Step Functions, consulte Tratar erros no Step Functions.
Se você chama regularmente a API RunTask a partir do Amazon EventBridge, chame o Step Functions a partir do EventBridge para automatizar suas novas tentativas.