terraform .% 和 .# 和 <computed> 意思
terraform .% and .# and <computed> meaning
创建资源和调用 terraform plan 时,我看到如下名称:
tags.%: "" => "1"
dns_servers.#: <computed>
我想知道 .% 和 .# 是什么意思;值 "" => "1" 对 标签意味着什么。%
此外,值 computed 真正代表什么?
tags.%:
指的是资源的 tags
属性的部分数。
"" => "1"
表示这些部分的数量从申请前的 undefined
到申请后的 1
。在此示例中,这可能意味着当前没有标签,如果您申请,将有 1 个标签。通常,计划中的 "foo" => "bar"
意味着 Terraform 检测到该值当前为 "foo" 并且在应用该计划后它将为 "bar".
dns_servers.#
表示 dns_servers
属性有多个部分,此行引用由该唯一编号标识的特定部分。比如你做几个tag,可以有多个tagtag.1
、tag.2
等,这个编号由提供者决定。
<computed>
表示实际申请后才能知道该值。例如,您创建一个 EIP 和一个使用该 EIP 的 EC2 实例,Terraform 会将 EIP 的 allocation_id 显示为 <COMPUTED>
,因为在创建之前您无法知道这一点(即它是从 AWS 返回的) EIP创建)。 Terraform 的目标是在一个 运行 中收敛(即你不需要多次 运行 apply
来获得最终结果),这个目标的权衡是你不会看到这些创建资源之前 terraform plan
中的值。
创建资源和调用 terraform plan 时,我看到如下名称:
tags.%: "" => "1"
dns_servers.#: <computed>
我想知道 .% 和 .# 是什么意思;值 "" => "1" 对 标签意味着什么。%
此外,值 computed 真正代表什么?
tags.%:
指的是资源的 tags
属性的部分数。
"" => "1"
表示这些部分的数量从申请前的 undefined
到申请后的 1
。在此示例中,这可能意味着当前没有标签,如果您申请,将有 1 个标签。通常,计划中的 "foo" => "bar"
意味着 Terraform 检测到该值当前为 "foo" 并且在应用该计划后它将为 "bar".
dns_servers.#
表示 dns_servers
属性有多个部分,此行引用由该唯一编号标识的特定部分。比如你做几个tag,可以有多个tagtag.1
、tag.2
等,这个编号由提供者决定。
<computed>
表示实际申请后才能知道该值。例如,您创建一个 EIP 和一个使用该 EIP 的 EC2 实例,Terraform 会将 EIP 的 allocation_id 显示为 <COMPUTED>
,因为在创建之前您无法知道这一点(即它是从 AWS 返回的) EIP创建)。 Terraform 的目标是在一个 运行 中收敛(即你不需要多次 运行 apply
来获得最终结果),这个目标的权衡是你不会看到这些创建资源之前 terraform plan
中的值。