Try AWS Native preview for resources not in the classic version.
Serverless REST API
Try AWS Native preview for resources not in the classic version.
A simple REST API that counts the number of times a route has been hit. For a detailed walkthrough of this example, see the article Create a Serverless REST API.
Deploying and running the program
Note: some values in this example will be different from run to run. These values are indicated
with ***.
Create a new stack:
$ pulumi stack init count-api-testingSet the AWS region:
$ pulumi config set aws:region us-east-2Restore NPM modules via
npm installoryarn install.Run
pulumi upto preview and deploy changes:$ pulumi up Previewing update of stack 'count-api-testing' ... Updating (count-api-testing): Type Name Status + pulumi:pulumi:Stack aws-ts-apigateway-count-api-testing created + ├─ aws:apigateway:x:API hello-world created + │ ├─ aws:iam:Role hello-world4fcc7b60 created + │ ├─ aws:iam:RolePolicyAttachment hello-world4fcc7b60-32be53a2 created + │ ├─ aws:lambda:Function hello-world4fcc7b60 created + │ ├─ aws:apigateway:RestApi hello-world created + │ ├─ aws:apigateway:Deployment hello-world created + │ ├─ aws:lambda:Permission hello-world-a552609d created + │ └─ aws:apigateway:Stage hello-world created + └─ aws:dynamodb:Table counterTable created Outputs: endpoint: "https://***execute-api.us-east-2.amazonaws.com/stage/" Resources: + 10 created Duration: 24sView the endpoint URL and curl a few routes:
$ pulumi stack output Current stack outputs (1): OUTPUT VALUE endpoint https://***.us-east-2.amazonaws.com/stage/ $ curl $(pulumi stack output endpoint)/hello {"route":"hello","count":1} $ curl $(pulumi stack output endpoint)/hello {"route":"hello","count":2} $ curl $(pulumi stack output endpoint)/woohoo {"route":"woohoo","count":1}To view the runtime logs of the Lambda function, use the
pulumi logscommand. To get a log stream, usepulumi logs --follow.
Clean up
Run
pulumi destroyto tear down all resources.To delete the stack itself, run
pulumi stack rm. Note that this command deletes all deployment history from the Pulumi console.
Try AWS Native preview for resources not in the classic version.