Quiero usar la API RunTask de Amazon Elastic Container Service (Amazon ECS) para iniciar una tarea de AWS Fargate. Sin embargo, la tarea devuelve un error porque la capacidad no está disponible.
Descripción corta
Si Amazon ECS no tiene la capacidad de iniciar una tarea de Fargate, la API RunTask devolverá un error y mostrará el siguiente mensaje:
"Capacity is unavailable at this time. Please try again later or in a different availability zone"
Para solucionar este error, espere antes de volver a ejecutar la API RunTask. También puede usar AWS Step Functions para automatizar el proceso de reintento.
Resolución
Vuelva a ejecutar la API RunTask más adelante.
Las siguientes prácticas pueden proporcionarle más capacidad disponible para RunTask y reducir el tiempo de espera:
- Como Amazon ECS administra la capacidad por zona de disponibilidad, se recomienda configurar varias subredes en diferentes zonas de disponibilidad en el parámetro de solicitud networkConfiguration.awsvpcConfiguration.subnets de RunTask.
- Configure los parámetros de solicitud overrides.cpu y overrides.memory de RunTask en diferentes combinaciones de CPU y memoria. Para más información, consulte CPU y memoria de tareas.
Automatización de la API RunTask
Para automatizar el inicio y los reintentos posteriores de la API RunTask, utilice Step Functions.
Si inicia RunTask desde Step Functions y la tarea devuelve un error debido a su capacidad limitada, Step Functions registra una excepción ECS.AmazonECSException en su campo ErrorEquals. Puede usar esta información para configurar reintentos futuros.
Para configurar un flujo de trabajo de Step Function, consulte Manage Amazon ECS or Fargate Tasks with Step Functions (Administración de tareas de Amazon ECS o Fargate con Step Functions). Para más información sobre los informes de errores de Step Functions, consulte Error handling in Step Functions (Gestión de errores en Step Functions).
Si llama regularmente a la API RunTask desde Amazon EventBridge, llame a Step Functions desde EventBridge para automatizar los reintentos.