暂时禁用 aws CodePipeline?

暂时禁用 aws CodePipeline?

我搭建了一个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"

相关内容