将 Azure 资源组中的 Public IP 关联到 Web 应用程序?
Associate a Public IP in an Azure Resource Group to a Web App?
我正在研究 Azure 资源组。
我创建了一个组,并在其中创建了一个网络应用程序。 (这都是学术性的,我会在学习完后全部删除,所以我不介意分享数据。)网络应用程序位于http://woodswild.azurewebsites.net,确实你可以去那个地址,它会解决(虽然那里什么都没有,现在没问题。)
然后,在同一个资源组中,我还创建了一个静态的 Public IP 地址。
一切看起来都不错(无论如何我认为)。但是在 Portal UI 中,我看到这个 IP 没有关联到任何东西:
Aaannndd....我很难弄清楚该怎么做。我使用以下命令从 Azure PowerShell 中创建了 Public IP:
New-AzureRmPublicIpAddress -AllocationMethod Static -ResourceGroupName TestRG1 -ReverseFqdn woodswild.centralus.cloudapp.azure.com -Name woodswild.azurewebsites.net -Location "Central US" -DomainNameLabel woodswild
根据解释 New-AzureRmPublicIpAddress 命令的 this article,没有用于声明关联的参数。我在 Portal UI 中找不到执行此操作的方法,而且我无法通过 Google.
找到任何答案
我希望/想知道/假设的是,一旦建立这种关联,您可以将 IP 地址放入浏览器中,它会解析到与 http://woodswild.azurewebsites.net.[=17= 相同的位置]
有什么想法吗?谢谢!!
实际上不可能将静态 IP 地址分配给 Web 应用程序。这是因为 Web 应用程序使用的 IP 地址不是您独占使用的,而是位于 Azure 的 Web 应用程序服务前面的负载均衡器的前端地址池。
但是,Microsoft 断言任何可以分配域名的 Web 应用程序都将在 Web 应用程序的生命周期内保留其外部传入地址和外部传出地址。这适用于基本、标准和高级 SKU。 (它 可能 也适用于 Shared - 我将不得不挖掘文档)
您可以找到您的外部传入 IP 地址(是的,基本上,ping 它并查看 DNS 给出了什么!)
Resolve-DnsName (Get-AzureRmWebApp `
-ResourceGroupName $ResourceGroupName -Name $Name).EnabledHostNames[0]
以及您的外部传出 IP 地址
(Get-AzureRmWebApp -ResourceGroupName $ResourceGroupName `
-Name $Name).OutboundIpAddresses
看来我在这里遇到了第一个障碍,并没有真正阅读这个问题。或者至少我的大脑似乎读到了与那里的不同的词! (我会在这里留下错误的答案,因为 a,它可能对某人有用,b,我可能会把它粘贴到一个适合某天的实际答案中)
之所以如此令人困惑,是因为 Azure 用于更新资源的过程并不是很明显。
对于在 Azure 中进行的大多数现有资源更改,过程类似于
- 得到一些东西,把它赋值给一个变量。
- 通过分配其他值来更改该变量的 属性。
- 使用 Set-something cmdlet 将更改写入 Azure。
在为 VM 分配 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
我正在研究 Azure 资源组。
我创建了一个组,并在其中创建了一个网络应用程序。 (这都是学术性的,我会在学习完后全部删除,所以我不介意分享数据。)网络应用程序位于http://woodswild.azurewebsites.net,确实你可以去那个地址,它会解决(虽然那里什么都没有,现在没问题。)
然后,在同一个资源组中,我还创建了一个静态的 Public IP 地址。
一切看起来都不错(无论如何我认为)。但是在 Portal UI 中,我看到这个 IP 没有关联到任何东西:
Aaannndd....我很难弄清楚该怎么做。我使用以下命令从 Azure PowerShell 中创建了 Public IP:
New-AzureRmPublicIpAddress -AllocationMethod Static -ResourceGroupName TestRG1 -ReverseFqdn woodswild.centralus.cloudapp.azure.com -Name woodswild.azurewebsites.net -Location "Central US" -DomainNameLabel woodswild
根据解释 New-AzureRmPublicIpAddress 命令的 this article,没有用于声明关联的参数。我在 Portal UI 中找不到执行此操作的方法,而且我无法通过 Google.
找到任何答案我希望/想知道/假设的是,一旦建立这种关联,您可以将 IP 地址放入浏览器中,它会解析到与 http://woodswild.azurewebsites.net.[=17= 相同的位置]
有什么想法吗?谢谢!!
实际上不可能将静态 IP 地址分配给 Web 应用程序。这是因为 Web 应用程序使用的 IP 地址不是您独占使用的,而是位于 Azure 的 Web 应用程序服务前面的负载均衡器的前端地址池。
但是,Microsoft 断言任何可以分配域名的 Web 应用程序都将在 Web 应用程序的生命周期内保留其外部传入地址和外部传出地址。这适用于基本、标准和高级 SKU。 (它 可能 也适用于 Shared - 我将不得不挖掘文档)
您可以找到您的外部传入 IP 地址(是的,基本上,ping 它并查看 DNS 给出了什么!)
Resolve-DnsName (Get-AzureRmWebApp `
-ResourceGroupName $ResourceGroupName -Name $Name).EnabledHostNames[0]
以及您的外部传出 IP 地址
(Get-AzureRmWebApp -ResourceGroupName $ResourceGroupName `
-Name $Name).OutboundIpAddresses
看来我在这里遇到了第一个障碍,并没有真正阅读这个问题。或者至少我的大脑似乎读到了与那里的不同的词! (我会在这里留下错误的答案,因为 a,它可能对某人有用,b,我可能会把它粘贴到一个适合某天的实际答案中)
之所以如此令人困惑,是因为 Azure 用于更新资源的过程并不是很明显。
对于在 Azure 中进行的大多数现有资源更改,过程类似于
- 得到一些东西,把它赋值给一个变量。
- 通过分配其他值来更改该变量的 属性。
- 使用 Set-something cmdlet 将更改写入 Azure。
在为 VM 分配 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