Skip to content

Commit 7c6de7c

Browse files
author
Josh Rosenberg
committed
add option to upload dependency layer to S3 first
1 parent 5c8e766 commit 7c6de7c

File tree

3 files changed

+24
-3
lines changed

3 files changed

+24
-3
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ Stored as secrets or env vars, doesn't matter. But also please don't put your AW
2929
- Partial ARN - `123456789012:function:my-function`
3030
- `requirements_txt`
3131
The name/path for the `requirements.txt` file. Defaults to `requirements.txt`.
32+
- `use_s3`
33+
Whether to upload the dependency layer zip to S3 (required if the zip exceeds 50MB) or not. (If not, it's uploaded directly to Lambda.) Defaults to `false`.
34+
- `s3_bucket_name`
35+
The S3 bucket name used if you are uploading the dependency layer to S3.
3236

3337

3438
### Example workflow

action.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@ inputs:
1212
lambda_function_name:
1313
description: The Lambda function name. Check the AWS docs/readme for examples.
1414
required: true
15+
use_s3:
16+
description: Whether to use S3 (true) or not (false) for the dependencies layer upload.
17+
required: false
18+
default: 'false'
19+
s3_bucket_name:
20+
description: The S3 bucket name for the dependencies layer upload.
21+
required: false
22+
default: no-bucket-name-here
1523
runs:
1624
using: 'docker'
1725
image: 'Dockerfile'

entrypoint.sh

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,18 @@ install_zip_dependencies(){
99
}
1010

1111
publish_dependencies_as_layer(){
12-
echo "Publishing dependencies as a layer..."
13-
local result=$(aws lambda publish-layer-version --layer-name "${INPUT_LAMBDA_LAYER_ARN}" --zip-file fileb://dependencies.zip)
14-
LAYER_VERSION=$(jq '.Version' <<< "$result")
12+
if [ "$INPUT_USE_S3" = true ]
13+
then
14+
echo "Uploading dependencies to S3..."
15+
aws s3 cp dependencies.zip s3://"${INPUT_S3_BUCKET_NAME}"/dependencies.zip
16+
echo "Publishing dependencies from S3 as a layer..."
17+
local result=$(aws lambda publish-layer-version --layer-name "${INPUT_LAMBDA_LAYER_ARN}" --content S3Bucket="${INPUT_S3_BUCKET_NAME}",S3Key=dependencies.zip)
18+
LAYER_VERSION=$(jq '.Version' <<< "$result")
19+
else
20+
echo "Publishing dependencies as a layer..."
21+
local result=$(aws lambda publish-layer-version --layer-name "${INPUT_LAMBDA_LAYER_ARN}" --zip-file fileb://dependencies.zip)
22+
LAYER_VERSION=$(jq '.Version' <<< "$result")
23+
fi
1524
rm -rf python
1625
rm dependencies.zip
1726
}

0 commit comments

Comments
 (0)