首页 > 解决方案 > AWS CodePipeline - 在 CloudFormation 中部署:操作执行失败需要功能:[CAPABILITY_AUTO_EXPAND]

问题描述

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

在 CodeCommit 中提交 -> 在 CodeBuild 中准备 CloudFormation 包 -> 部署到 CloudFormation

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

CodePipeline 错误

但在 UI 中,我无法选择 CAPABILITY_AUTO_EXPAND,只能选择 CAPABILITY_IAM,这并不能解决问题:

CodePipeline 部署配置

如果我通过 CLI 进行部署,我想我可以设置 CAPABILITY_AUTO_EXPAND 选项,但我想通过 UI 进行。

我能做些什么?

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

标签: amazon-web-servicesamazon-cloudformationaws-codepipelineaws-sam

解决方案


我(有点)用这个线程中的答案解决了我的问题:aws CAPABILITY_AUTO_EXPAND console web codepipeline with cloudformation

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


推荐阅读