2017-01-19 94 views
3

啓用CloudFormation爲CodePipeline使用條件語句/禁用部分:基於CloudFormation條件有條件創建CodePipeline行動

這將創建一個手工通知動作一次登臺已經建成並通過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 

如何使用條件來啓用/禁用此功能,就像其他CloudFormation資源一樣:。

操作步驟不承認條件:PARAM

我可以讓整個管道代碼一種帶有一個2份無,然後撥動該管道創建但是看起來應該有更好的方式。

回答

5

您應該能夠通過有條件地將完成這一任務的AWS::CodePipeline::Pipeline資源的Action到使用Fn::If內在功能指引你Conditions元素,返回時的動作條件爲真AWS::NoValue(刪除屬性,在此Actions列表情況從列表中刪除的項目)時,它是不正確的:

- !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 
+0

AWS支持: 「這是一個非常有趣的問題,我花了一段時間來考慮一下......好吧,我需要承認來自Stackoverflow的解決方案是最方便的解決方案之一模擬堆棧,它工作完美。「 –