如何使用 AWS CodePipeline 控制调度的 EC2

How to use AWS CodePipeline to control scheduled EC2

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

代码管道在代码提交到 s3 时由 cloudwatch 启动。

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

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

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

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