aboutsummaryrefslogtreecommitdiffstats
path: root/terraform/lambda.tf
diff options
context:
space:
mode:
authorAlex <git@ajschof.me>2024-08-16 14:32:53 +0100
committerGitHub <noreply@github.com>2024-08-16 14:32:53 +0100
commita9f05e599417745d8281b05eb8fd7afe02a8e1ae (patch)
treec280e0e6d652fe43aa3b13850dc8d9116f9ee4d2 /terraform/lambda.tf
parentcf3d366e730e88ceea194d5b3b1d1a3ddecdd944 (diff)
parent6425cd0b5bd9afe3f0fea8fdc37cfb7fe624d0e5 (diff)
downloadde-project-bentley-a9f05e599417745d8281b05eb8fd7afe02a8e1ae.tar.gz
de-project-bentley-a9f05e599417745d8281b05eb8fd7afe02a8e1ae.zip
Merge branch 'development' into ci-cd-branch
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