14

使用条件启用/禁用 CodePipeline 的 CloudFormation 部分:

一旦构建了暂存并通过了 Runscope 测试,这将创建一个手动通知操作:

- InputArtifacts: []
      Name: !Join ["",[!Ref GitHubRepository, "-prd-approval"]]
      ActionTypeId:
        Category: Approval
        Owner: AWS
        Version: '1'
        Provider: Manual
      OutputArtifacts: []
      Configuration:
        NotificationArn: !GetAtt ["SNSApprovalNotification", "Outputs.SNSTopicArn"]
        ExternalEntityLink: OutputTestUrl
      RunOrder: 3

如何像其他具有 Condition: 的 CloudFormation 资源一样启用/禁用它。

操作步骤无法识别 Condition: param

我可以制作整个管道代码的 2 个副本,一个有一个没有,然后切换我创建的管道,但似乎应该有更好的方法。

4

1 回答 1

31

您应该能够通过使用引用您的元素的内在函数有条件地将AWS::CodePipeline::Pipeline资源的操作插入到Actions列表中来完成此操作,当条件为真时返回操作并且(删除属性,在这种情况下从列表中删除项目)时这不是真的:Fn::IfConditionsAWS::NoValue

- !If
  - IsProdCondition
  - InputArtifacts: []
    Name: !Join ["",[!Ref GitHubRepository, "-prd-approval"]]
    ActionTypeId:
      Category: Approval
      Owner: AWS
      Version: '1'
      Provider: Manual
    OutputArtifacts: []
    Configuration:
      NotificationArn: !GetAtt ["SNSApprovalNotification", "Outputs.SNSTopicArn"]
      ExternalEntityLink: OutputTestUrl
    RunOrder: 3
  - !Ref AWS::NoValue
于 2017-01-20T08:54:06.263 回答