我正在尝试为云服务分配一个保留的IP地址。我需要此功能来限制对数据库的IP访问(并且我不希望允许所有azure节点进行此访问),并且我还必须访问我需要具有静态IP的外部API。
到目前为止,我已经创建了一个云服务解决方案,并在解决方案中添加了MVC Web角色。使用Azure Powershell,我获得了一个IP地址(使用GetAzureReservedIP验证成功)并更新了配置文件ServiceConfiguration.cloud.cscfg。
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="TestApp" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2014-06.2.4">
<Role name="MvcWebRole">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=XYZ;AccountKey=XYZ" />
</ConfigurationSettings>
</Role>
<NetworkConfiguration>
<AddressAssignments>
<ReservedIPs>
<ReservedIP name="MyReservedIP"/>
</ReservedIPs>
</AddressAssignments>
</NetworkConfiguration>
</ServiceConfiguration>
(显然,我确保IP地址的名称与GetAzureReservedIP中显示的完全相同。)
使用此配置,我已将解决方案部署到新的云服务,但它没有收到预期的IP地址。 我使用的是Visual Studio 2012和Azure SDK 2.4。我通过选择Build - &gt;从Visual Studio部署到Azure。发布到Azure,我在其中创建新的云服务并选择&#34; Cloud&#34;服务配置。
修改 我可以看到IP地址不用于传出流量,因为无法访问数据库(仅允许访问一个IP地址),并且我对外部Web服务的请求被阻止。管理门户显示使用另一个IP地址。
答案 0 :(得分:1)
根据我在AZure上的个人使用经验,如果您尝试使用vip在云服务上分配保留的IP,它将无法正常工作。您可以在不进行任何部署的情况下分配新的云服务或云服务(vip尚未分配)。
另外要注意基于亲和性组的云服务上的保留Ip存在限制,在这种情况下您可能遇到以下问题:
New-AzureVM : BadRequest : The deployment contains VirtualNetwork DemoVNET that belongs to an Affinity Group and ReservedIP that belongs to a region. This combination is not allowed.
参考:http://azure.microsoft.com/blog/2014/05/14/reserved-ip-addresses/
答案 1 :(得分:0)
您是如何确保静态IP未分配给云服务的?希望您从Azure管理门户 - 云服务 - 仪表板中观察到云服务的VIP。保留的IP也不会分配给实例。它仅与云服务相关联。
答案 2 :(得分:0)
您需要使用powershell来保留IP。遗憾的是,您现在无法为现有的云服务分配IP。所以你必须创建一个新实例。
这将指导您如何保留IP
http://azure.microsoft.com/blog/2014/05/14/reserved-ip-addresses/
然后,您需要确保您的Azure配置文件(.cscfg)具有以下具有NetworkConfiguration下的ReservedIP名称
<NetworkConfiguration>
<AddressAssignments>
<ReservedIPs>
<ReservedIP name="Your-Reserved-IP-Name" />
</ReservedIPs>
</AddressAssignments>
</NetworkConfiguration>