2017-01-19 2 views
3

CodePipeline 사용하여 조건문에 대한 CloudFormation의/비활성화 부분 사용 :는 조건부 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 조건이에서 속성을 제거하는 (사실이고 AWS::NoValue 때 액션을 반환, 당신의 Conditions 요소를 참조하는 Fn::If 내장 함수를 사용하여 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의 솔루션이 가장 편리한 솔루션이라는 것을 인정합니다. 시뮬레이션 스택은 완벽하게 작동했습니다. " –