当前位置: 首页 > 知识库问答 >
问题:

AWS CodePipeline-部署在云形成:操作执行失败需要功能:[CAPABILITY_AUTO_EXPAND]

谢修真
2023-03-14

我刚刚开始介绍AWS CI/CD管道。我想制作一个简单的管道来部署lambda函数(以及后来的api网关):

在CodeCommit中提交-

CodeCommit和CodeBuild工作得很好,但在部署阶段(在CodePipeline中),我总是会遇到以下错误:

CodePipeline错误

但是在用户界面中,我不能选择CAPABILITY_AUTO_EXPAND,只能CAPABILITY_IAM,这并不能解决问题:

CodePipeline部署配置

如果我在CLI上进行部署,我想我可以设置CAPABILITY_AUTO_EXPAND选项,但是我想在用户界面上这样做。

我能做什么?

SAM模板yaml:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Returns the body
Resources:
  TestFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: test.handler
      Runtime: nodejs8.11.0
      CodeUri: ./
      Events:
        TestAPI:
          Type: Api
          Properties:
            Path: /test
            Method: POST

共有2个答案

戈嘉慕
2023-03-14

我(有点)解决了我的问题,在这个线程中的答案:awsCAPABILITY_AUTO_EXPAND控制台web codemipeline与云形成

看起来AWS UI jsut没有显示该选项,您需要通过AWS cli更新管道。

澹台锐
2023-03-14

我不知道如何通过用户界面来完成它,但是在云形成中,你可以在“能力”节点的模板中指定它,参见下面的“能力”。

