【问题标题】:How to use AWS CodePipeline to control scheduled EC2如何使用 AWS CodePipeline 控制预定的 EC2
【发布时间】:2025-11-29 06:30:01
【问题描述】:

我创建了一个 AWS 代码管道来将代码部署到 EC2。代码管道具有包括源(来自 s3)、codedeploy_to_test、批准、codedeploy_to_prod 等阶段,但要部署的 EC2 仅运行几个小时,例如每天早上 7 点到晚上 9 点。他们在其他时间停下来。

只要将代码提交到 s3,就会由 cloudwatch 启动代码管道。

如何增强代码管道,以便它仅将代码部署到 EC2 顺便说一句。早上 7 点到晚上 9 点,其他时间等待或忽略源的更改(s3)?

我在想也许我可以做某事。在每次编码部署之前,如果时间是早上 7 点到晚上 9 点,请继续,否则,什么也不做。但我不知道我能做些什么来实现这一目标。

【问题讨论】:

    标签: aws-code-deploy aws-codepipeline


    【解决方案1】:

    CodePipeline 目前没有对此的内置支持,但是可以使用 Lambda 函数结合批准操作或阶段转换来执行此操作。

    以下是一个 Lambda 函数示例,该函数将在特定时间自动批准手动批准操作:https://github.com/aws-samples/aws-codepipeline-time-windows

    【讨论】:

    • TimB:谢谢,目前我的代码管道在 codedeploy 之前调用一个 lambda 来启动 EC2,然后在 codedeploy 之后调用另一个 lambda 来停止 EC2。它可以工作,除非我认为如果两个代码几乎同时提交,那可能会导致一些问题。因为第一个代码完成调用 EC2 停止,而第二个代码仍在部署。我将使用 dynamodb 来解决这个问题。
    最近更新 更多