如何在Terraform中引用另一个tf文件内定义的数据源或模块
Terraform 跨文件引用数据源问题解答
Terraform 完全支持同工作目录下不同 .tf 文件之间的资源、数据源引用,执行时会自动加载当前目录所有 .tf 文件并解析依赖,不需要额外导入操作。
具体实现方法
直接将 main.tf 中 aws_iam_role 资源的 assume_role_policy 占位符替换为 data.aws_iam_policy_document.my_policy.json 即可。aws_iam_policy_document 数据源的 .json 属性会自动输出符合AWS要求的策略JSON字符串,正好匹配 assume_role_policy 参数的格式要求。
修改后的代码示例:
resource "aws_iam_role" "my_role" { name = "my_role" assume_role_policy = data.aws_iam_policy_document.my_policy.json }
注意:只有当你把
aws_iam_policy_document数据源定义在独立的Terraform模块中时,才需要先声明模块调用再取值,同工作目录下的不同.tf文件直接按上述格式引用即可。
内容的提问来源于stack exchange,提问作者Vzzarr
相关产品推荐
相关产品推荐

