Terraform main.tf如何获取相对路径 解决archive_file路径找不到错误
Terraform相对路径配置修正
错误原因
你当前main.tf位于project-1/terraform/dev/路径下,Terraform内置变量path.module的取值就是该目录的路径,你之前直接拼接lambda_function目录,得到的实际路径为project-1/terraform/dev/lambda_function/...,和你的实际目录结构不符,同时output_path参数错误套了file()函数,两个问题共同导致报错。
修正后的配置
data "archive_file" "run_functon" { type = "zip" # 从dev目录向上回退两级到project-1根目录,再定位lambda_function下的源文件 source_file = file("${path.module}/../../lambda_function/scripts/lambda_function.py") # output_path直接传路径字符串即可,无需file()函数,生成到根目录的lambda_layer下 output_path = "${path.module}/../../lambda_layer/layer.zip" }
补充说明
如果觉得多级../的写法可读性差,你也可以在项目根目录定义根路径变量,通过path.root统一管理项目内的路径引用,当前简单场景下上述修正配置即可直接满足需求。
内容的提问来源于stack exchange,提问作者Adi334
相关产品推荐
相关产品推荐

