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#
- Install Pulumi.
- Install Node.js.
- Configure your AWS credentials.
Deploying the App#
-
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 Node dependencies and run Pulumi:
Terminal window npm installpulumi 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' }} -
When you’re ready, destroy your stack and remove it:
Terminal window pulumi destroy --yespulumi stack rm --yes