我正在尝试使用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_instance
的public_ip
属性。
预配程序连接设置文档中的 self 对象。