Por que minha pilha do AWS CloudFormation está presa no estado REVIEW_IN_PROGRESS?

3 minuto de leitura
0

Minha pilha do AWS CloudFormation está presa no estado REVIEW_IN_PROGRESS.

Breve descrição

Uma pilha presa no estado REVIEW_IN_PROGRESS significa que você tentou criá-la usando um conjunto de alterações que não foi executado. Quando você cria um conjunto de alterações para uma nova pilha, o CloudFormation cria um ID de pilha exclusivo, mas sem recursos. Se você não executar o conjunto de alterações, a pilha permanecerá no estado REVIEW_IN_PROGRESS.

Observação: se você receber erros ao executar comandos da AWS CLI, certifique-se de estar usando a versão mais recente da AWS CLI.

Resolução

Conclua as etapas a seguir para executar um conjunto de alterações usando seu método preferido.

Usar o console do AWS CloudFormation

  1. Abra o console do AWS CloudFormation.
  2. No painel de navegação, escolha Stacks (Pilhas) e encontre a pilha que está presa.
  3. Escolha a guia Change Sets (Conjuntos de alterações).
  4. Selecione o último conjunto de alterações e revise as alterações.
  5. Escolha Run (Executar) para criar a pilha.

Usar a AWS Command Line Interface (AWS CLI)

1.    Execute o seguinte comando list-change-sets para listar todos os conjuntos de alterações:

aws cloudformation list-change-sets --stack-name StackName

2.    Identifique o conjunto de alterações e execute o seguinte comando execute-change-set:

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

Usar o console do AWS CodePipeline

O uso do AWS CodePipeline para implantar no CloudFormation com o modo de ação Create or replace a change set (Criar ou substituir um conjunto de alterações) apenas cria ou substitui o conjunto de alterações. Ele não o executa automaticamente. Para executar o conjunto de alterações, você deve adicionar o modo de ação Execute a change set (Executar um conjunto de alterações).

  1. Abra o console do AWS CodePipeline.
  2. Identifique o pipeline que está sendo implantado no CloudFormation.
  3. Escolha Edit (Editar) e, em seguida, escolha Edit Deploy stage (Editar estágio de implantação).
  4. Escolha Add Action group (Adicionar grupo de ações).
  5. Em Action name (Nome da ação), insira o nome da ação.
  6. Para Action provider (Provedor de ação), selecione AWS CloudFormation.
  7. Para Action mode (Modo de ação), selecione Execute a change set (Executar um conjunto de alterações).
  8. Escolha Save (Salvar).

Usar a AWS CLI

1.    Execute o seguinte comando get-pipeline para copiar a estrutura do pipeline em um arquivo JSON:

aws codepipeline get-pipeline --name MyPipeline >pipeline.json

2.    Adicione CHANGE_SET_EXECUTE como ActionMode no estágio Deploy (Implantar):

{
  "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.    Execute o seguinte comando update-pipeline para copiar o pipeline em um arquivo JSON:

aws codepipeline update-pipeline --cli-input-json file://pipeline.json

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos