Ir para o conteúdo

Como soluciono problemas de uma API RunTask do Amazon ECS para uma tarefa do Fargate que falha com um erro "Capacity is unavailable"?

2 minuto de leitura
0

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.