aboutsummaryrefslogtreecommitdiffstats
path: root/terraform/lambda.tf
diff options
context:
space:
mode:
authorbulve-ad <78788030+bulve-ad@users.noreply.github.com>2024-08-16 10:55:08 +0100
committerGitHub <noreply@github.com>2024-08-16 10:55:08 +0100
commit34b489c7aca9aa0942693c3209762bfddb49c522 (patch)
tree210eb644d967d71d6e00fa653952335f1dcc2490 /terraform/lambda.tf
parent4c1b7dd8fd8516f7de57afd8a0e24001002135d0 (diff)
parent0c42e8f165e0f98a6c16252e841432922467ef94 (diff)
downloadde-project-bentley-34b489c7aca9aa0942693c3209762bfddb49c522.tar.gz
de-project-bentley-34b489c7aca9aa0942693c3209762bfddb49c522.zip
Merge pull request #45 from ajschofield/lambda-layers
add lambda layer
Diffstat (limited to 'terraform/lambda.tf')
-rw-r--r--terraform/lambda.tf35
1 files changed, 35 insertions, 0 deletions
diff --git a/terraform/lambda.tf b/terraform/lambda.tf
index 72d1306..658b8c8 100644
--- a/terraform/lambda.tf
+++ b/terraform/lambda.tf
@@ -81,3 +81,38 @@ resource "aws_lambda_function" "load_lambda" {
depends_on = [aws_s3_object.load_lambda_code]
}
+
+locals {
+ layer_dir = "${path.module}/../python"
+ requirements = "${path.module}/../requirements.txt"
+ layer_zip = "${path.module}/../layer.zip"
+}
+
+resource "null_resource" "prepare_layer" {
+ triggers = {
+ requirements_hash = filesha1(local.requirements)
+ }
+ provisioner "local-exec" {
+ command = <<EOT
+ mkdir -p ${local.layer_dir}/lib/python3.8/site-packages/
+ pip install -r ${local.requirements} -t ${local.layer_dir}/lib/python3.11/site-packages/
+ cd ${local.layer_dir} && zip -r ${local.layer_zip} .
+ EOT
+}
+ }
+
+resource "aws_s3_object" "layer_zip" {
+ bucket = aws_s3_bucket.lambda_code_bucket.bucket
+ key = "layer.zip"
+ source = local.layer_zip
+ depends_on = [null_resource.prepare_layer]
+}
+
+resource "aws_lambda_layer_version" "lambda_layer" {
+ layer_name = "lambda_layer"
+ compatible_runtimes = ["python3.11"]
+ s3_bucket = aws_s3_bucket.lambda_code_bucket.bucket
+ s3_key = aws_s3_object.layer_zip.key
+ skip_destroy = true
+ depends_on = [aws_s3_object.layer_zip]
+} \ No newline at end of file
git.ajschof.me — hosted by ajschofield — powered by cgit