0

Я играю с группами ресурсов Azure.Связать публичный IP-адрес в группе ресурсов Azure с веб-приложением?

Я создал группу, и в ней я создал веб-приложение. (Это все просто академическое, и я удалю все это, когда я закончу, и я не против совместного использования данных.) Веб-приложение находится по адресу http://woodswild.azurewebsites.net, и действительно, вы можете пойти по этому адресу, и он будет разрешить (хотя там ничего нет, на данный момент это нормально).

Затем в той же группе ресурсов я также создал публичный IP-адрес, который является статическим.

enter image description here

Это все выглядит хорошо (я думаю, в любом случае). Но в Portal UI, я вижу, что этот IP не связан ни к чему:

enter image description here

Aaannndd .... Я с трудом выяснить, как сделать это. Я создал Общественный IP внутри Azure PowerShell с помощью этой команды:

New-AzureRmPublicIpAddress -AllocationMethod Static -ResourceGroupName TestRG1 -ReverseFqdn woodswild.centralus.cloudapp.azure.com -Name woodswild.azurewebsites.net -Location "Central US" -DomainNameLabel woodswild 

Согласно this article, объясняющой команде New-AzureRmPublicIpAddress, нет параметра объявить ассоциацию. Я не вижу способ сделать это в интерфейсе портала, и я не могу найти ответы через Google.

Что я намереваюсь/задаюсь вопросом/предполагаю, что после создания этой ассоциации вы можете поместить IP-адрес в браузер, и он будет разрешен к тому же месту, что и http://woodswild.azurewebsites.net.

Любые идеи? Благодаря!!

ответ

1

Фактически невозможно назначить статический IP-адрес для веб-приложения. Это связано с тем, что IP-адрес, используемый веб-приложениями, не используется исключительно вами, но вместо этого он представляет собой внешний интерфейс балансировщика нагрузки, который находится перед сервисом веб-приложений Azure.

Однако Microsoft заявляет, что любое веб-приложение, которое может иметь назначенное доменное имя, будет поддерживать свой внешний входящий адрес и внешние исходящие адреса в течение всего срока службы веб-приложения. Это относится к Basic, Standard и Premium SKU. (Это может обратиться к Shared тоже - мне придется выкопать документ)

Вы можете найти свой внешний входящий IP-адрес с

(да, в основном, пинг и посмотреть, что DNS дает!)
Resolve-DnsName (Get-AzureRmWebApp ` 
     -ResourceGroupName $ResourceGroupName -Name $Name).EnabledHostNames[0] 

и ваши внешние исходящие IP-адреса с

(Get-AzureRmWebApp -ResourceGroupName $ResourceGroupName ` 
        -Name $Name).OutboundIpAddresses 


кажется, я упал на первое препятствие здесь, и на самом деле не читал этот вопрос. Или, по крайней мере, мой мозг, кажется, читал разные слова, чем те, которые есть! (Я оставлю здесь неправильный ответ, потому что, возможно, кому-то это будет полезно, b, скорее всего, вставьте его в фактический ответ, который он подходит один день)

Причина, по которой это настолько запутанно, заключается в том, что она не сразу становится очевидным процесс, который Azure использует для обновления ресурсов.

Для большинства существующих ресурсных изменений, которые сделаны в лазури, процесс идет что-то вроде

  1. Get-то, присвоить его переменной.
  2. Измените свойство этой переменной, присвоив другое значение.
  3. Запишите изменение на Azure с помощью командлета Set-something.

В случае присвоения IP-адреса виртуальной машины, это код, чтобы использовать

$ipaddr = New-AzureRmPublicIpAddress -Name test1 ` 
         -ResourceGroupName win10 ` 
         -Location westeurope ` 
         -AllocationMethod Static 

$nic = Get-AzureRmNetworkInterface -Name $name ` 
         -ResourceGroupName $ResourceGroupName #1 
$nic.IpConfigurations[0].PublicIpAddress = $ipaddr    #2 
Set-AzureRmNetworkInterface -NetworkInterface $nic    #3 
+0

Хорошо, спасибо вам за это! Это помогает заполнить много пробелов в моем понимании. Но, я все еще неясен в одном: будет ли это связывать статический IP-адрес с веб-приложением? (И также, где определено $ name при использовании в Get-AzureRmNetworkInterface -Name $ name) –

+1

@CaseyCrookston кажется, что мой мозг пошел на молоко, пока я читал ваш вопрос, и я ответил на что-то совершенно другое. На этот раз я включил фактический ответ. –

+0

Хорошо, проигнорируйте последний вопрос в моем предыдущем комментарии. Теперь я вижу, что я установил $ name и $ ResourceGroupName для существующих значений. –