我有一个使用AWS codebuild构建AMI的codepipeline,我计划按周计划运行新的服务器映像。
我想将它作为计划任务运行,我想为此使用lambda计划任务,但没有看到从lambda运行管道源的选项(我想到使用lambda的api) ,但我更喜欢使用现有工具的模式声明解决方案)有没有人知道内置的解决方案?
我不希望它在代码推送上运行,如何启用它?
为什么使用codepipeline?因为lambda的任务太长了。而且我不想为此旋转ec2实例(按小时计费)或保持几乎不工作的实例。是否可以处理任何其他AWS工具?
答案 0 :(得分:2)
您可以使用CLI命令disable-stage-transition
(或与SDK相对应的API调用)
您可以禁用Inbound过渡到Source阶段。这将迫使它不注意变化。然后,您可以创建Lambda函数并将其设置为计划。在Lambda函数中,您可以使用enable-stage-transition
调用来重新打开源输入。
如果您根本不关心存储库中的更改,则永远不必打开Inbound Source转换,只需调用start-pipeline-execution
命令。
答案 1 :(得分:2)
AWS CodePipeline为now available as a CloudWatch events target。 CloudWatch事件支持计划,因此您可以使用它来按计划自动启动管道。
最近在源操作上添加了名为PollForSourceChanges
的{p> An option,当设置为false
时,将不会通过现有的轮询机制自动启动管道。
它旨在与希望仅从CloudWatch事件启动管道的客户一起使用CloudWatch事件。
听起来这两个功能的组合很适合您的用例。
答案 2 :(得分:0)