- Periodically check to see which records are in the 'submit' state
- Take these records & create SQS message
- Process numerous messages from the queue via another lambda
- Create required infrastructure (queue, etc)
- Just execute the tests
make test- Execute Tests & Coverage (simple report)
make test-cov-report- Execute the tests & produce HTML coverage report
make test-cov-htmlThis project makes use of AWS Chalice to eliminate a lot of the boilerplate for creating lambdas.
Since most of the AWS libries that are typically used require boto3, AND boto3 is included by default within a lambda's runtime AND we need a small package size to deploy, we need to perform some "post-processing" of the lambda zip package when deploying. (we manually remove the boto3 library from the zip).
We have to reduce the package size before deploy, and the only way to do that is to deploy via CloudFormation in a 3 step process.
make package-chalice # Package the Python Code & ALL libraries
make update-package # Remove Botocore & others (reduce size)
make package-cloudformation # Create the CloudFormation Package & Upload to S3
make deploy # Deploy to AWSOR, just run the chained commands:
make package ## Executes package-chalice, update-package & package-cloudformation
make deploy The following tools are used to manage python versions & virtual environments. Make sure these are installed.
- pyenv -- Used to Manage Python Versions
- pyenv-virtualenv -- Connects Pyenv & traditional virtualenvs
This only needs to be done once
pyenv virtualenv 3.9.2 <project-name>pyenv activate <project-name>Typical tasks would be:
- Install dependencies via pip
pyenv exec pip install <something>- Execute python scripts
pyenv exec python ./some-file.py

