我正在编写一个小型Java客户端,它使用Azure Service Management API在Azure上创建新的VM部署。 我不断收到这样的错误请求:
17/07/2012 18:26:37 com.sun.jersey.api.client.filter.LoggingFilter log
INFO: 1 * Client out-bound request
1 > POST https://management.core.windows.net/my-subscription-id/services/hostedservices/myservice/deployments
1 > x-ms-version: 2012-03-01
1 > Content-Type: application/xml
<Deployment xmlns="http://schemas.microsoft.com/windowsazure">
<Name>mynametest</Name>
<DeploymentSlot>Staging</DeploymentSlot>
<Label>mynamelabel</Label>
<RoleList>
<Role>
<RoleName>mynamerolename</RoleName>
<RoleType>PersistentVMRole</RoleType>
<ConfigurationSets>
<ConfigurationSet>
<ConfigurationSetType>LinuxProvisioningConfiguration</ConfigurationSetType>
<HostName>myunamehost</HostName>
<UserName>myname</UserName>
<UserPassword>password</UserPassword>
</ConfigurationSet>
</ConfigurationSets>
<OSVirtualHardDisk>
<SourceImageName>CANONICAL__Canonical-Ubuntu-12-04-amd64-server-20120528.1.3-en-us-30GB.vhd</SourceImageName>
</OSVirtualHardDisk>
</Role>
</RoleList>
</Deployment>
17/07/2012 18:26:38 com.sun.jersey.api.client.filter.LoggingFilter log
INFO: 1 * Client in-bound response
1 < 400
1 < x-ms-request-id: c622e270c5934cb493f76790b7d2c49d
1 < Date: Tue, 17 Jul 2012 15:27:26 GMT
1 < Content-Length: 275
1 < Content-Type: application/xml; charset=utf-8
1 < Server: 6.0.6002.18488 (rd_rdfe_stable.120710-1331) Microsoft-HTTPAPI/2.0
1 <
<Error xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Code>BadRequest</Code><Message>No target URI is specified for the image CANONICAL__Canonical-Ubuntu-12-04-amd64-server-20120528.1.3-en-us-30GB.vhd.</Message></Error>
看起来azure的文档有些错误:http://msdn.microsoft.com/en-us/library/windowsazure/jj157194
以前有人试过这个吗?我不明白'目标URI'是什么意思... 图像名称取自天蓝色图像的公共图库。任何帮助,任何帮助都将受到高度赞赏。 感谢
答案 0 :(得分:1)
您的xml有一些错误的配置,即DeploymentSlot等,我也相信错误即将发生,因为您没有XML中的所有必需设置。以下是Linux Gallery图像的工作原理:
<Deployment xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Name>mydeploymentname</Name>
<Label>mydeploymentlabel</Label>
<RoleList>
<Role>
<RoleName>mylinuxvm2012</RoleName>
<RoleType>PersistentVMRole</RoleType>
<ConfigurationSets>
<ConfigurationSet>
<ConfigurationSetType>LinuxProvisioningConfiguration<ConfigurationSetType>
<HostName>host-name-for-the-vm</HostName>
<UserName>new-user-name</UserName>
<UserPassword>password-for-the-new-user</UserPassword>
<DisableSshPasswordAuthentication>true|false</DisableSshPasswordAuthentication>
<SSH>
<PublicKeys>
<PublicKey>
<FingerPrint>******add_here******</FingerPrint>
<Path>****SSH-public-key-storage-location**********</Path>
</PublicKey>
</PublicKeys>
<KeyPairs>
<KeyPair>
<FingerPrint>************certificate-fingerprint*************</FinguerPrint>
<Path>*************SSH-public-key-storage-location*************</Path>
</KeyPair>
</KeyPairs>
</SSH>
</ConfigurationSet>
<OSVirtualHardDisk>
<HostCaching>ReadWrite</HostCaching>
<DiskLabel>myosdisklabel</DiskLabel>
<DiskName>myazurelinuxvm</DiskName>
<MediaLink>https://_yourstoragename_.blob.core.windows.net/vhds/_your_VHD_NAME_.vhd</MediaLink>
<SourceImageName>CANONICAL__Canonical-Ubuntu-12-04-amd64-server-20120528.1.3-en-us-30GB.vhd</SourceImageName>
</OSVirtualHardDisk>
<RoleSize>_ExtraSmall|Small|Medium|Large|ExtraLarge_</RoleSize>
</Role>
</RoleList>