Pourquoi ma pile AWS CloudFormation est-elle bloquée à l'état REVIEW_IN_PROGRESS ?

Lecture de 3 minute(s)
0

Ma pile AWS CloudFormation est bloquée à l'état REVIEW_IN_PROGRESS.

Brève description

Une pile bloquée à l'état REVIEW_IN_PROGRESS indique que vous avez tenté de la créer à l'aide d'un jeu de modifications qui n'a pas été exécuté. Lorsque vous créez un jeu de modifications pour une nouvelle pile, CloudFormation crée un ID de pile unique mais aucune ressource. Si le jeu de modifications n'est pas exécuté, la pile reste alors à l'état REVIEW_IN_PROGRESS.

Remarque : si des erreurs surviennent lors de l'exécution des commandes AWS CLI, vérifiez que vous utilisez la version la plus récente de l'interface.

Résolution

Suivez ces instructions pour exécuter un jeu de modifications à l'aide de la méthode de votre choix.

Utilisation de la console AWS CloudFormation

  1. Ouvrez la console AWS CloudFormation.
  2. Dans le volet de navigation, choisissez Piles, puis recherchez la pile bloquée.
  3. Choisissez l'onglet Jeu de modifications.
  4. Sélectionnez le dernier jeu de modifications et passez en revue les modifications.
  5. Choisissez Exécuter pour créer la pile.

Utilisation de l'interface de la ligne de commande AWS (AWS CLI)

  1. Exécutez la commande list-change-sets suivante pour répertorier tous les jeux de modifications :

    aws cloudformation list-change-sets --stack-name StackName
  2. Identifiez le jeu de modifications en question et exécutez la commande execute-change-set suivante :

    aws cloudformation execute-change-set --change-set-name ChangeSetName

Utilisation de la console AWS CodePipeline

L'utilisation de la console AWS CodePipeline pour le déploiement sur CloudFormation permet uniquement de choisir l'option Créer ou remplacer un jeu de modifications comme mode d'action. Cette option n'exécute pas le jeu de modifications automatiquement. Pour cela, vous devez ajouter le mode d'action Exécuter un jeu de modifications.

  1. Ouvrez la console AWS CodePipeline.
  2. Identifiez le pipeline qui est déployé sur CloudFormation.
  3. Choisissez Modifier, puis sélectionnez Modifier l'étape de déploiement.
  4. Choisissez Ajouter un groupe d'actions.
  5. Saisissez ensuite le nom de l'action.
  6. Dans Fournisseur d'action, sélectionnez AWS CloudFormation.
  7. Dans Mode d'action, sélectionnez Exécuter un jeu de modifications.
  8. Choisissez Enregistrer.

Utilisation de l'interface AWS CLI

  1. Exécutez la commande get-pipeline suivante pour copier la structure du pipeline dans un fichier JSON :

    aws codepipeline get-pipeline --name MyPipeline >pipeline.json
  2. Ajoutez CHANGE_SET_EXECUTE pour ActionMode à l'étape Deploy :

    {
      "name": "Deploy",
      "blockers": null,
      "actions": [
        {
          "name": "Deploy",
          "actionTypeId": {
            "category": "Deploy",
            "owner": "AWS",
            "provider": "CloudFormation",
            "version": "1"
          },
          "runOrder": 1,
          "configuration": {
            "TemplatePath": "SourceArtifact::ssm.yml",
            "ActionMode": "CHANGE_SET_REPLACE",
            "Capabilities": "CAPABILITY_IAM,CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND",
            "ChangeSetName": "CFNTest-CS",
            "RoleArn": "arn:aws:iam::xxxxx:role/xxx",
            "StackName": "CFNTest"
          },
          "outputArtifacts": [],
          "inputArtifacts": [
            {
              "name": "SourceArtifact"
            }
          ],
          "roleArn": null,
          "region": "us-east-1",
          "namespace": "DeployVariables"
        },
        {
          "name": "ExecuteChangeSet",
          "actionTypeId": {
            "category": "Deploy",
            "owner": "AWS",
            "provider": "CloudFormation",
            "version": "1"
          },
          "runOrder": 2,
          "configuration": {
            "ActionMode": "CHANGE_SET_EXECUTE",
            "ChangeSetName": "CFNTest-CS",
            "StackName": "CFNTest"
          },
          "outputArtifacts": [],
          "inputArtifacts": [
            {
              "name": "SourceArtifact"
            }
          ],
          "roleArn": null,
          "region": "us-east-1",
          "namespace": null
        }
      ]
    }
  3. Exécutez la commande update-pipeline suivante pour copier le pipeline dans un fichier JSON :

    aws codepipeline update-pipeline --cli-input-json file://pipeline.json
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans