aws / aws/aws-cdk

pipelines: Invoking a Lambda function

Open
#24,978 1 comment 1 reaction 0 assignees View on GitHub
@aws-cdk/aws-lambda @aws-cdk/pipelines effort/medium feature-request p2
Dominant language
TypeScript
Stars
12.9k
Forks
4.6k
Avg merge
2d 3h
Merged PRs (30d)
83

Description

### Describe the feature

Add step that invokes a Lambda function before or after a stage.

Two variants:

1. a Lambda function built and deployed as part of the pipeline, and
2. an existing Lambda function deployed elsewhere.

### Use Case

While anything can be done with a `ShellStep`, the overhead of starting a CodeBuild project can be avoided by instead invoking a Lambda function.

An example is running an ECS task to apply database migrations or reconnecting another Lambda function to its SQS queue after passing in-situ testing.

### Proposed Solution

Add a new blueprint for a new `InvokeLambdaStep` following the modal of `ConfirmPermissionsBroadening`.

### Other Information

I'm existing capabilities would be able to build and deploy the Lambda function in the prior `Build` and `UpdatePipeline` stages.

### Acknowledgements

- [X] I may be able to implement this feature request
- [ ] This feature might incur a breaking change

### CDK version used

3.73.0

### Environment details (OS name and version, etc.)

macos/13.3 (aarch64) nodejs/18.15.0 typescript/5.0.3

Contributor guide

Open the contributing guide

Research direction

Start by reading the ConfirmPermissionsBroadening blueprint and the existing ShellStep pipeline behavior. Define how an InvokeLambdaStep supports Lambda functions built in earlier Build and UpdatePipeline stages as well as existing functions, and how invocation works before or after a stage. Done means both variants and the stated pipeline placement are supported.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, typescript
Domain
ci-cd, cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.