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