eip 分配 ID 的 Terraform 输出

Rad*_*ad4 4 amazon-web-services terraform

我有一个简单的 terraform 代码来创建 eip。这工作正常。

resource "aws_eip" "envoy" {
  count = length(var.subnet_cidr_public)
  vpc   = true
    tags  = "${merge(map("Name","envoyadmin-${count.index}"),var.tags)}"
}

output "envoy_eip" {
  description = "Elastic ip address for Envoy nlb services"
  value       = aws_eip.envoy.*.allocation_id
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是 terraform 输出。尽管 eip 是在 AWS 帐户中创建的,allocation_ids 在 terraform 输出中显示为 null。这可能是什么问题以及如何解决它?

terraform output
envoy_eip = [
  null,
  null,
  null,
]
Run Code Online (Sandbox Code Playgroud)

Mar*_*cin 5

allocation_id实际上现在已经通过idgithub问题中的解释提供了。因此,您应该:

output "envoy_eip" {
  description = "Elastic ip address for Envoy nlb services"
  value       = aws_eip.envoy.*.id
}
Run Code Online (Sandbox Code Playgroud)

此外,这只是id,而不是您在描述中所写的“弹性 IP 地址”。对于公共 IP,您需要使用:

output "envoy_eip" {
  description = "Elastic ip address for Envoy nlb services"
  value       = aws_eip.envoy.*.public_ip
}
Run Code Online (Sandbox Code Playgroud)