Windows Azure角色可以检测角色所在的数据中心吗?

时间:2012-05-10 20:30:19

标签: azure azure-role-environment

我们的Windows Azure角色需要以编程方式了解角色所在的数据中心。

我知道REST API(http://msdn.microsoft.com/en-us/library/ee460806.aspx)返回位置属性。 如果我部署到,美国西部,REST API将West US作为位置属性返回。 但是,如果我部署到美国任何地方,该物业是美国的任何地方。 我想知道我们的角色所在的数据中心,即使位置属性是Anywhere US。

我问的原因是我们的角色需要从Windows Azure存储中下载一些数据。 从同一数据中心下载数据的费用是免费的,但从不同数据中心下载数据的费用不是免费的。

3 个答案:

答案 0 :(得分:1)

两天前,微软发布了XML file containing a list of IP ranges per region。根据此文件和角色的IP地址,您可以找到角色已部署到的数据中心。

<?xml version="1.0" encoding="UTF-8"?>
<regions>
  ...
  <region name="USA">
    <subregion name="South Central US">
      <network>65.55.80.0/20</network>
      <network>65.54.48.0/21</network>
      ...
    </subregion>
    <subregion name="North Central US">
      <network>207.46.192.0/20</network>
      <network>65.52.0.0/19</network>
      ...
    </subregion>
  </region>
</regions>

注意:看起来这个XML文件不包含新数据中心(美国西部和东部),这可能会使您的情况无效。

答案 1 :(得分:1)

这是一个很好的问题,我已经与不同的合作伙伴讨论了几次。根据我的理解,当您创建服务并提供此服务所在的位置(“美国中南部”或“美国任何地方”)时,此信息将存储在Azure订阅中特定于您的服务的RDFE服务器上。因此,当您选择固定位置(如“美国中南部”或“美国中北部”)时,实际部署到该位置的服务和确切位置将被存储,但是当您选择“Anywhere US”时,选择“South Center”或“North Central”在内部完成,但所选位置从未更新为与您的服务相关的RDFE服务器。

这就是为什么每当您尝试通过SM API或Powershell或任何其他方式获取订阅中与您的服务相关的位置信息时(即使在Azure门户上,它也被列为“Anywhere US”,因为信息来自同一存储) ,您将获得在服务创建期间首先选择的内容。

只要您可以从Windows Azure团队发布的给定IP地址范围验证您的服务位置IP地址,就可以使用@Sandrino构思。

答案 2 :(得分:0)

我在美国的任何地方部署了一些服务,为了找出它部署在哪个数据中心,我必须记录与微软的支持电话。他们很有帮助,并得到了我的信息,但即使他们不得不离开并查阅它。因此,我永远不会使用和“Anywhere ...”位置。了解运行哪个数据中心对于了解SQL Azure和服务总线等不支持关联性组并且没有Anywhere选项的部署非常重要。