简体   繁体   中英

Triggering AWS codepipeline/codebuild from a scheduled lambda and blocking commit trigger

I have a codepipeline using AWS codebuild building an AMI I planning on running on a weekly schedule for a fresh server image.

  1. I want to run it as a scheduled task, I thought of using lambda scheduled tasks for that, but didn't see an option of running pipeline source from lambda (I thought of using the api from lambda for that, but I rather have a mode declarative solution using the existing tools) Does anyone know of a built in solution for that?

  2. I DON'T want it to run on code push, how can that be enabled?

Edit: clarification

Why codepipeline? Because the task is too long for lambda. And I don't want to spin an ec2 instance for that (Billed by the hour) or keep an almost not working instance. Any other AWS tools that can handle that?

AWS CodePipeline is now available as a CloudWatch events target . CloudWatch events supports scheduling, so you can use this to automatically start your pipeline on a schedule.

An option called PollForSourceChanges was also recently added on source actions which when set to false will not start your pipeline automatically via the existing polling mechanism.

It is intended to be used in conjunction with CloudWatch events for customers who want to start their pipeline exclusively from CloudWatch events.

It sounds like a combination of these two features would suit your use-case well.

You can use the CLI command disable-stage-transition (or the corresponding API call with an SDK)

You can disable Inbound transitions to your Source stage. That will force it to not watch for changes. Then you can create a Lambda function and set it to a schedule. In the Lambda function you can use the enable-stage-transition call to turn back on the source input.

If you don't care about changes in your repository at all, you never have to turn on the Inbound Source transition and simply call the start-pipeline-execution command.

Currently, these are the Codepipeline detection options when using Codecommit在此处输入图像描述

Even though this configures the CloudWatch Events to automatically start when a change occurs , you can just log into the Cloudwatch console and disable or modify the event as you like.

Since the events can run on a schedule, you may not even need lambda

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM