Terraform Archive Provider
验证:未记录
- 适用版本
- 未记录
- 验证范围
- 尚未登记验证记录。
本文缩写(英文全称与中文含义)
| 缩写 | 英文全称/名称 | 中文含义 |
|---|---|---|
| CI | Continuous Integration | 持续集成 |
用途#
将文件、目录或字符串打包为归档文件,常用于小型 Lambda 部署包。
示例#
将一段 Python 代码打包为 ZIP,无需额外源文件。
terraform {
required_providers {
archive = {
source = "hashicorp/archive"
version = "~> 2.0"
}
}
}
data "archive_file" "lambda" {
type = "zip"
output_path = "${path.module}/lambda.zip"
source_content_filename = "handler.py"
source_content = <<-PYTHON
def handler(event, context):
return {"statusCode": 200, "body": "ok"}
PYTHON
}
output "package_hash" {
value = data.archive_file.lambda.output_base64sha256
}对接 aws_lambda_function 时,将 filename 设置为 data.archive_file.lambda.output_path,source_code_hash 设置为上面的哈希值。
注意事项#
source_file、source_dir、source、source_content配合文件名这几种输入方式只能选一种。- 输入已知时,data source 通常在 plan 阶段生成文件;分开运行 plan/apply 的 CI 必须保留并传递 ZIP 产物。
- 打包目录时,将输出放在源目录之外,避免将归档本身再次打包。
- 归档不会安装依赖或编译代码;大型项目应在 CI 中构建,再让 Terraform 部署产物。