BadRequest using Azure Service Management API to create VM

六眼飞鱼酱① 提交于 2019-12-11 07:16:22

问题


i am writing a small java client that uses the Azure Service Management API to create a new VM Deployment on Azure. i keep getting bad requests responses like these:

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>

it looks like the docs from azure are buggy: http://msdn.microsoft.com/en-us/library/windowsazure/jj157194

anyone has tried this before? i dont understand what does 'target URI' mean... the image name is taken from the public gallery of images on azure.

any help, any help at all, will be highly appreciated. thanks


回答1:


Your xml have some bad configuration i.e. DeploymentSlot etc and I also believe the error is coming because you do not have all required settings in your XML. Following is the working one for Linux Gallery image:

<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>



来源:https://stackoverflow.com/questions/11525988/badrequest-using-azure-service-management-api-to-create-vm

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!