如何在执行Terraform apply前查看数据资源的渲染结果?
如何在执行Terraform apply前查看数据资源的渲染结果?
嗨,我完全懂你想提前确认IAM策略这类数据资源最终JSON内容的需求——毕竟在执行terraform apply前把配置核对清楚,能避免不少后续的麻烦。这里有几个实用的方法可以帮你实现:
方法一:用
terraform console交互式查看
这是最直接的方式,你可以通过Terraform的交互式控制台直接调取数据资源的属性。步骤很简单:- 先确保已经运行过
terraform init完成初始化 - 在终端输入
terraform console进入交互模式 - 输入
data.aws_iam_policy_document.my_policy.json,回车后就能看到完整渲染后的IAM策略JSON内容了
- 先确保已经运行过
方法二:通过
terraform plan的JSON输出过滤查看
默认的terraform plan输出不会展示数据资源的完整细节,但我们可以用-json参数把输出转为JSON格式,再用工具过滤出需要的内容:terraform plan -json | jq '.planned_values.root_module.resources[] | select(.address == "data.aws_iam_policy_document.my_policy")'如果你的环境没有安装
jq,也可以直接查看生成的JSON文本,找到对应数据资源的values字段,里面就包含了渲染后的json属性。方法三:添加输出值(Outputs)持久化查看
你可以在Terraform配置里新增一个output块,专门输出这个策略文档的JSON内容:output "rendered_my_policy" { value = data.aws_iam_policy_document.my_policy.json description = "渲染后的IAM策略文档JSON内容" }之后运行
terraform plan,就能在输出结果的末尾看到这个字段的内容了。这个方法的好处是每次执行plan都会自动展示,不用每次都手动输入命令查询。
这些方法都不需要执行terraform apply就能让你看到数据资源的最终渲染结果,你可以根据自己的使用习惯选择最合适的方式~
备注:内容来源于stack exchange,提问作者Arrow Root
相关产品推荐
相关产品推荐

