#azure #powershell #azure-data-explorer
Вопрос:
Попытка присвоить идентификатор ресурса предварительно созданной подсети виртуальной сети свойству VirtualNetworkConfigurationSubnetId модуля powershell «Новый-AzKustoCluster», и это вообще не позволяет мне создать кластер проводника данных Azure.
Если я удалю настройку Подсети, кластер будет создан нормально. Мне нужно создать кластер в виртуальной сети, поэтому этот параметр является ОБЯЗАТЕЛЬНЫМ.
Используемый код —
$location = "Central India"
$sku = "Dev(No SLA)_Standard_E2a_v4"
$virtualNetworks = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $resourceGroupName
$subnetDetails = Get-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $virtualNetworks
$subnetId = $subnetDetails.Id
New-AzKustoCluster -ResourceGroupName $resourceGroupName -Name $clusterName -Location $location -
SkuName $sku -SkuTier Basic -EnableDiskEncryption -IdentityType 'SystemAssigned' -SkuCapacity 1
-VirtualNetworkConfigurationSubnetId $subnetId
Пожалуйста, подскажите, что я могу делать не так. Любая помощь / предложения будут высоко оценены.
Ответ №1:
Похоже, вам не хватает остальных параметров, необходимых для настройки кластера на vent, в частности, enginePublicIpId и dataManagementPublicIpId:
"subnetId": "[variables('subnetId')]",
"enginePublicIpId": "[variables('enginePublicIpId')]",
"dataManagementPublicIpId": "[variables('dataManagementPublicIpId')]"
Пожалуйста, прочитайте больше о шагах по созданию кластера с вентиляцией [здесь] (https://docs.microsoft.com/en-us/azure/data-explorer/vnet-create-cluster-portal) и здесь. Вы также можете развернуть свой кластер на вентиляционном отверстии, используя следующий шаблон
Комментарии:
1. Я добавил эти 2 свойства изначально, сначала создав 2 общедоступных IP-адреса, используя Новый-AzPublicIpAddress-Имя группы ресурсов $Имя группы ресурсов-Местоположение $местоположение-IdleTimeoutInMinutes 10-Метод распределения Статического имени lpublicip-Уровень регионального стандарта артикула-IP-адресверсия IPv4-Сила и $publicIngestionIp = Новый-AzPublicIpAddress-Имя группы ресурсов $Имя группы ресурсов-Местоположение $местоположение-IdleTimeoutInMinutes 10-Метод распределения Статическое имя lpublicingestionip-Уровень регионального стандарта Sku-IP-адресверсия IPv4-Принудительно, а затем использовать их в команде New-AzKustoCluster. Но тщетно.
Ответ №2:
ОК. Итак, наконец — то я заставил его полностью работать. 3 вещи, которых не хватало за пределами самого моего powershell, что приводило к сбою сценария (хотя, по-видимому, модуль New-AzKustoCluster не выдает никаких ошибок / предупреждений, из-за чего он выходит из строя, так трудно сказать, что следует исправить). Но вот оно. Изменения, которые необходимо было внести
- Определение NSG и маршрутизации в подсеть, созданную в виртуальной сети, является ОБЯЗАТЕЛЬНЫМ, так как без этого функция New-AzKustoCluster завершается сбоем, но не выдает никаких ошибок как таковых. Это происходит только тогда, когда мы используем эти ресурсы для создания кластера через портал, когда он показывает, что развертывание кластера не удалось по этой причине.
- Правило NSG должно быть определено в подсети (используемой для развертывания кластера), чтобы разрешить входящий трафик с адресов AzureDataExplorerManagement и AzureLoadBalancer (с использованием этих 2 тегов службы источника).
- Таблица маршрутов должна быть определена в подсети, и она должна содержать маршрут с AddressPrefix=’/32′ и NextHopType=’Интернет’
Как только эти 3 шага были выполнены, за пределами самого основного powershell, сценарий был выполнен нормально, без каких-либо проблем и создания кластера, базы данных и таблицы по мере необходимости.
Надеюсь, это поможет кому-то использовать новые функции AzKustoCluster в powershell без каких-либо препятствий.