如何访问连接块中计数google_compute_instance的 NAT IP?



我正在尝试使用count = number创建多个实例。在此期间,我需要访问已创建实例的 IP 地址,但我无法循环访问属性。我的Terraform版本是0.12.26。

我已经尝试了几种方法,但什么都没有。一切正常,直到我尝试通过count.index访问创建的实例数量。这是代码:

resource "google_compute_instance" "test" {
count        = 2
name         = "test-${count.index}"

# irrelevant stuff
connection {
host        = google_compute_instance.test.*.network_interface.0.access_config.0.nat_ip[count.index]

# irrelevant stuff

我也尝试了从这里开始的建议,但没有运气: 如何从另一个资源中的计数资源访问属性?

根据我尝试过的那些帖子:

host = google_compute_instance.test[count.index].network_interface.0.access_config.0.nat_ip
host = element(google_compute_instance.test.*.network_interface.0.access_config.0.nat_ip, count.index)

每次我得到:

Error: Cycle: google_compute_instance.test[1], google_compute_instance.test[0]

如何访问连接块中计数google_compute_instance的 NAT IP?

由于您有一个针对单个资源的自引用示例,因此这应该适用于计数的资源:

resource "google_compute_instance" "test" {
count        = 2
name         = "test-${count.index}"

# irrelevant stuff
connection {
host        = self.network_interface.0.access_config.0.nat_ip

# irrelevant stuff

self对象

connection块中的表达式不能按名称引用其父资源。相反,他们可以使用特殊的self对象。

self对象表示连接的父资源,并具有该资源的所有属性。例如,使用self.public_ip引用aws_instancepublic_ip属性。

预配程序连接设置文档中的 self 对象。

最新更新