5

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

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

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

4

3 回答 3

1

两天前,Microsoft 发布了一个XML 文件,其中包含每个区域的 IP 范围列表。根据此文件和您的角色的 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 文件似乎没有涵盖新的数据中心(美国西部和东部),这可能使其在您的情况下无用。

于 2012-05-10T20:42:17.420 回答
1

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

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

只要您可以从 Windows Azure 团队发布的给定 IP 地址范围验证您的服务位置 IP 地址,@Sandrino 想法就可以工作。

于 2012-05-10T21:08:50.253 回答
0

I had some services deployed in Anywhere US and in order to find out which data centre it was deployed in I had to log a support call with Microsoft. They were helpful and got me the information but even they had to go away and look it up. As a result of this I would never use and the the "Anywhere ..." locations. Knowing which data centre your services are running in is very important for knowing where to deploy things like SQL Azure and service bus which don't support affinity groups and don't have an Anywhere option.

于 2012-05-11T02:33:57.473 回答