After cloning this repo, run these commands from the working directory:
Build the handler:
For developers on Linux and macOS:
make build
For developers on Windows:
Get the build-lambda-zip tool:
set GO111MODULE=on
go.exe get -u github.com/aws/aws-lambda-go/cmd/build-lambda-zip
Use the tool from your GOPATH:
set GOOS=linux
set GOARCH=amd64
set CGO_ENABLED=0
go build -o handler\handler handler\handler.go
%USERPROFILE%\Go\bin\build-lambda-zip.exe -o handler\handler.zip handler\handler
Create a new Pulumi stack, which is an isolated deployment target for this example:
pulumi stack init
Set the required configuration variables for this program:
$ pulumi config set aws:region us-west-2
Execute the Pulumi program to create our lambda:
$ pulumi up
Previewing update (dev):
Type Name Plan
+ pulumi:pulumi:Stack go-lambda-dev create
+ ├─ aws:apigateway:RestApi UpperCaseGateway create
+ ├─ aws:iam:Role task-exec-role create
+ ├─ aws:apigateway:Resource UpperAPI create
+ ├─ aws:iam:RolePolicy lambda-log-policy create
+ ├─ aws:apigateway:Method AnyMethod create
+ ├─ aws:lambda:Function basicLambda create
+ ├─ aws:lambda:Permission APIPermission create
+ ├─ aws:apigateway:Integration LambdaIntegration create
+ └─ aws:apigateway:Deployment APIDeployment create
Resources:
+ 10 to create
Do you want to perform this update? yes
Updating (dev):
Type Name Status
+ pulumi:pulumi:Stack go-lambda-dev created
+ ├─ aws:apigateway:RestApi UpperCaseGateway created
+ ├─ aws:iam:Role task-exec-role created
+ ├─ aws:apigateway:Resource UpperAPI created
+ ├─ aws:iam:RolePolicy lambda-log-policy created
+ ├─ aws:apigateway:Method AnyMethod created
+ ├─ aws:lambda:Function basicLambda created
+ ├─ aws:apigateway:Integration LambdaIntegration created
+ ├─ aws:lambda:Permission APIPermission created
+ └─ aws:apigateway:Deployment APIDeployment created
Outputs:
invocation URL: "https://<gateway-id>.execute-api.us-west-2.amazonaws.com/prod/{message}"
Resources:
+ 10 created
Duration: 29s