Terraform中archive_file打包两个Python文件到Lambda压缩包的正确写法
你之前使用的source_file参数仅支持单个文件打包,要打包多个文件并保留common/utils.py的目录结构保证导入语句正常生效,可以使用以下两种配置方式:
方式1:精准指定需打包的文件(推荐,避免冗余内容)
这种方式只会打包你指定的两个文件,严格控制压缩包内容:
data "archive_file" "get_incoming_lambda_zip" { type = "zip" output_file_mode = "0666" output_path = "${path.module}/bin/lbd_get_incoming.zip" source = { # 入口文件放在压缩包根目录 "lbd_get_incoming.py" = "${path.module}/src/lbd_get_incoming.py" # 保留common目录层级存放工具文件 "common/utils.py" = "${path.module}/src/common/utils.py" } }
方式2:指定源码目录打包
如果${path.module}/src目录下只有你需要的Lambda运行相关文件,没有其他冗余内容,可以直接指定源码根目录打包,会自动保留目录结构:
data "archive_file" "get_incoming_lambda_zip" { type = "zip" source_dir = "${path.module}/src" output_file_mode = "0666" output_path = "${path.module}/bin/lbd_get_incoming.zip" # 可按需配置排除规则,跳过不需要的文件 excludes = ["**/__pycache__", "**/*.pyc"] }
内容的提问来源于stack exchange,提问作者x89
相关产品推荐
相关产品推荐

