aws logo
AWS Classic v5.28.0, Jan 23 23

API Gateway V1 to EventBridge | TypeScript

View Code

Deploy with Pulumi

This 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

  1. Install Pulumi.
  2. Install Node.js.
  3. Configure your AWS credentials.

Deploying the App

  1. Clone this repo, change to this directory, then create a new stack for the project:

    pulumi stack init
    
  2. Specify an AWS region to deploy into:

    pulumi config set aws:region us-west-2
    
  3. Install Node dependencies and run Pulumi:

    npm install
    pulumi up
    
  4. In a few moments, the API Gateway instance service will be up and running and its public URL emitted as a Pulumi stack output.

    ...
    Outputs:
        url: "https://andchh8hg8.execute-api.us-west-2.amazonaws.com/dev"
    
  5. Verify the deployment with curl:

    With invalid POST data:

    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:

    curl --data '{"name": "Chris"}' --header "Content-Type: application/json" "$(pulumi stack output url)/uploads"
    
    HTTP/2 201
    {"accepted":true}
    
  6. Verify the Lambda was invoked with pulumi logs:

    pulumi logs --follow
    
    Collecting logs for stack dev since 2022-01-06T16:18:48.000-08:00.
    ...
    
    {
        source: 'my-event-source',
        detail: { 'name': 'Chris' }
    }
    
  7. When you’re ready, destroy your stack and remove it:

    pulumi destroy --yes
    pulumi stack rm --yes