Terraform archive_file资源已弃用 如何改用data source打包Lambda
警告触发原因
archive_file作为资源(resource)的用法已被Archive Provider官方弃用,官方要求统一使用只读数据源(data source)的方式声明打包逻辑,才会弹出对应警告。
具体修改步骤
- 将原有
resource "archive_file" "archive_csv_validate"的声明块,直接替换为data "archive_file" "archive_csv_validate",块内部的打包配置参数(type/source_dir/output_path)无需任何调整 - 调整Lambda资源中对压缩包属性的引用路径,在原有资源类型前添加
data.前缀,匹配数据源的引用规则 - 首次执行
terraform plan时会提示将旧的archive_file资源从状态文件中移除,属于正常变更,不会触发Lambda重建,也不会影响打包逻辑
修改后完整配置代码
data "archive_file" "archive_csv_validate" { type = "zip" source_dir = "lambda/csv-validate" output_path = "artifacts/csv-validate.zip" } resource "aws_lambda_function" "lambda_csv_validate_function" { function_name = "csv-validate" filename = data.archive_file.archive_csv_validate.output_path source_code_hash = data.archive_file.archive_csv_validate.output_base64sha256 handler = "main.main" role = aws_iam_role.lambda_iam_role.arn runtime = "python3.9" timeout = 900 }
补充说明:作为数据源的
archive_file和原资源模式的导出属性完全一致,依然可以正常获取压缩包输出路径、base64编码的SHA256哈希值,完全适配Lambda部署的源码校验需求。
内容的提问来源于stack exchange,提问作者Chris Cynarski
相关产品推荐
相关产品推荐

