Skip to main content

AWS API Gateway V2 HTTP API quickstart

Quickstart example of using AWS API Gateway v2 HTTP API

This example lives in the pulumi/examples repository. Check out just this directory to use it:

Get started with this example
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examples
git -C pulumi-examples sparse-checkout set aws-py-apigatewayv2-http-api-quickcreate
cd pulumi-examples/aws-py-apigatewayv2-http-api-quickcreate

Set up a simple HTTP API using AWS API Gateway V2. The API executes a simple Lambda function found in /app/index.js.

Prerequisites#

  1. Install Pulumi
  2. Configure AWS credentials
  3. Install Python

Deploying the example#

Note: some values in this example will be different from run to run. These values are indicated with ***.

  1. Create a new stack:

    Terminal window
    pulumi stack init http-api
  2. Set the AWS region to deploy into:

    Terminal window
    pulumi config set aws:region us-east-2
  3. Install dependencies:

    Terminal window
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
  4. Run pulumi up to preview and deploy changes:

    Terminal window
    pulumi up
    Previewing update (http-api)
    ...
    Updating (http-api)
    Type Name Status
    + pulumi:pulumi:Stack aws-py-apigatewayv2-quickstart-http-api created
    + ├─ aws:iam:Role lambdaRole created
    + ├─ aws:lambda:Function lambdaFunction created
    + ├─ aws:iam:RolePolicyAttachment lambdaRoleAttachment created
    + ├─ aws:apigatewayv2:Api httpApiGateway created
    + └─ aws:lambda:Permission lambdapermission created
    Outputs:
    endpoint: "https://***.execute-api.us-east-2.amazonaws.com"
    Resources:
    + 6 created
    Duration: 22s
  5. View the endpoint URL and curl a few routes:

    Terminal window
    pulumi stack output
    Current stack outputs (1):
    OUTPUT VALUE
    endpoint https://***.execute-api.us-east-2.amazonaws.com
    Terminal window
    curl $(pulumi stack output endpoint)
    Hello, Pulumi!
  6. To view the runtime logs of the Lambda function, use the pulumi logs command. To get a log stream, use pulumi logs --follow.

  7. At this point, you have a running HTTP API. Feel free to modify your program, and run pulumi up to redeploy changes. The Pulumi CLI automatically detects what has changed and makes the minimal edits necessary to accomplish these changes. This could be altering the function used by the Lambda, or anything else you’d like!

Cleaning up#

  1. Run pulumi destroy to tear down all resources.

  2. To delete the stack itself, run pulumi stack rm. Note that this command deletes all deployment history from the Pulumi console.

Related

The infrastructure as code platform for any cloud.