下面的内容只是一个片段,不是用于CloudFormation的格式良好的JSON。

 "Resources": {
"Pipeline": {
  "Type": "AWS::CodePipeline::Pipeline",
  "Properties": {
    "ArtifactStore": {
      "Location": {
        "Fn::Join": [
          "-",
          [
            "bubbleboy",
            {
              "Ref": "AWS::AccountId"
            }
          ]
        ]
      },
      "Type": "S3"
    },
    "Name": {
      "Ref": "AWS::StackName"
    },
    "RoleArn": {
      "Fn::GetAtt": [
        "PipelineRole",
        "Arn"
      ]
    },
    "Stages": [
      {
        "Actions": [
          {
            "ActionTypeId": {
              "Category": "Source",
              "Owner": "AWS",
              "Provider": "CodeCommit",
              "Version": "1"
            },
            "Configuration": {
              "RepositoryName": {
                "Ref": "Repo"
              },
              "BranchName": {
                "Ref": "Branch"
              }
            },
            "Name": "Source",
            "RunOrder": "1",
            "OutputArtifacts": [
              {
                "Name": "Source-Artifact"
              }
            ]
          }
        ],
        "Name": "SourceCode"
      },
      {
        "Actions": [
          {
            "ActionTypeId": {
              "Category": "Build",
              "Owner": "AWS",
              "Provider": "CodeBuild",
              "Version": "1"
            },
            "Configuration": {
              "ProjectName": {
                "Ref": "CodeBuildStage1NetCoreCodeBuildProject1"
              }
            },
            "Name": "Build",
            "RunOrder": "1",
            "OutputArtifacts": [
              {
                "Name": "Build-Artifact"
              }
            ],
            "InputArtifacts": [
              {
                "Name": "Source-Artifact"
              }
            ]
          }
        ],
        "Name": "Build"
      },
      {
        "Actions": [
          {
            "ActionTypeId": {
              "Category": "Deploy",
              "Owner": "AWS",
              "Provider": "CloudFormation",
              "Version": "1"
            },
            "Configuration": {
              "ActionMode": "CHANGE_SET_REPLACE",
              "StackName": {
                "Fn::Join": [
                  "-",
                  [
                    {
                      "Ref": "AWS::StackName"
                    },
                    "deploy"
                  ]
                ]
              },
              "Capabilities": "CAPABILITY_IAM",
              "RoleArn": {
                "Fn::GetAtt": [
                  "CreateChangesetCloudFormationRole1",
                  "Arn"
                ]
              },
              "ChangeSetName": {
                "Ref": "AWS::StackName"
              },
              "TemplatePath": "Build-Artifact::Deploy.template",
              "ParameterOverrides": {
                "Fn::Join": [
                  "",
                  [
                    "{ \"YadaYadaBubbleBoyWebApiBucket\": { \"Fn::GetArtifactAtt\": [ \"Build-Artifact\", \"BucketName\" ] }, \"YadaYadaBubbleBoyWebApiKey\": { \"Fn::GetArtifactAtt\": [ \"Build-Artifact\", \"ObjectKey\" ] },\"DbBranch\":\"",
                    {
                      "Fn::If": [
                        "isstaging",
                        "master",
                        {
                          "Ref": "Branch"
                        }
                      ]
                    },
                    "\"}\"DatabaseStack\":\"",
                    {
                      "Fn::If": [
                        "isstaging",
                        "database-stage",
                        {
                          "Ref": "DatabaseStack"
                        }
                      ]
                    },
                    "\"}"
                  ]
                ]
              }
            },
            "Name": "CreateChangeset",
            "RunOrder": "1",
            "InputArtifacts": [
              {
                "Name": "Build-Artifact"
              }
            ]
          },
          {
            "ActionTypeId": {
              "Category": "Deploy",
              "Owner": "AWS",
              "Provider": "CloudFormation",
              "Version": "1"
            },
            "Configuration": {
              "ActionMode": "CHANGE_SET_EXECUTE",
              "StackName": {
                "Fn::Join": [
                  "-",
                  [
                    {
                      "Ref": "AWS::StackName"
                    },
                    "deploy"
                  ]
                ]
              },
              "Capabilities": "CAPABILITY_IAM",
              "RoleArn": {
                "Fn::GetAtt": [
                  "ExecuteChangesetCloudFormationRole1",
                  "Arn"
                ]
              },
              "ChangeSetName": {
                "Ref": "AWS::StackName"
              }
            },
            "Name": "ExecuteChangeset",
            "RunOrder": "2"
          }
        ],
        "Name": "Deploy"
      }
    ]
  },
  "DeletionPolicy": "Delete"
},
 类似资料:
  • 当我运行gcloud函数deploy gcp_test——trigger resource xxx-test-123——trigger event google时。存储对象我发现语法错误。 错误:(gcloud.functions.deploy)操作错误:code=3,message=Function load错误:文件索引中的代码。无法加载js。你的代码中有语法错误吗?详细堆栈跟踪:/user\

  • 使用部署云功能失败,出现以下消息, 错误:(gcloud.beta.functions.deploy)操作错误:代码=13,消息=执行环境中失败 在云函数日志中找不到有关错误的详细信息。 使用跟踪在云SDK目录中调用的函数,并以显示以下错误结束, FunctionError:OperationError:code=13,message=execution environment失败错误:(gclo

  • 从今天开始,我无法使用gCloud cli部署云功能。 下面是我部署云功能的gloud命令: 我有个错误: 部署功能(可能需要一段时间-最多2分钟)...失败。 错误:(gcloud.functions.deploy)操作错误:代码=3,消息=生成失败:生成已超时 我曾经在一个小时前编写过相同的脚本,但现在,团队中没有人能够部署云功能,并得到相同的错误。 在stackDrive日志中,我只看到以下

  • 这可能是一个非常简单的问题,但我在尝试部署基本的Python云函数时遇到了持续的错误。主要是我创造的。py文件。 部署失败:加载用户代码时函数失败。这可能是由于用户代码中的错误造成的。错误消息:错误:请检查函数日志以查看错误原因:https://cloud.google.com/functions/docs/monitoring/logging#viewing_logs.有关其他故障排除文档,请访

  • 问题内容: 我在此问题底部的stacktrace中遇到指定的错误。主要错误信息: 我不知道它已经发生多久了,因为部署仍然成功。尝试修复上面链接的问题时,我偶然发现了此错误。我正在尝试部署到glassfish应用服务器(测试环境)。 基本上,我的应用程序也可以在我的本地环境中正常运行(有关更多详细信息,请参见我之前的问题)。我提出了一个新问题,因为我感觉这可能会导致应用服务器上出现许多问题,因为每次

  • 在学习使用google cloud创建基本slack应用程序的教程时,部署阶段会失败: 想办法解决这个问题