This Lambda function is used to transfer documents uploaded to S3 to another location, through the Document Transfer Service. It uses EventBridge to trigger the Lambda function when a new document is uploaded to the S3 bucket.
The lambda function accepts the following environment variables:
| Name | Description | Default | Required |
|---|---|---|---|
CREDENTIALS_ARN |
The ARN of the secret containing service credentials. | n/a | yes |
TRANSFER_URL |
The URL of the Document Transfer Service. | yes | |
LOG_LEVEL |
The log level for the lambda function. | "info" |
no |
ONEDRIVE_FOLDER |
Name of the folder in OneDrive that documents will be transferred to. | nil |
no |
The secret containing the service credentials should be a JSON object with the following keys:
{
"id": "cosumer-id",
"token": "auth-token"
}The lambda function is managed using AWS' Serverless Application Model.
Before you begin, you will need to install the SAM CLI. Make sure you
are logged into your AWS account and have the appropriate AWS_PROFILE set.
To ease configuration, a sample.env file is provided with necessary
environment variables. Copy this is .env and fill in the necessary values. The
.env file is ignored by git, so it will not be committed to the repository.
Unless you have a shell extension that automatically loads the .env file,
you will need to source it by running source .env.
To deploy to staging, run the following:
sam deploy --config-file samconfig.yaml --config-env stagingFor production:
sam deploy --config-file samconfig.yaml --config-env proodDeployment configuration is managed in two places:
-
template.yaml: This is the SAM template that defines the lambda function, permissions, event trigger, and any other resources needed to execute the function. -
samconfig.yaml: This is the SAM CLI configuration file that contains the environment-specific configuration options for the deployment. This includes the bucket name(s), service URL, networking configuration, etc.Note: We use the YAML format for the configuration rather than the default TOML for consistency with our other configuration files.