Search code examples
aws-codepipelineaws-codebuild

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?


Solution

  • 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.