【问题标题】:AWS Cloud Formation Stuck in Review_In_ProgressAWS Cloud Formation 陷入 Review_In_Progress
【发布时间】:2018-03-05 18:20:12
【问题描述】:

我正在尝试使用文档中提到的 Java-8 为 Lambda 使用 AWS SAM 设置 AWS Code Pipeline

http://docs.aws.amazon.com/lambda/latest/dg/automating-deployment.html (示例在 node.js 中)。

但是,我的 Staging 卡在 CloudFormation Stack 卡在 REVIEW_IN_PROGRESS 中很长时间了。有没有办法调试这个问题?

我没有看到控制台中出现任何进一步的事件。有什么具体的检查吗?

模板如下

$ aws codepipeline get-pipeline --region us-east-1 --name aws-lexbot-facebook-pipeline
{
    "pipeline": {
        "roleArn": "arn:aws:iam::XXXXXXXXXXXX:role/AWS-CodePipeline-Service", 
        "stages": [
            {
                "name": "Source", 
                "actions": [
                    {
                        "inputArtifacts": [], 
                        "name": "Source", 
                        "actionTypeId": {
                            "category": "Source", 
                            "owner": "ThirdParty", 
                            "version": "1", 
                            "provider": "GitHub"
                        }, 
                        "outputArtifacts": [
                            {
                                "name": "MyApp"
                            }
                        ], 
                        "configuration": {
                            "Owner": “xxxxxxx”, 
                            "Repo": "lexbot", 
                            "PollForSourceChanges": "true", 
                            "Branch": "master", 
                            "OAuthToken": "****"
                        }, 
                        "runOrder": 1
                    }
                ]
            }, 
            {
                "name": "Build", 
                "actions": [
                    {
                        "inputArtifacts": [
                            {
                                "name": "MyApp"
                            }
                        ], 
                        "name": "CodeBuild", 
                        "actionTypeId": {
                            "category": "Build", 
                            "owner": "AWS", 
                            "version": "1", 
                            "provider": "CodeBuild"
                        }, 
                        "outputArtifacts": [
                            {
                                "name": "MyAppBuild"
                            }
                        ], 
                        "configuration": {
                            "ProjectName": "aws-lexbot-facebook-codebuild"
                        }, 
                        "runOrder": 1
                    }
                ]
            }, 
            {
                "name": "Staging", 
                "actions": [
                    {
                        "inputArtifacts": [
                            {
                                "name": "MyAppBuild"
                            }
                        ], 
                        "name": "LexBotBetaStack", 
                        "actionTypeId": {
                            "category": "Deploy", 
                            "owner": "AWS", 
                            "version": "1", 
                            "provider": "CloudFormation"
                        }, 
                        "outputArtifacts": [], 
                        "configuration": {
                            "ActionMode": "CHANGE_SET_REPLACE", 
                            "ChangeSetName": "LexBotChangeSet", 
                            "RoleArn": "arn:aws:iam::XXXXXXXXXXX:role/cloudformation-lambda-execution-role", 
                            "Capabilities": "CAPABILITY_IAM", 
                            "StackName": "LexBotBetaStack", 
                            "TemplatePath": "MyAppBuild::SamTemplate.yaml"
                        }, 
                        "runOrder": 1
                    }
                ]
            }
        ], 
        "artifactStore": {
            "type": "S3", 
            "location": “XXXXXX-us-east-1-987802409920"
        }, 
        "name": "aws-lexbot-facebook-pipeline", 
        "version": 1
    }
}

【问题讨论】:

  • 您可以发布 CodePipeline 步骤吗?
  • 嗨..我用模板编辑了帖子

标签: amazon-cloudformation aws-codepipeline


【解决方案1】:

这可能是由于您的模板文件/对流层代码中的一些服务错误造成的。确保您可以可视化 cf 树以检查服务的通信方式。

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

单击更改集并单击“名称”字段中的链接,它在状态原因中显示“模板格式错误:”。凭借这种洞察力,我能够识别并修复错误。

【讨论】:

    【解决方案3】:

    我转到更改集并点击执行按钮,所以它现在显示 CREATION_IN_PROGRESS。

    【讨论】:

      【解决方案4】:

      概览

      在您的 CodePipeline 步骤中,您使用的是 CHANGE_SET_CREATE 操作模式。这会在 CloudFormation 堆栈上创建一个更改集,但不会自动执行它。您需要使用CHANGE_SET_EXECUTE 执行更改集的第二个操作。或者,您可以将操作的操作模式更改为 CREATE_UPDATE,这应该会直接更新您的操作。

      您可能希望在 CodePipeline 中使用 CHANGE_SET_CREATECHANGE_SET_EXECUTE 的一个原因是,如果您希望在它们之间有一个批准步骤。如果您希望这会自动完成,我建议您使用CREATE_UPDATE

      CREATE_UPDATE 示例

      下面是您的 CodePipeline Staging 阶段,但使用 CREATE_UPDATE 而不是 CREATE_CHANGE_SET。这将创建一个名为 stack 的新堆栈,如果同名堆栈已存在,则更新现有堆栈。

      {
          "inputArtifacts": [
              {
                  "name": "MyAppBuild"
              }
          ], 
          "name": "LexBotBetaStack", 
          "actionTypeId": {
              "category": "Deploy", 
              "owner": "AWS", 
              "version": "1", 
              "provider": "CloudFormation"
          }, 
          "outputArtifacts": [], 
          "configuration": {
              "ActionMode": "CREATE_UPDATE", 
              "ChangeSetName": "LexBotChangeSet", 
              "RoleArn": "arn:aws:iam::XXXXXXXXXXX:role/cloudformation-lambda-execution-role", 
              "Capabilities": "CAPABILITY_IAM", 
              "StackName": "LexBotBetaStack", 
              "TemplatePath": "MyAppBuild::SamTemplate.yaml"
          }, 
          "runOrder": 1
      }
      

      CHANGE_SET_CREATE 和 CHANGE_SET_EXECUTE 示例

      下面是一个如何将CHANGE_SET_CREATECHANGE_SET_EXECUTE 一起使用的示例。它首先在命名堆栈上创建一个更改集,然后执行该更改集。如果您希望在更改集和执行之间有一个 CodePipeline Approval 步骤,这非常有用,因此您可以查看预期的更改。

      {
          "inputArtifacts": [
              {
                  "name": "MyAppBuild"
              }
          ], 
          "name": "LexBotBetaStackChangeSet", 
          "actionTypeId": {
              "category": "Deploy", 
              "owner": "AWS", 
              "version": "1", 
              "provider": "CloudFormation"
          }, 
          "outputArtifacts": [], 
          "configuration": {
              "ActionMode": "CHANGE_SET_REPLACE", 
              "ChangeSetName": "LexBotChangeSet", 
              "RoleArn": "arn:aws:iam::XXXXXXXXXXX:role/cloudformation-lambda-execution-role", 
              "Capabilities": "CAPABILITY_IAM", 
              "StackName": "LexBotBetaStack", 
              "TemplatePath": "MyAppBuild::SamTemplate.yaml"
          }, 
          "runOrder": 1
      },
      {
          "name": "LexBotBetaStackExecute", 
          "actionTypeId": {
              "category": "Deploy", 
              "owner": "AWS", 
              "version": "1", 
              "provider": "CloudFormation"
          }, 
          "configuration": {
              "ActionMode": "CHANGE_SET_EXECUTE", 
              "ChangeSetName": "LexBotChangeSet", 
              "StackName": "LexBotBetaStack", 
          }, 
          "runOrder": 2
      }
      

      【讨论】:

      • 感谢您的解释。我都试过了。第一个(CREATE_UPDATE)dint 工作。但是添加第二个执行步骤是可行的。
      • 酷,如果这解决了您的问题,想将其标记为已接受吗?这样有类似问题的人可以更可靠地找到答案
      • 我只是接受了这个答案。再次非常感谢
      猜你喜欢
      • 1970-01-01
      • 2019-01-18
      • 2019-11-04
      • 2019-03-07
      • 1970-01-01
      • 2018-01-24
      • 2021-12-30
      • 2021-05-29
      • 1970-01-01
      相关资源
      最近更新 更多