AWS serverless demo application using SAM, API-gateway, Lambda and Dynamo DB
- Build both nodejs and java modules with minimal prerequisites (only Java is required)
- Gradle makes it easy to transparently download and start a local Dynamo DB
Run gradlew build
The tests start a local Dynamo instance that requires native libraries. These libraries are downloaded by the gradle build in build/test-libs.
The local Dynamo instance also requires (dummy) credentials. Either create a file in your user home dir ${user.home}/.aws/credentials (fake credentials suffice for local development):
[default]
aws_access_key_id="id"
aws_secret_access_key="key"
or set the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables.
- Create a docker network so that sam can connect to the dynamodb docker:
docker network create lambda-local
- Create a docker network for local DynamoDB:
docker run -d -v "./build":/dynamodb_local_db -p 8000:8000 --network lambda-local --name dynamodb cnadiminti/dynamodb-local
- Start local DynamoDB:
docker start dynamodb
- Start sam local:
sam local start-api --docker-network lambda-local
- Start the watch task ik a terminal (continuous build):
gradlew watch
- Navigate to http://127.0.0.1:3000/info