¿Por qué mi pila de AWS CloudFormation está atascada en el estado REVIEW_IN_PROGRESS?

3 minutos de lectura
0

Mi pila de AWS CloudFormation está atascada en el estado REVIEW_IN_PROGRESS.

Breve descripción

Si una pila está atascada en el estado REVIEW_IN_PROGRESS, significa que ha intentado crear la pila con un conjunto de cambios que no se ha ejecutado. Al crear un conjunto de cambios para una pila nueva, CloudFormation crea un ID de pila único, pero no recursos. Si no ejecuta el conjunto de cambios, la pila permanece en el estado REVIEW_IN_PROGRESS.

Nota: Si se muestran errores al ejecutar los comandos de AWS CLI, asegúrese de que está utilizando la versión más reciente de AWS CLI.

Solución

Complete los siguientes pasos para ejecutar un conjunto de cambios mediante el método que prefiera.

Uso de la consola de AWS CloudFormation

  1. Abra la consola de AWS CloudFormation.
  2. En el panel de navegación, seleccione Pilas y, a continuación, busque la pila atascada.
  3. Seleccione la pestaña Conjuntos de cambios.
  4. Seleccione el conjunto de cambios más reciente y revise los cambios.
  5. Elija Ejecutar para crear la pila.

Uso de la Interfaz de la línea de comandos de AWS (AWS CLI)

  1. Ejecute el siguiente comando list-change-sets para generar una lista de todos los conjuntos de cambios:

    aws cloudformation list-change-sets --stack-name StackName
  2. Identifique el conjunto de cambios y ejecute el siguiente comando execute-change-set:

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

Uso de la consola de AWS CodePipeline

Si usa AWS CodePipeline para el despliegue en CloudFormation con el modo de acción Crear o reemplazar un conjunto de cambios, el conjunto de cambios solo se crea o se reemplaza, no se ejecuta automáticamente. Para ejecutarlo, debe añadir el modo de acción Ejecutar un conjunto de cambios.

  1. Abra la consola de AWS CodePipeline.
  2. Identifique la canalización que se está desplegando en CloudFormation.
  3. Elija Editar y, a continuación, elija Edit Deploy stage.
  4. Seleccione Add Action group.
  5. En Nombre de la acción, introduzca el nombre de la acción.
  6. En Proveedor de acción, seleccione AWS CloudFormation.
  7. En Modo acción, seleccione Ejecutar un conjunto de cambios.
  8. Elija Guardar.

Uso de AWS CLI

  1. Ejecute el siguiente comando get-pipeline para copiar la estructura de canalización en un archivo JSON:

    aws codepipeline get-pipeline --name MyPipeline >pipeline.json
  2. Agregue CHANGE_SET_EXECUTE como ActionMode en la etapa 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. Ejecute el siguiente comando update-pipeline para copiar la canalización en un archivo JSON:

    aws codepipeline update-pipeline --cli-input-json file://pipeline.json
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años