[英]Is there any way to stop AWS from starting CodePipeline automatically if I deploy it via CloudFormation?
如果您通過 CloudFormation 創建 CodePipeline。 它會自動啟動,這可能是個問題,因為管道可以重寫相同的堆棧...
有什么辦法可以禁用此行為嗎?
謝謝。
可悲的是,這似乎沒有辦法。 Docs明確指出新創建的管道立即開始運行:
現在您已經創建了管道,您可以在控制台中查看它。 管道在您創建后開始運行。
初始運行將始終發生。 后續運行取決於您的源操作。 例如,如果您使用 CodeCommit 作為源,則可以禁用觸發管道的 CloudWatch 事件。
因此,如果您想在項目中使用 CodePipeline,您必須對其進行設計,使其不會因立即啟動而導致任何問題。
根據 Marcin 的評論,您似乎可以采取兩種方法來限制管道的運行。
在Source階段之后直接創建禁用的 StageTransition或Manual Approval階段。 這將阻止管道執行任何其他操作,除了獲取不會影響或無法重寫任何內容的源。
或者,如果您的源階段來自存儲庫,您可以通過禁用 cloudformation 模板中的PollForSourceChanges參數來選擇自己處理管道觸發器。
Pipeline: Type: AWS::CodePipeline::Pipeline Properties: Name: *NAME* RoleArn: *IAMROLE* Stages: - Name: Source Actions: - Name: CodeCommitSourceAction RunOrder: 1 ActionTypeId: Category: Source Provider: CodeCommit Owner: AWS Version: '1' OutputArtifacts: - Name: Source Configuration: RepositoryName: *REPOSITORYNAME* BranchName: *BRANCH* PollForSourceChanges: "false" #prevents codepipeline polling repository for changes.
所以正確答案是...
99% 的情況下,它會比您的機器更快完成。
有同樣的問題,我不希望在創建管道時啟動管道(這是默認行為)。
我找到的最佳解決方案是:
規則如下所示:
{
"source": ["aws.codepipeline"],
"detail-type": ["CodePipeline Pipeline Execution State Change"],
"detail": {
"state": ["STARTED"],
"execution-trigger": {
"trigger-type": ["CreatePipeline"]
}
}
}
它工作正常
您可以禁止事件規則自動啟動您的管道。 轉到Amazon EventBridge ->規則並禁用通知 CodePipeline 的規則。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.