0

こんにちは私は空白のロードバランサをホストするサーバーを持っています。バランサが管理する複数のサーバーインスタンスがあります。どのようにロードバランサのホストIPからサーバインスタンスIDを取得するのですか?この情報を取得するために使用するデフォルトの要求はありますか?要求を送信するときに設定する必要のあるいくつかのデフォルトヘッダーがありますか? 私は主に特定のサーバーインスタンスに要求を送信するようにロードバランサに通知する必要があります。要求の宛先サーバーインスタンスを指定します。Azureロードバランサ

私はロードバランサのパブリックIPしか持っていません。すべてのサーバーインスタンスを取得し、特定のサーバーインスタンスにHTTPリクエストを送信する必要があります。私はIPアドレスだけでこれを行うことはできますか?私はこれで初めてです

+0

あなたはでこれを行うことができないそうならば、これはのように、我々は、VMに関する情報を取得するためにのPowerShellを使用することができますAzure LB – CtrlDot

+0

@Ctrl上記のうちのどれをすることはできません。ホスト上で実行されているサーバーインスタンスIDを確認しますか?またはLBに特定のサーバーに要求を送信するように指示しますか? – flexxxit

+0

両方。 Azureポータルを使用してバックエンドサーバーを照会することはできますが、LB自体からその情報を取得することはできません。特定のサーバーにルーティングするには、App Gatewayでその特定の機能があるかどうかを知るために(おそらく、提案したようなヘッダーを使用してください) – CtrlDot

答えて

0

複数のサーバーインスタンスを持つロードバランサ、Azure 、ARMモジュールで、

Login-AzureRmAccount 
Get-AzureRmPublicIpAddress | ?{ $_.ipaddress -eq "52.168.145.1" } | select name, resourcegroupname 
$pip = Get-AzureRmPublicIpAddress -Name mypublicip -ResourceGroupName lb 
$lbname = ($pip.IpConfiguration.Id -split '/')[8] 
$lbinfo = Get-AzureRmLoadBalancer -Name $lbname -ResourceGroupName lb 
$backendips = $lbinfo.BackendAddressPools.BackendIpConfigurations.id 
$nics = foreach($id in $backendips){($id -split '/')[8]} 
$vms = foreach($nic in $nics){$test = Get-AzureRmNetworkInterface -Name $nic -ResourceGroupName lb ; $vmname =($test.VirtualMachine.id -split '/')[-1];$vmaddress=$test.IpConfigurations.PrivateIpAddress;$results = [pscustomobject]@{'VMname'=$vmname;'PrivateAddress'=$vmaddress};$results } 
$vms 

ここに私の研究室でのテストです:

enter image description here

+0

この例では、Azureアカウントにログインする必要がありますか?私はログインせずにこれを達成できませんか? – flexxxit

+0

@flexxxitはい、Azureアカウントにログインする必要があります。情報を一覧表示できます。 –

関連する問題