ROLE_ARN=$(ROLE) ZIP_FILE=deployment-package.zip REGION=eu-west-1 # run under this project structure: https://github.com/ldipotetjob/AWS/blob/main/serverless/lambda/project/structure.md # keep in mind your security tokens export in your terminal: # export AWS_ACCESS_KEY_ID=${token_access_key} # export AWS_SECRET_ACCESS_KEY=${token_secret_key} # @see: https://makefiletutorial.com/ # example of use: make all HANDLER=my_lambda_function ROLE=execution_role_of_the_lambda_function FUNCTION_NAME=$(HANDLER) all: help build deploy clean help: echo "deploying " $(HANDLER) build: mkdir -p deployment-package cp -r src/$(HANDLER)/. src/standard_utils.py deployment-package/ if [ -f requirements.txt ]; then pip install -r requirements.txt --target deployment-package/; fi cd deployment-package && zip -r9 ../$(ZIP_FILE) . deploy: echo "Deploying lambda function:" $(HANDLER) aws lambda update-function-code --function-name $(FUNCTION_NAME) --zip-file fileb://$(ZIP_FILE) --region $(REGION) clean: rm -rf deployment-package $(ZIP_FILE)