我们可以通过 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
我对 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