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" ]
4
3
}
5
4
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 )
14
7
}
15
8
16
9
data archive_file default {
17
10
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
19
12
type = " zip"
13
+ }
20
14
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
+ }
22
21
}
23
22
24
23
resource aws_s3_bucket_object default {
25
24
bucket = var. bucket
26
25
source = data. archive_file . default . output_path
27
26
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
38
27
}
39
28
40
29
resource aws_lambda_layer_version default {
41
30
s3_bucket = var. bucket
42
31
s3_key = aws_s3_bucket_object. default . key
43
32
layer_name = " python-layer-${ random_id . default . b64_url } "
44
33
45
- source_code_hash = data. archive_file . default . output_base64sha256
46
-
47
34
compatible_runtimes = [
48
- " python${ data . external . default . result . version } "
35
+ " python${ data . external . python-version . result . version } "
49
36
]
50
37
}
0 commit comments