首页 文章

terraform . %和 . #和<computed>含义

提问于
浏览
0

在创建资源并调用terraform计划时,我看到如下名称:

tags.%:                           "" => "1"
dns_servers.#:                    <computed>

我想知道 .%.# 是什么意思; "" => "1"tags.% 的意义是什么

此外, computed 的真正 Value 是什么?

1 回答

  • 1

    tags.%: 指的是资源的 tags 属性的部分数 .

    "" => "1" 表示在申请后申请 1 之前,这些部件的编号是从 undefined 开始的 . 在这个例子中,这可能意味着当前没有标签,如果你申请,将有1个标签 . 通常,计划中的 "foo" => "bar" 表示Terraform检测到该值当前为"foo",并且在应用此计划后,它将为"bar" .

    dns_servers.# 表示 dns_servers 属性有多个部分,此行引用由该唯一编号标识的特定部分 . 例如,如果您创建多个标签,则可能有多个标签 tag.1tag.2 等 . 此编号由提供商决定 .

    <computed> 表示在您实际应用之前无法知道该值 . 例如,您创建一个EIP和一个使用该EIP的EC2实例,Terraform会将EIP的allocation_id显示为 <COMPUTED> ,因为在创建它之前您无法知道(即,它是在创建EIP时从AWS返回的) . Terraform旨在汇聚一次运行(即,您无需多次运行 apply 以获得最终结果),并且此目标的权衡是在创建资源之前您不会在 terraform plan 中看到这些值 .

相关问题