AWS CodePipeline-在CloudFormation中部署:操作执行失败要求功能:[CAPABILITY_AUTO_EXPAND]

时间:2019-02-10 15:38:19

标签: amazon-web-services amazon-cloudformation aws-codepipeline aws-sam

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

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

CodeCommit和CodeBuild可以正常工作,但是在部署阶段(在CodePipeline中),我总是会收到此错误:

CodePipeline Error

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

CodePipeline Deploy Config

如果我通过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

2 个答案:

答案 0 :(得分:0)

我不知道如何通过UI进行操作,但是在CloudFormation中,您需要在“功能”节点的模板中指定它,请参见下面的“功能”。

以下仅是代码段,对于CloudFormation而言,它不是格式正确的JSON。

library(data.table)
DT <- fread("
region   season   year   altitud   response
IT       wint     2013   800       45
IT       wint     2013   815       47
IT       wint     2013   840       54
IT       wint     2014   800       49
IT       wint     2014   815       59")

答案 1 :(得分:0)

我(有点)通过以下主题的答案解决了我的问题:aws CAPABILITY_AUTO_EXPAND console web codepipeline with cloudformation

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