3

我有一个使用 AWS codebuild 构建 AMI 的代码管道,我计划每周运行一次以获得新的服务器映像。

  1. 我想将它作为计划任务运行,我想为此使用 lambda 计划任务,但没有看到从 lambda 运行管道源的选项(我想使用 lambda 中的 api,但我宁愿有一个使用现有工具的模式声明性解决方案)有人知道内置解决方案吗?

  2. 我不希望它在代码推送上运行,如何启用它?

编辑:澄清

为什么要使用代码管道?因为任务对于 lambda 来说太长了。而且我不想为此旋转一个 ec2 实例(按小时计费)或保留一个几乎不工作的实例。还有其他可以处理的 AWS 工具吗?

4

3 回答 3

4

AWS CodePipeline现在可用作 CloudWatch 事件目标。CloudWatch events 支持计划,因此您可以使用它来按计划自动启动管道。

PollForSourceChanges最近还在源操作上添加了一个名为的选项false,当设置为时,它不会通过现有的轮询机制自动启动您的管道。

对于希望完全从 CloudWatch 事件启动其管道的客户,它旨在与 CloudWatch 事件结合使用。

听起来这两个功能的组合很适合您的用例。

于 2017-08-28T23:21:08.933 回答
3

您可以使用 CLI 命令disable-stage-transition(或带有 SDK 的相应 API 调用)

您可以禁用到源阶段的入站转换。这将迫使它不关注变化。然后,您可以创建一个 Lambda 函数并将其设置为计划。在 Lambda 函数中,您可以使用enable-stage-transition调用来重新打开源输入。

如果您根本不关心存储库中的更改,则无需打开 Inbound Source 转换,只需调用start-pipeline-execution命令即可。

于 2017-07-14T15:52:46.577 回答
0

目前,这些是使用 Codecommit 时的 Codepipeline 检测选项 在此处输入图像描述

即使这将 CloudWatch Events 配置为在发生更改时自动启动,您也可以登录 Cloudwatch 控制台并根据需要禁用修改事件。

由于事件可以按计划运行,您甚至可能不需要 lambda

于 2021-02-15T13:36:53.267 回答