This repo contains all aws lambda functions, plus a commons library.
/common
includes common libraries that include code that is shared between lambdas
/common/help-on-spot-models
- REST models + DB access
/lambdas
includes the lambda function code. General idea: one lambda function for every API endpoint
npm run test
- in any lambda folder/package.json
)docker run --name "postgis" -p 5432:5432 -d -t kartoza/postgis:10.0-2.4
Available .env variables:
DATABASE_HOST=
DATABASE_USERNAME=
DATABASE_PASSWORD=
DATABASE_NAME=
AWS_ACCESS_KEY=
AWS_SECRET_KEY=
AWS_REGION=
GEOSERVICE_LAMBDA_NAME=
aws configure
.lambda-envs-dev.txt
and .lambda-envs-prod.txt
in project root. Places envs needed for lambdas there (comma separated i.e VAR1=value,VAR2=value2,...) ./deploy-lambda.sh
in project rootall
to deploy every lambdaNote that the deployment of common layer is included inside deploy-lambda.sh
, so no need to execute deploy-layers.sh
seperately
create a new folder in /lambdas
, name it according to the served endpoint
setup a typescript project, make sure the tsconfig and jest-config have a reference to the commons project you want to include
add folder name to deploy-lambda.sh
script's lambda array (Line 5)
point API gateway's endpoint 'Integration Request' to new lambda (make sure to use stage variable in lambda name so that different stages can point to different lambdas)
assign correct input/output models or create them if they don't exist yet
if changes have been made to the API, export OpenAPI docs and commit them to Helfer-Portal/helponspot-api-gateway
repo
create extension postgis;
for enabling the extension