initial commit
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* # LambdaZipBuilder
|
||||
*
|
||||
* Download pip packages and create ./lambda_layer.zip
|
||||
* Optionally upload archive to s3 bucket
|
||||
*
|
||||
*/
|
||||
resource "null_resource" "pip_download" {
|
||||
provisioner "local-exec" {
|
||||
interpreter = ["/bin/bash", "-c"]
|
||||
command = "${var.pip_path} install --only-binary=all --target /tmp/LambdaZipBuilder/python ${var.pip_packages}"
|
||||
}
|
||||
triggers = {
|
||||
date = timestamp()
|
||||
}
|
||||
}
|
||||
|
||||
resource "null_resource" "remove_temp_downloads" {
|
||||
depends_on = [data.archive_file.layer1]
|
||||
provisioner "local-exec" {
|
||||
interpreter = ["/bin/bash", "-c"]
|
||||
command = "rm -rf /tmp/LambdaZipBuilder || true"
|
||||
}
|
||||
triggers = {
|
||||
cleanup = data.archive_file.layer1.output_base64sha256
|
||||
}
|
||||
}
|
||||
|
||||
data "archive_file" "layer1" {
|
||||
depends_on = [null_resource.pip_download]
|
||||
type = "zip"
|
||||
source_dir = "/tmp/LambdaZipBuilder"
|
||||
output_path = "lambda_layer.zip"
|
||||
}
|
||||
|
||||
resource "aws_s3_object" "object" {
|
||||
count = var.upload_archive_to_s3 ? 1 : 0
|
||||
bucket = var.s3_bucket_name
|
||||
key = "LambdaZipBuilder-${sha256(var.pip_packages)}.zip"
|
||||
source = data.archive_file.layer1.output_path
|
||||
checksum_algorithm = "SHA256"
|
||||
source_hash = data.archive_file.layer1.output_base64sha256
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user