terraform - 调用特定的 for_each 输出

标签 terraform

我刚刚开始使用 for_each 循环,根据我的理解,for_each 与 count 不同,即以数字方式计算输出 aws_transfer_key.transfer_key[1] 与 for_each 输出 aws_transfer_key.transfer_key["value"] 的索引。

稍后如何调用 for_each 值的输出?

最佳答案

带有 count 参数集的 resourcedata block 在表达式中显示为列表,这就是为什么您可以使用以下方式访问其实例[0][1]

同样,带有 for_each 参数集的 resourcedata block 在表达式中显示为 map,因此您可以使用 ["foo"]["bar"] 等访问其实例。

在这两种情况下,集合都是符合资源类型架构的对象,因此您可以遵循 .attribute 语法来访问各个属性。

因此,首先获取资源类型和名称,aws_transfer_key.transfer_key,它是一个映射。然后["value"]从 map 访问您想要的实例。然后 .foo 访问“foo”属性。总而言之,这就是 aws_transfer_key.transfer_key["value"].foo

如果您想访问所有实例中的所有“foo”属性,您可以使用for expression将对象映射投影到字符串映射中。 :

{ for k, v in aws_transfer_key.transfer_key : k => v.foo }

关于terraform - 调用特定的 for_each 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58125226/

相关文章:

amazon-web-services - Terraform - 当模块的资源已经存在时,EntityAlreadyExists 错误 (409)

Terraform - 反转 map

amazon-web-services - 有多少 Amazon Connect 可以通过 Terraform、Ansible 或其他方法编写脚本?

通过 Terraform 使用 For_Each 循环创建 Azure VM

azure - 如何恢复 Terraform 状态文件

Azure 无法从 terraform 中的角色获取 UUID

amazon-web-services - Route 53 如何将多个公共(public)托管区域连接到一个域名?

azure - 在进行 Azure 应用程序注册时,Terraform 出现循环错误

azure - 如何强制变量值采用特定模式

azure - 如何在另一个部署中重用 terraform 输出值