gpt4 book ai didi

rest - windows azure rest api - 创建虚拟机

转载 作者:行者123 更新时间:2023-12-04 23:55:02 25 4
gpt4 key购买 nike

我正在考虑使用 Windows Azure REST API 在 Windows Azure 环境中创建虚拟机。深入了解 Windows Azure REST API reference我看到应该发出 POST 请求的 URL 是:

https://management.core.windows.net/<subscription-id>/services/hostedservices/<cloudservice-name>/deployments/<deployment-name>/roles

我的困惑是关于 <cloudservice-name> 的需要和<deployment-name> 。事实上,如果我直接登录到 Windows Azure 订阅门户并通过菜单创建虚拟机,则无需指定云服务名称或部署名称。我所做的就是为虚拟机选择一个镜像(centos、ubuntu、windows 等),为虚拟机选择一个风格(xsmall、small、large 等),然后单击“创建”,虚拟机将在几分钟内创建完毕。

鉴于我可以通过这种方式创建虚拟机,我不明白为什么我必须传递 <cloudservice-name>和一个 <deployment-name> REST API curl 调用中的参数以及要传递给这些参数的值。事实上,我的订阅中没有部署,也不打算进行部署。我想要的只是创建一个我可以使用的虚拟机。

我是否可以跳过这些参数并仍然能够在我的 Azure 订阅中创建虚拟机?即只需通过 <subscription-id>

以前使用过 Windows Azure REST API 的人或具有 Windows Azure 专业知识的人能否对此进行一些阐述并帮助澄清?

2013 年 7 月 31 日星期三更新: 再次感谢您对我的问题的反馈。我想更新一下,我最终能够使用 REST API 调用创建虚拟机。但奇怪的是,创建虚拟机只成功了一次。随后,当我尝试创建具有不同名称的虚拟机时,它给出了类似“暂存部署被阻止”的错误。因此,为了保持理智,我继续删除了现有的虚拟机,并进行了一些帐户清理。我再次尝试使用 POST 操作来创建 VM,现在发生的情况是 POST 响应正常返回,并显示 202 Accepted 消息,但尽管如此,我没有看到在我的 Azure 帐户中创建 VM。我不知道从哪里以及如何开始解决这个问题,因为我既没有收到错误,也没有创建虚拟机。

我在下面发布了用于创建 VM 的整个 XML 请求正文:

<Deployment xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Name>Staging</Name>
<DeploymentSlot>Staging</DeploymentSlot>
<Label>stk_curl_label_1</Label>
<RoleList>
<Role>
<RoleName>stk_curl_role_1</RoleName>
<RoleType>PersistentVMRole</RoleType>
<ConfigurationSets>
<ConfigurationSet>
<ConfigurationSetType>WindowsProvisioningConfiguration</ConfigurationSetType>
<ComputerName>stkVm1</ComputerName>
<AdminPassword>Password123</AdminPassword>
<EnableAutomaticUpdates>false</EnableAutomaticUpdates>
</ConfigurationSet>
</ConfigurationSets>
<OSVirtualHardDisk>
<HostCaching>ReadWrite</HostCaching>
<DiskLabel>Visual studio ultimate</DiskLabel>
<DiskName>stk_disk_1</DiskName>
<MediaLink>http://stk11.blob.core.windows.net/communityimages/visual_studio_ultimate.vhd</MediaLink>
<SourceImageName>03f55de797f546a1b29d1b8d66be687a__Visual-Studio-2013-Preview-Ultimate-12.0.20617.1</SourceImageName>
</OSVirtualHardDisk>
<RoleSize>ExtraSmall</RoleSize>
</Role>
</RoleList>
</Deployment>

我将粘贴在我收到的curl 调用响应的尾部下方:

> User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
> Host: management.core.windows.net
> Accept: */*
> x-ms-version: 2012-03-01
> Content-Type: application/xml
> Content-Length: 1236
> Expect: 100-continue
>
* SSLv3, TLS handshake, Hello request (0):
SSLv3, TLS handshake, Client hello (1):
SSLv3, TLS handshake, Server hello (2):
SSLv3, TLS handshake, CERT (11):
SSLv3, TLS handshake, Request CERT (13):
SSLv3, TLS handshake, Server finished (14):
SSLv3, TLS handshake, CERT (11):
SSLv3, TLS handshake, Client key exchange (16):
SSLv3, TLS handshake, CERT verify (15):
SSLv3, TLS change cipher, Client hello (1):
SSLv3, TLS handshake, Finished (20):
SSLv3, TLS change cipher, Client hello (1):
SSLv3, TLS handshake, Finished (20):
HTTP/1.1 100 Continue
HTTP/1.1 202 Accepted
< Cache-Control: no-cache
< Content-Length: 0
< Server: 33.0.6198.68 (rd_rdfe_stable.130710-0833) Microsoft-HTTPAPI/2.0
< x-ms-servedbyregion: ussouth
< x-ms-request-id: b2f3dd01319049a5a6728bbdbcde6c4a
< Date: Wed, 31 Jul 2013 17:26:54 GMT
* Connection #0 to host management.core.windows.net left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):

正如您可以清楚地看到的,这是一个“202 Accepted”响应。但正如我之前提到的,尽管如此,当我检查我的 Azure 帐户时,我没有看到正在创建虚拟机。

希望了解有关如何找出其未按预期工作的根本原因的任何专家见解/想法?

最佳答案

您所看到的是门户网站幕后的一个小魔法。当您部署虚拟机时,它确实最终位于云服务容器中。最近这一点在门户中也变得更加明显,之前他们向您隐藏了这一点。当人们删除虚拟机或将其他虚拟机添加到同一组(以前称为“附加到”)时,云服务将显示在门户中。人们对这是什么感到困惑,它只会引起更多的问题,而不是其值(value)。

现在,在门户中,系统会提示您选择云服务。如果您在要求 DNS 名称(并在旁边显示 .cloudapp.net)时执行快速创建,则这就是您提供的云服务名称。当您通过库进行创建时,在步骤 3 中会更加明显,其中要求创建一个新的云服务或选择一个已存在的云服务。

要通过 REST API 执行您想要的操作,您需要提前创建云服务或在创建虚拟机之前进行调用。此外,您提供的链接用于添加云服务角色,而不是创建虚拟机。对于该 REST API 调用,您需要使用:http://msdn.microsoft.com/en-us/library/windowsazure/jj157194.aspx它仍然需要云服务,但不需要部署名称。

关于rest - windows azure rest api - 创建虚拟机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17950885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com