API Gateway V1 to EventBridge
A minimal AWS TypeScript Pulumi program
This example lives in the pulumi/examples repository. Check out just this directory to use it:
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examplesgit -C pulumi-examples sparse-checkout set aws-ts-apigateway-eventbridgecd pulumi-examples/aws-ts-apigateway-eventbridgeThis example demonstrates an API Gateway V1 integration with EventBridge and Lambda that also validates request bodies (using an API Gateway model) and returns a custom HTTP response.
Prerequisites#
Deploying the example#
-
Clone this repo, change to this directory, then create a new stack for the project:
Terminal window pulumi stack init -
Specify an AWS region to deploy into:
Terminal window pulumi config set aws:region us-west-2 -
Install dependencies:
Terminal window npm install -
Deploy the stack:
Terminal window pulumi up -
In a few moments, the API Gateway instance service will be up and running and its public URL emitted as a Pulumi stack output.
Terminal window ...Outputs:url: "https://andchh8hg8.execute-api.us-west-2.amazonaws.com/dev" -
Verify the deployment with
curl:With invalid POST data:
Terminal window curl --data '{"some-invalid-property-name": "Chris"}' --header "Content-Type: application/json" "$(pulumi stack output url)/uploads"HTTP/2 400{"message": "Invalid request body"}With valid POST data:
Terminal window curl --data '{"name": "Chris"}' --header "Content-Type: application/json" "$(pulumi stack output url)/uploads"HTTP/2 201{"accepted":true} -
Verify the Lambda was invoked with
pulumi logs:Terminal window pulumi logs --followCollecting logs for stack dev since 2022-01-06T16:18:48.000-08:00....{source: 'my-event-source',detail: { 'name': 'Chris' }}
Cleaning up#
When you’re ready, destroy your stack and remove it:
pulumi destroypulumi stack rm