ehsteve/sdc_aws_sorting_lambda
This repository is to define the code and Docker Container to be used for the SWSOC file sorting Lambda function.
SWSOC File Sorting Lambda Function
| CodeBuild Status |
|---|
Description:
This repository is to define the code to be used for the SWSOC file sorting Lambda function. This function will be deployed as a zip file to Lambda, with the production lambda being the latest release and the latest code on the master being used for development and testing. The production lambda will move files into the appropriate buckets while the development lambda will only move files with the prefix dev_.
Testing Locally:
-
Open up the repo in locally in VSCode. It will detect the
.devcontainerand ask if you'd like to open it in a container. Agree and a container development environment will start up with all of the required tools. -
Test running by setting by changing the event and running the
lambda_function_test_script.pyfile.
Information on working with a CDK Project
The cdk.json file tells the CDK Toolkit how to execute your app.
This project is set up like a standard Python project. The initialization
process also creates a virtualenv within this project, stored under the .venv
directory. To create the virtualenv it assumes that there is a python3
(or python for Windows) executable in your path with access to the venv
package. If for any reason the automatic creation of the virtualenv fails,
you can create the virtualenv manually.
To manually create a virtualenv on MacOS and Linux:
$ python3 -m venv .venv
After the init process completes and the virtualenv is created, you can use the following
step to activate your virtualenv.
$ source .venv/bin/activate
If you are a Windows platform, you would activate the virtualenv like this:
% .venv\Scripts\activate.bat
Once the virtualenv is activated, you can install the required dependencies.
$ pip install -r requirements.txt
At this point you can now synthesize the CloudFormation template for this code.
$ cdk synth
To add additional dependencies, for example other CDK libraries, just add
them to your setup.py file and rerun the pip install -r requirements.txt
command.
Useful commands for CDK
cdk lslist all stacks in the appcdk synthemits the synthesized CloudFormation templatecdk deploydeploy this stack to your default AWS account/regioncdk diffcompare deployed stack with current statecdk docsopen CDK documentation
Testing Locally (Using own Test Data):
-
Build the lambda container image (from within the lambda_function folder) you'd like to test:
docker build -t sdc_aws_sorting_lambda:latest . -
Run the lambda container image you've built (After using your mfa script), this will start the lambda runtime environment:
docker run -p 9000:8080 -v sdc_aws_sorting_lambda/lambda_function/tests/test_data:/test_data sdc_aws_sorting_lambda:latest
-
From a
separateterminal, make a curl request to the running lambda function:curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d @lambda_function/tests/test_data/test_padre_event.json