在Terraform中,如何在包含的模块中引用在根模块中创建的组件

时间:2020-08-05 13:53:53

标签: terraform terraform-provider-aws terraform-provider-azure

以下示例给出了有关该问题的想法。

我在Terraform脚本的根模块中创建了一个资源组和EventHubNS

我还有另一个模块,称为processingmodule,具有功能,EventHub和其他一些聚合组件。

因此,根模块如下所示- 创建Azure资源组 创建EventHubNS 创建processingModule

如果在根模块中创建了事件中心,则将使用下面的资源块来创建eventhub资源

if (viewHolder instanceof SimpleTextViewHolder ) {
    ((SimpleTextViewHolder) viewHolder).simpleTextView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //change text according to your needs
        }
    });
}

如果我编写模块,则无法按以下所示引用namespace_name和resource_group_name

resource "azurerm_eventhub" "eventhub" {
  name                = "${var.eventhubname}-eh"
  namespace_name      = azurerm_eventhub_namespace.eventhubns.name
  resource_group_name = azurerm_resource_group.RG.name
  partition_count     = var.eventhub_partitioncount
  message_retention   = 5
 
}

相反,namespace_name应该通过变量引用。

namespace_name      = azurerm_eventhub_namespace.eventhubns.name
resource_group_name = azurerm_resource_group.RG.name

所以问题是-无论如何,是否要引用处理组件模块在根模块中创建的资源

1 个答案:

答案 0 :(得分:0)

模块无法访问父级中的资源,除非这些资源作为变量传递到模块中。