0

我正在尝试通过REST interface重新启动/重新启动 Azure 虚拟机。

我通过 Azure 门户创建了一个虚拟机,它在左侧的“虚拟机”选项卡下显示为正在运行。

我用于此操作的 url 如下:

https://management.core.windows.net/ {my-subscription-guid} /services/hostedservices/ cloudvm-test /deployments/ cloudvm-test /roles/ cloudvm-test /Operations

您可以看到“cloudvm-test”作为托管服务名称、部署名称和角色名称重复出现,因为这就是它在调用Get Hosted Service Properties后返回的 xml 中的显示方式。尽管虚拟机不是经典的托管服务,但它出现在这个 xml 中,所以我只使用在那里找到的值。我担心的问题之一是我是否正确构建了 URL。

无论如何,使用上面的 URL,我按预期构建了我的请求,并发布了以下内容:

<RestartRoleOperation xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<OperationType>RestartRoleOperation</OperationType></RestartRoleOperation>

我收到的错误是 404,指出“不支持资源服务名称托管服务”。

并不是说它真的很重要,但我正在用 Objective C 编写。如果你有 C# 中的示例,我可以很好地处理它。

4

1 回答 1

4

而不是.../roles/roleName/...你必须使用(在 Uri 路径中用roleInstances.../roleInstances/roleName ....替换角色)。

VM 相关文档中充满了这样的小错误。

顺便说一句,为了拥有虚拟机,您需要拥有“托管服务”。因此,如果您尝试使用 REST API 创建 VM,您会发现必须指定现有的托管服务。因此,您首先必须创建托管服务,然后将虚拟机部署到该服务。这有点令人困惑,因为门户网站向我们隐藏了那个小细节。但是,如果您转到旧门户,您会看到您创建的每个虚拟 VM 背后实际上都有一个托管服务。在您删除其中的所有虚拟机之前,该托管服务不会在新门户中显示为“云服务”...

于 2012-10-24T19:34:27.317 回答