我搭建了一个AWS Codepipeline,从Github上获取源代码,通过CodeBuild构建,然后通过CodeDeploy部署到ec2实例,这个ec2实例就是开发环境。
由于我的团队决定暂时不使用此服务器/代码,因此我们停止了 ec2 实例。因此,我想暂时停止 Codepipeline(CodeBuild 和 CodeDeploy 不是免费的,即使价格很低……)但是,我找不到暂时禁用 codepipeline 的选项。
问题:
- 我可以暂时禁用 codepipeline 吗?
答案1
使用 AWS CLI,您可以禁用触发事件。
该命令的语法是
aws events disable-rule --name [name of rule]
要查找规则的名称,请查看 CloudWatch 控制台中的所有规则。您可能需要打开每个规则才能查看哪个是您的管道的规则。要更直接地查找您的管道的规则,您可以运行
aws events list-rule-names-by-target --target-arn [arn of pipeline]
要获取管道的 arn,您可以
aws codepipeline get-pipeline --name [name of pipeline]
并查看结果中的 metadata.pipelineArn。
答案2
按照其他一些答案,您可以从 AWS 控制台禁用转换。打开管道,在阶段之间,您会看到一个小小的“禁用转换”按钮。
禁用舞台过渡按钮
禁用阶段转换按钮模式
答案3
如果您没有通过某些操作(例如更改或 CloudWatch 事件规则)触发 CodePipeline,那么它就不会运行。假设您不推送任何更改,您的管道就不会运行,您也不会产生 CodeDeploy 或 CodeBuild 费用。
如果您仍需要推送更改但不希望管道运行,那么您可以创建一个不推送的分支,然后更新管道以使用该分支。
这些方法的优点是,如果您需要紧急推动变革,您的管道仍然准备就绪。
另一个选项是禁用源阶段之外的阶段转换(单击源阶段下方的箭头)。您的管道仍将运行(因此,如果您推送更改,仍将产生 CodePipeline 费用),但至少后面的阶段都不会运行。
答案4
我倾向于最后一个建议的选项蒂姆B,即禁用以下某个转换:
aws codepipeline disable-stage-transition --pipeline-name my-pipeline \
--stage-name Test --transition-type Inbound --reason "my-reason"