amazon-web-services - AWS Codepipeline 和 Cloudformation 中的版本更改集

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

常见的 AWS Cloudformation CodePipeline 部署片段如下所示:

        - Name: CreateChangeSet
          ActionTypeId:
            Category: Deploy
            Owner: AWS
            Version: '1'
            Provider: CloudFormation
          Configuration:
            ActionMode: CHANGE_SET_REPLACE
            RoleArn: ...
            StackName: ...
            ChangeSetName: deploy-commit
            TemplatePath: ...
            Capabilities: CAPABILITY_IAM
          InputArtifacts:
            - Name: ...
          RunOrder: 1

        - Name: ExecuteChangeSet
          ActionTypeId:
            Category: Deploy
            Owner: AWS
            Provider: CloudFormation
            Version: '1'
          Configuration:
            ActionMode: CHANGE_SET_EXECUTE
            ChangeSetName: deploy-commit
            RoleArn: ..
            StackName: ...
          RunOrder: 2

我们创建一个变更集并执行。是否有一种模式或方法可以让我们为每个新版本获取唯一的 ChangeSetName。因为 CHANGE_SET_REPLACE 删除了前一个并创建了一个同名的新的,因此我们丢失了历史记录。

最佳答案

您的源操作(GitHub 或 CodeCommit)应该已经具有更改历史记录。但不幸的是,根据您的请求,CodePipeline 的 CloudFormation 不支持为每次执行创建具有不同名称的更改集。以下链接列出了所有可能的操作模式,但它们都不支持为每次执行创建具有不同名称的更改集。 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html#w2ab1c13c13b9

满足您的需求的一种可能方法是使用 CodeBuild、Lambda 调用或自定义操作类型编写您自己的自定义 CloudFormation 操作类型。您可以拥有自己的实现来调用 CloudFormation API 以使用新名称创建更改集并部署更改集。有关自定义操作类型的更多信息,请访问 https://docs.aws.amazon.com/codepipeline/latest/userguide/actions-create-custom-action.html

关于amazon-web-services - AWS Codepipeline 和 Cloudformation 中的版本更改集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53009752/

相关文章:

apache - 如何在我的 ec2 ami apache 服务器上启用 https

typescript - 使用 CloudFormationCreateReplaceChangeSetAction 处理 yaml 文件时,如何从配置文件添加信息?

amazon-web-services - 使用 BitBucket 管道在拉取请求合并时构建 Maven 项目

amazon-web-services - CodePipeline 构建规范和多个构建操作

lambda - AWS CodePipeline : pass Lambda function output to CloudFormation

amazon-web-services - AWS YAML 存储桶策略语法无效

python - Flask SERVER_NAME 永远不正确

amazon-web-services - 运行 AWS Golang Lambda 时出现 exec 格式错误

amazon-web-services - 如何通过其友好名称或使用 cloudformation 的 arn 从云上现有的 Lambda 函数获取角色名称?

amazon-web-services - 无法在 Cloudformation 模板中为 Cloudwatch 警报定义数学表达式