微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

了解 AWS CodePipeline 中的 CloudFormationStackSet 和 CloudFormationStackInstances 操作

如何解决了解 AWS CodePipeline 中的 CloudFormationStackSet 和 CloudFormationStackInstances 操作

tl:博士

在初始管道运行后,我无法让 CodePipeline 更新 CloudFormationStackInstances。

我正在尝试使用 CodePipeline 部署堆栈集和堆栈集实例。

我可能没有正确理解这些概念,我的管道如下:

        - Name: Testing
          Actions:
            - ActionTypeId:
                Category: Deploy
                Owner: AWS
                Provider: CloudFormationStackSet
                Version: '1'
              Runorder: 1
              Configuration:
                AdministrationRoleArn: !Sub arn:aws:iam::${AWS::AccountId}:role/AWSCloudFormationStackSetAdministrationRole
                DeploymentTargets: !Ref TestingAccountId
                Regions: eu-west-1
                PermissionModel: SELF_MANAGED
                StackSetName: !Ref StackSetName
                TemplatePath: 'SourceArtifact::dummy.yml'
                Parameters: ParameterKey=ParamValue,ParameterValue=testing
              OutputArtifacts: []
              InputArtifacts:
                - Name: SourceArtifact
              Namespace: Testing
              Name: Testing


            - Name: ApproveStaging
              ActionTypeId:
                Category: Approval
                Owner: AWS
                Provider: Manual
                Version: '1'
              Runorder: 2


        - Name: Staging
          Actions:
            - ActionTypeId:
                Category: Deploy
                Owner: AWS
                Provider: CloudFormationStackInstances
                Version: '1'
              Runorder: 1
              Configuration:
                DeploymentTargets: !Ref StagingAccountId
                Regions: eu-west-1,us-east-1
                StackSetName: !Ref StackSetName
                ParameterOverrides: ParameterKey=ParamValue,ParameterValue=staging
              OutputArtifacts: []
              InputArtifacts:
                - Name: SourceArtifact
              Namespace: Staging
              Name: Staging

我想在一个帐户中推出更改,然后在其他帐户和地区进行审核和推出。

我观察到的是管道第一次正确运行。

如果我对 Cloudformation 模板进行更改并再次运行管道,则:

  • 一个帐户随着添加到 模板,管道会根据需要暂停。
  • 我检查了 Cloudformation 和第二个中的堆栈集实例
    帐户 StackInstance 按预期显示“过时”状态。
  • 我继续管道,它显示了下一个帐户的阶段
    已完成。
  • 我检查了 Cloudformation 中的堆栈集实例和第二个帐户 StackInstance 显示为“当前”,堆栈集的模板反映了我在初始管道运行后所做的更改。

到目前为止一切都很好,但是当我检查第二个帐户的 Cloudformation 堆栈时,我在初始管道运行后对 Cloudformation 模板所做的更改没有更新。

我已经检查并仔细检查过,但似乎 CloudFormationStackInstances 操作创建了但随后从未更新堆栈实例。

我希望能够推出更改并首先预览它们,并且还在堆栈实例级别拥有 ParameterOverrides。

可能我不明白如何在 CodePipeline 中正确使用 Stacksets。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。