Comment puis-je résoudre les problèmes d'erreur interne lors de l'arrêt d'une instance AWS OpsWorks Stacks dans l'état « stop_failed » ?

Date de la dernière mise à jour : 03/08/2021

Lorsque j'essaie d'arrêter mon instance AWS OpsWorks Stacks dans l'état « stop_failed », je reçois un message « Erreur interne ». Comment résoudre cette erreur ?

Brève description

OpsWorks Stacks peut renvoyer un message Erreur interne lorsque vous tentez d'arrêter une instance qui se trouve dans l'état stop_failed pour deux raisons :

Pour résoudre l'erreur, vérifiez d'abord que la fonction du service IAM de votre pile est correctement configurée. Si le problème n'est pas lié aux autorisations, arrêtez l'instance en exécutant la commande stop-instance de l'AWS Command Line Interface (AWS CLI). La commande doit inclure le paramètre --force et les ID d'instance OpsWorks des instances devant être arrêtées.

Solution

Remarque : si vous recevez des erreurs lors de l'exécution des commandes AWS CLI, assurez-vous d'utiliser la version la plus récente d'AWS CLI.

Vérifiez que la fonction du service IAM de votre pile est correctement configurée.

Suivez les instructions de la section Autoriser AWS OpsWorks Stacks à agir en votre nom.

Si le problème n'est pas lié aux autorisations, arrêtez l'instance en exécutant la commande stop-instance d'AWS CLI.

Pour arrêter une instance en exécutant la commande stop-instance d'AWS CLI

Remarque : vous pouvez également utiliser AWS CloudShell pour exécuter les commandes suivantes.

1.    Retournez les ID d'instance des instances de votre pile qui sont dans l'état stopped_failed en exécutant la commande describe-instances suivante :

Important : remplacez your-stack-id par votre ID de pile. Remplacez your-OpsWorks-Stack-Endpoint-region par la région du point de terminaison AWS OpsWorks Stacks dans laquelle se trouve votre pile.

$ aws opsworks describe-instances --stack-id your-stack-id --region your-OpsWorks-Stack-Endpoint-region --query 'Instances[?Status==`stop_failed`].{Id:InstanceId}'

2.    Identifiez les ID d'instance des instances que vous arrêtez. Vous aurez besoin de ces ID d'instance pour exécuter la commande stop-instance.

3.    (Pour arrêter une seule instance) Exécutez la commande stop-instance suivante :

Important : remplacez your-opsworks-instance-id par l'ID de l'instance que vous arrêtez et your-OpsWorks-Stack-Endpoint-region par la région du point de terminaison OpsWorks Stacks dans laquelle se trouve votre pile.

$ aws opsworks stop-instance --instance-id your-opsworks-instance-id --force --region your-OpsWorks-Stack-Endpoint-region

-ou-

(Pour arrêter plusieurs instances) Utilisez une logique de syntaxe personnalisée pour exécuter une commande stop-instance qui parcourt les instances que vous arrêtez.

Exemple de commande stop-instance qui arrête plusieurs instances

Important : remplacez your-stack-id par votre ID de pile. Remplacez your-OpsWorks-Stack-Endpoint-region par la région du point de terminaison OpsWorks Stacks dans laquelle se trouve votre pile.

$ for Id in $(aws opsworks describe-instances --stack-id your-stack-id --region your-OpsWorks-Stack-Endpoint-region --query 'Instances[?Status==`stop_failed`].{Id:InstanceId}' --output text) ; do aws opsworks stop-instance --instance-id $Id --force --region your-OpsWorks-Stack-Endpoint-region  ; done

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?