AWS Stack for processing HLS data.
For more detailed data flow diagrams and architecture see architecture.
For more details about all of the HLS project's components see hls-project.
- Python>=3.9
- tox
- aws-cli
- jq
- An IAM role with sufficient permissions for creating, destroying, and modifying the relevant stack resources.
Environment variables are set in environment.sh. Copy environment.sh.sample
to environment.sh and update the settings prior to running any commands. The
following variables can be overridden from the calling shell's environment:
export HLS_STACKNAME=<Name of your stack>
export HLS_LAADS_TOKEN=<Token used for accessing the Laads Data>
export HLS_SENTINEL_OUTPUT_BUCKET_ROLE_ARN=<GCC Role for accessing output bucket>
Display generated cloud formation template that will be used to deploy.
source environment.sh && tox -e dev -r -- synth
Display a diff of the current deployment and any changes created.
source environment.sh && tox -e dev -r -- diff
The repository is configured to create automatic deployments to the
hls-mcp-development-viirs stack when PRs are merged into the dev branch. This
deployment uses
Github Actions Environments
to manage the environment configuration rather than the environment.sh.
Deployments to MCP have restrictions over creating VPCs and the types of AMIs which can be utilized. To deploy to MCP you will require the following environment settings:
export GCC=true
export AWS_DEFAULT_REGION=us-west-2
export HLS_GCC_ACCOUNT=<The MCP account id>
export HLS_GCC_VPCID=<The vpc id provided by MCP administrators>
export HLS_GCC_BOUNDARY_ARN=<The boundary policy arn>
For active stack development run:
source environment.sh && tox -e dev -r -- version
This creates a local virtualenv in the directory devenv. To use it for development:
source devenv/bin/activate
To run unit test for all included Lambda functions
tox -r
