list - 从列表中获取元素 Terraform

我有一个关于 Terraform 的小问题,但我无法在线找到解决方案。想象一下以下场景:

data "aws_vpc" "vpc_name" {
  id = var.vpc_id
}

data "aws_subnet_ids" "vpc_subnets" {
  vpc_id = data.aws_vpc.vpc_name.id
}

想象一下我创建了一个这样的 EC2 实例:

resource "aws_instance" "ec2_test" {
  ...
  ami                  = ...
  instance_type        = ...
  subnet_id            = element(tolist(data.aws_subnet_ids.vpc_subnets.ids), 1)
  ...

在子网中,我使用元素函数选择了一个元素并将子网 ID 列表转换为列表。

现在,我有两个问题:

  1. 是否可以在不转换为列表(tolist)的情况下选择第一个子网?我想知道为什么我可以做类似 data.aws_subnet_ids.vpc_subnets[1] 或类似的事情?

  2. 如何从子网列表中检索随机 ID?

问候,

最佳答案

需要tolist操作,因为aws_subnet_ids.ids是一个集合。您可以稍微清理一下并说 tolist(data.aws_subnet_ids.vpc_subnets.ids)[0]

要获得随机数,请使用 random provider .

https://stackoverflow.com/questions/66069677/

相关文章:

javascript - 使用路由器 "No overload matches this call"

flutter - 调用者没有执行指定操作的权限

c++ - 为什么 std::ranges::view_interface 使用 CRTP

swift - 如何使用 SwiftUI 中的扩展将 Hashable 协议(protocol)添加

java - 如果有 happens-before 保证,让 "this"在构造函数的最后一个语句中

python - 将 seq2seq NLP 模型转换为 ONNX 格式会对其性能产生负面影响吗?

javascript - React App - 我的警告窗口出现两次

c# - 如何使用 C# 连接到 Azure 存储表

flutter - 具有动态高度的动画容器 Flutter

c++ - 自动类型检测是否只查看一个语句