Skip to content

Commit 9c42da8

Browse files
committed
1 parent 94de1bf commit 9c42da8

File tree

2 files changed

+18
-26
lines changed

2 files changed

+18
-26
lines changed

main.tf

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,37 @@
1-
locals {
2-
clean = "rm -rf ${path.module}/build/libs"
3-
build = "pip install --upgrade ${join(" ", var.libraries)} --target ${path.module}/build/libs/python/lib/python${data.external.default.result.version}/site-packages/."
1+
data external python-version {
2+
program = ["bash", "${path.module}/python_version.sh"]
43
}
54

6-
resource null_resource default {
7-
triggers = {
8-
command = local.build
9-
}
10-
11-
provisioner local-exec {
12-
command = "${local.clean} && ${local.build}"
13-
}
5+
data external pip-install {
6+
program = concat(["bash", "${path.module}/pip_install.sh", data.external.python-version.result.version], var.libraries)
147
}
158

169
data archive_file default {
1710
output_path = "${path.module}/build/aws-lambda-python-layer.zip"
18-
source_dir = "${path.module}/build/libs"
11+
source_dir = data.external.pip-install.result.path
1912
type = "zip"
13+
}
2014

21-
depends_on = [null_resource.default]
15+
resource random_id default {
16+
byte_length = 8
17+
18+
keepers = {
19+
source_code_hash = data.archive_file.default.output_md5
20+
}
2221
}
2322

2423
resource aws_s3_bucket_object default {
2524
bucket = var.bucket
2625
source = data.archive_file.default.output_path
2726
key = "python-layer-${random_id.default.b64_url}.zip"
28-
29-
etag = data.archive_file.default.output_base64sha256
30-
}
31-
32-
data external default {
33-
program = ["bash", "${path.module}/python_version.sh"]
34-
}
35-
36-
resource random_id default {
37-
byte_length = 8
3827
}
3928

4029
resource aws_lambda_layer_version default {
4130
s3_bucket = var.bucket
4231
s3_key = aws_s3_bucket_object.default.key
4332
layer_name = "python-layer-${random_id.default.b64_url}"
4433

45-
source_code_hash = data.archive_file.default.output_base64sha256
46-
4734
compatible_runtimes = [
48-
"python${data.external.default.result.version}"
35+
"python${data.external.python-version.result.version}"
4936
]
5037
}

pip_install.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env bash
2+
DIR="$(dirname "${BASH_SOURCE[0]}")/build/libs/python/lib/python$1/site-packages"
3+
shift
4+
pip install --quiet --disable-pip-version-check "$@" --target "$DIR"
5+
jq -n "{ path: \"$DIR\" }"

0 commit comments

Comments
 (0)