Terraform的NSX-T提供程序未定位第0层路由器

Terraform的NSX-T提供程序未定位第0层路由器,terraform,Terraform,Terraform的NSX-T提供商遇到了一个奇怪的问题。我正在引用我的第0层路由器作为数据源,但我不能在我的资源中使用它 第0层路由器数据源: data "nsxt_logical_tier0_router" "tier0_router" { id = "c8a3e87c-ec49-4586-ad2e-ada799e0fd34" } 逻辑路由器资源: # Router downlink resource "nsxt_logical_router_downlink_port" "downl

Terraform的NSX-T提供商遇到了一个奇怪的问题。我正在引用我的第0层路由器作为数据源,但我不能在我的资源中使用它

第0层路由器数据源:

data "nsxt_logical_tier0_router" "tier0_router" {
  id = "c8a3e87c-ec49-4586-ad2e-ada799e0fd34"
}
逻辑路由器资源:

# Router downlink
resource "nsxt_logical_router_downlink_port" "downlink_port" {
  description                   = "DP1 provisioned by Terraform"
  display_name                  = "vendor_bastion"
  logical_router_id             = nsxt_logical_tier0_router.tier0_router.id
  linked_logical_switch_port_id = nsxt_logical_port.logical_port1.id
  ip_address                    = "10.30.3.252/24"
}
它在“nsxt\u logical\u tier0\u router.tier0\u router.id”行上出现错误,显示:

Error: Reference to undeclared resource
on tf-nsxt.tf line 46, in resource "nsxt_logical_router_downlink_port" "downlink_port":
46:   logical_router_id             = nsxt_logical_tier0_router.tier0_router.id
A managed resource "nsxt_logical_tier0_router" "tier0_router" has not been
declared in the root module.

奇怪的是,如果我把这个ID放在第46行,它就可以正常工作。以前有人见过吗?

根据提供商参考():

逻辑路由器\下行链路\端口:此资源提供了一种在逻辑路由器上定义下行链路端口的方法,以将逻辑第1层路由器连接到逻辑交换机。其结果是为在逻辑交换机上运行的虚拟机提供默认网关


如果您想将tier0与tier1共同连接,您应该使用tier0上的
nsxt\u logical\u router\u link\u port\u
在本页上:

我发现了这个问题,忘了回来发布。解决方案是,在引用数据时,需要在引用前面添加“data.”。因此,参考路由器的正确方法如下:

# Router downlink
resource "nsxt_logical_router_downlink_port" "downlink_port" {
  description                   = "DP1 provisioned by Terraform"
  display_name                  = "vendor_bastion"
  logical_router_id             = data.nsxt_logical_tier0_router.tier0_router.id
  linked_logical_switch_port_id = nsxt_logical_port.logical_port1.id
  ip_address                    = "10.30.3.252/24"
}