This is a super simple tool for creating/modifying multiple lambda functions.
It was built for the purpose of deploying our Alexa skills across multiple regions in the same account.
Just use pip:
$ pip install simple-aws-lambda-maker
Then create a salm.yml with something like:
---
function_defaults:
filepath: "{config_root}/lambda_function.py"runtime: "python2.7"role: "arn:aws:iam::1234567890:role/lambda_basic_execution"timeout: 8handler: "lambda_function.lambda_handler"functions:
prod:
- name: testregion: us-east-1description: "Test function"env:
ONE: "1"TWO: "2"tags:
three: "four"
- name: test2region: us-east-1description: "Test function 2"env:
ONE: "3"TWO: "4"tags:
three: "four"staging:
- name: test3region: us-east-1description: "Test function 2"env:
ONE: "5"TWO: "6"tags:
three: "four"Here we are creating three functions, called test, test2 and test3.
They are all put into us-east-1 and have different values for the ONE
and TWO environment variables.
All of them also have the options in the function_defaults block, which
includes a reference to a file relative to this file called ./lambda_function.py
For example:
importosdeflambda_handler(event, context):
return"{0} - {1}".format(os.environ["ONE"], os.environ["TWO"])We can then determine if anything will be created or changed by going into that directory and saying:
$ salm deploy staging --dry-run
And then to actually apply those changes:
$ salm deploy staging
And to do the prod group, do a salm deploy prod
- 0.3.0 - 3 March 2020
- Updated dependencies
- Formatted and linted code
- 0.2.0 - 23 January 2019
- Started using ruamel.yaml instead of PyYaml to load configuration
- 0.1.10 - 5 November 2018
- Update requests for CVE-2018-18074
- Pre 0.1.10
- No changelog kept