我们可以通过 Terraform 中的 eventhub 命名空间来引用 eventhub 实例吗?

Can we data refer to eventhub instances through eventhub namespaces in Terraform?

我对 azurerm eventhub 有疑问。现在我是引用 Eventhub 命名空间的数据,但我无法在输出中获取实例!

data "azurerm_eventhub_namespace" "eventhub_namespace" {
  name  ="example"
  resource_group_name = "example resource group"
}

但是我们有类似

的东西吗
data "azurerm_eventhub_instance" "eventhub_instace" {
  name_instance  ="example"
  resource_group_name = "example resource group"
}

很遗憾,恐怕你做不到。 Terraform 仅在数据源中公开 azurerm_eventhub_instance。所以Terraform不支持​​你想要的。

可能的解决方法是可以使用external data source执行脚本,然后使用脚本获取命名空间中的实例。

我想出了这些小脚本来获取 con 字符串。

#!/usr/bin/env bash
RG=
EVENTHUBNAMESPACE=
SUBSCRIPTION=
az eventhubs eventhub list --resource-group "$RG" --namespace-name "$EVENTHUBNAMESPACE" --subscription "$SUBSCRIPTION" > eventhub.json
eventhub=( $(jq -r '.[].name' eventhub.json) )
for eventhub in "${eventhub[@]}"; do
 az eventhubs eventhub authorization-rule keys list --resource-group "$RG"  --namespace-name "$EVENTHUBNAMESPACE" --eventhub-name "$eventhub" --name "$eventhub" --subscription "$SUBSCRIPTION" > eventhubcon.json
 arr=( $(jq -r '.primaryConnectionString' eventhubcon.json) )
  for constr in "${arr[@]}"; do
  printf '%s\n' "${arr[@]}"
  done
done