Amazon web services 如何回滚通过CloudFormation部署的AWS CodeStar Lambda函数?

Amazon web services 如何回滚通过CloudFormation部署的AWS CodeStar Lambda函数?,amazon-web-services,continuous-integration,aws-lambda,continuous-deployment,aws-codepipeline,Amazon Web Services,Continuous Integration,Aws Lambda,Continuous Deployment,Aws Codepipeline,我正在为AWS Lambda创建一个Nodejs微服务。我使用AWS Codestar构建了一个项目,这为我建立了一个自动部署lambda功能的CI/CD管道。很好 问题是,每次它部署lambda函数时,它都必须删除并重新创建该函数,从而删除我创建的任何版本或别名 这意味着我真的无法回滚到其他版本。我基本上已经使用git来实际还原项目,推到git,等待超慢的AWS代码管道成功通过,然后让它重新生成函数。对我来说,这听起来像是一个非常糟糕的灾难恢复策略,我认为正确的回滚方法应该简单快速 不幸的是,

我正在为AWS Lambda创建一个Nodejs微服务。我使用AWS Codestar构建了一个项目,这为我建立了一个自动部署lambda功能的CI/CD管道。很好

问题是,每次它部署lambda函数时,它都必须删除并重新创建该函数,从而删除我创建的任何版本或别名

这意味着我真的无法回滚到其他版本。我基本上已经使用git来实际还原项目,推到git,等待超慢的AWS代码管道成功通过,然后让它重新生成函数。对我来说,这听起来像是一个非常糟糕的灾难恢复策略,我认为正确的回滚方法应该简单快速

不幸的是,AWS的CloudFormation部分似乎没有提供任何帮助。当您在第一个CloudFormation页面上钻取堆栈时,它只显示有关发生的最新形成的信息亲爱的AWS CloudFormation工程师:如果每个堆栈都有一个页面,显示该堆栈的CloudFormation历史记录和回滚选项,那将非常棒。不过,目前还没有。只是关于最近被蒙蔽的编队的信息。一个最初很有希望的选项是“回滚触发器”,但实际上这只是一个完全不同的选项,它允许您在构建未通过时发送SNS通知

当我尝试将deploy的CodePipeline阶段从CREATE_change_SET更改为CREATE_UPDATE时,当它尝试执行时会出现以下错误:

操作执行失败UpdateStack不能与模板一起使用 包含转换。(服务:AmazonCloudFormation;状态代码: 400;错误代码:ValidationError;请求ID: bea5f687-470b-11e8-a616-c791ebf3e8e1)

顺便说一下,我的template.yml如下所示:

AWSTemplateFormatVersion: 2010-09-09
Transform:
- AWS::Serverless-2016-10-31
- AWS::CodeStar

Parameters:
  ProjectId:
    Type: String
    Description: AWS CodeStar projectID used to associate new resources to team members

Resources:
  HelloWorld:
    Type: AWS::Serverless::Function
    Properties:
      Handler: index.handler
      Runtime: nodejs8.10
      Environment:
        Variables:
          NODE_ENV: staging
      Role:
        Fn::ImportValue:
          !Join ['-', [!Ref 'ProjectId', !Ref 'AWS::Region', 'LambdaTrustRole']]
      Events:
        GetEvent:
          Type: Api
          Properties:
            Path: /
            Method: get
        PostEvent:
          Type: Api
          Properties:
            Path: /
            Method: post
CodePipeline“部署”操作中的唯一选项是:

如果有人能帮我看看在AWS中如何使用CodePipeline创建Lambda函数,使它们能够轻松、快速地回滚,那就太好了。谢谢