Je souhaite utiliser l'API RunTask d'Amazon Elastic Container Service (Amazon ECS) pour lancer une tâche AWS Fargate. Cependant, la tâche échoue en raison d'une capacité non disponible.
Brève description
Si Amazon ECS n'est pas en mesure de lancer une tâche Fargate, l'API RunTask échoue avec le message d'erreur suivant :
"Capacity is unavailable at this time. Please try again later or in a different availability zone"
Pour résoudre cette erreur, attendez avant de réessayer l'API RunTask. Vous pouvez également utiliser AWS Step Functions pour automatiser le processus de nouvelle tentative.
Résolution
Réessayez l'API RunTask ultérieurement.
Les pratiques suivantes peuvent vous permettre d'augmenter la capacité disponible pour RunTask et de réduire votre temps d'attente :
- Dans la mesure où Amazon ECS gère la capacité par zone de disponibilité, il est recommandé de définir plusieurs sous-réseaux dans différentes zones de disponibilité dans le paramètre de requête RunTask networkConfiguration.awsvpcConfiguration.subnets.
- Définissez les paramètres de requête RunTask overrides.cpu et overrides.memory sur différentes combinaisons de processeur et de mémoire. Pour plus d'informations, consultez la section Processeur et mémoire de la tâche.
Automatiser l'API RunTask
Pour automatiser le lancement et les nouvelles tentatives suivantes de l'API RunTask, utilisez Step Functions.
Si vous démarrez RunTask à partir de Step Functions et que la tâche échoue en raison d'une capacité limitée, Step Functions enregistre une exception ECS.AmazonECSException dans son champ ErrorEquals. Vous pouvez utiliser ces informations pour configurer les prochaines tentatives.
Pour configurer un flux de travail Step Function, consultez la section Gérer les tâches Amazon ECS ou Fargate avec Step Functions. Pour plus d'informations sur le signalement d’erreurs Step Functions, consultez la section Gestion des erreurs dans Step Functions.
Si vous appelez régulièrement l'API RunTask depuis Amazon EventBridge, appelez Step Functions depuis EventBridge pour automatiser vos nouvelles tentatives.