Perché il mio stack AWS CloudFormation è bloccato nello stato REVIEW_IN_PROGRESS?

3 minuti di lettura
0

Il mio stack AWS CloudFormation è bloccato nello stato REVIEW_IN_PROGRESS.

Breve descrizione

Se uno stack è bloccato nello stato REVIEW\ _IN\ _PROGRESS significa che hai provato a creare lo stack utilizzando un set di modifiche che non è stato eseguito. Quando si crea un set di modifiche per un nuovo stack, CloudFormation crea un ID stack univoco ma nessuna risorsa. Se non esegui il set di modifiche, lo stack rimane nello stato REVIEW\ _IN\ _PROGRESS.

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi AWS CLI, assicurati di utilizzare la versione più recente di AWS CLI.

Risoluzione

Completa i seguenti passaggi per eseguire un set di modifiche utilizzando il tuo metodo preferito.

Utilizzo della console AWS CloudFormation

  1. Apri la console AWS CloudFormation.
  2. Nel pannello di navigazione, scegli Stack, quindi trova lo stack bloccato.
  3. Scegli la scheda Set di modifiche.
  4. Seleziona il set di modifiche più recente ed esamina le modifiche.
  5. Scegli Esegui per creare lo stack.

Utilizzo dell'interfaccia della linea di comando AWS (AWS CLI)

  1. Esegui il seguente comando list-change-sets per elencare tutti i set di modifiche:

    aws cloudformation list-change-sets --stack-name StackName
  2. Identifica il set di modifiche ed esegui il seguente comando execute-change-set:

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

Utilizzo della console AWS CodePipeline

L'utilizzo di AWS CodePipeline per l'implementazione in CloudFormation con la modalità azione Crea o sostituisci un set di modifiche si limita a creare o sostituire il set di modifiche. Non lo esegue automaticamente. Per eseguire il set di modifiche è necessario aggiungere la modalità azione Esegui un set di modifiche.

  1. Apri la console AWS CodePipeline.
  2. Identifica la pipeline implementata su CloudFormation.
  3. Scegli Modifica, quindi scegli Modifica fase di distribuzione.
  4. Scegli Aggiungi gruppo di operazioni.
  5. In Nome azione, inserisci il nome della tua azione.
  6. In Provider azione, seleziona AWS CloudFormation.
  7. In Modalità azione, seleziona Esegui un set di modifiche.
  8. Scegli Salva.

Utilizzo di AWS CLI

  1. Esegui il seguente comando get-pipeline per copiare la struttura della pipeline in un file JSON:

    aws codepipeline get-pipeline --name MyPipeline >pipeline.json
  2. Aggiungi CHANGE\ _SET\ _EXECUTE come Modalità azione nella fase di Distribuzione:

    {
      "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. Esegui il seguente comando update-pipeline per copiare la pipeline in un file JSON:

    aws codepipeline update-pipeline --cli-input-json file://pipeline.json
AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa