axul-contact
This is a sample template for axul-contact - Below is a brief explanation of what we have generated for you:
.
├── Makefile <-- Make to automate build
├── README.md <-- This instructions file
├── hello-world <-- Source code for a lambda function
│ ├── main.go <-- Lambda function code
│ └── main_test.go <-- Unit tests
└── template.yaml
Requirements
Setup process
Installing dependencies & building the target
In this example we use the built-in sam build
to automatically download all the dependencies and package our build target.
Read more about SAM Build here
The sam build
command is wrapped inside of the Makefile
. To execute this simply run
make
Local development
Invoking function locally through local API Gateway
sam local start-api
If the previous command ran successfully you should now be able to hit the following local endpoint to invoke your function http://localhost:3000/hello
SAM CLI is used to emulate both Lambda and API Gateway locally and uses our template.yaml
to understand how to bootstrap this environment (runtime, where the source code is, etc.) - The following excerpt is what the CLI will read in order to initialize an API and its routes:
...
Events:
HelloWorld:
Type: Api
Properties:
Path: /hello
Method: get
Packaging and deployment
AWS Lambda Golang runtime requires a flat folder with the executable generated on build step. SAM will use CodeUri
property to know where to look up for the application:
...
FirstFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello_world/
...
To deploy your application for the first time, run the following in your shell:
sam deploy --guided