В балансировщике нагрузки Azure RM я могу создать FTP-правило nat с помощью PowerShell, но также хотел бы установить целевую виртуальную машину с помощью PowerShell. Единственный способ, которым я знаю, как установить цель, - это портал.
У меня две виртуальные машины в балансировщике нагрузки. Я попытался использовать Add-AzLoadBalancerInboundNatRuleConfig, но не вижу параметра для целевой виртуальной машины.
Мой сценарий: $ lb | Add-AzLoadBalancerInboundNatRuleConfig -Name $ EndpointName -FrontendIPConfiguration $ feip -Protocol Tcp -FrontendPort $ i -BackendPort $ i
Если невозможно установить цель в PowerShell, какие есть альтернативы, кроме портала?
Я нашел ответ. С помощью можно добавить LoadBalancerInboundNatRuleId в конфигурацию IP.
Вот функция для получения LoadBalancerInboundNatRuleId, которую я создал для этой цели:
Function natRuleID ($sourcePortName) {
return "/subscriptions/$subscriptionID/resourceGroups/$rgName/providers/Microsoft.Network/loadBalancers/$lbName/InboundNatRules/$sourcePortName"
}
А вот мой пример сценария, который добавляет два nat-правила балансировщика нагрузки, а затем устанавливает целевой сетевой интерфейс для виртуальной машины:
# Add Load Balancer Nat Rules:
$lb = Get-AzLoadBalancer -Name $lbName -ResourceGroupName $rgName
$feip = Get-AzLoadBalancerFrontendIpConfig -Name $feipName -LoadBalancer $lb
$lb | Add-AzLoadBalancerInboundNatRuleConfig -Name $natRuleRdpName-FrontendIpConfiguration $feip -Protocol tcp -FrontendPort $rdpPortNumber -BackendPort 3389
$lb | Add-AzLoadBalancerInboundNatRuleConfig -Name $natRuleFtpName -FrontendIPConfiguration $feip -Protocol "Tcp" -FrontendPort $ftpPublicPortForImplicit990 -BackendPort 990
$lb | Set-AzLoadBalancer #save the new LB rules
# Set nat rule targets:
Function natRuleID ($sourcePortName) {
return "/subscriptions/$subscriptionID/resourceGroups/$rgName/providers/Microsoft.Network/loadBalancers/$lbName/InboundNatRules/$sourcePortName"
}
$rules = @()
$rules = $rules += natRuleID($natRuleFtpName)
$rules = $rules += natRuleID($natRuleRdpName)
$nic = Get-AzNetworkInterface -Name $nicName -ResourceGroupName $rgName
$nic | Set-AzNetworkInterfaceIpConfig -Name $ipConfigName -LoadBalancerInboundNatRuleId $rules
$nic | Set-AzNetworkInterface #save the new ipConfig rules