2016-11-11 4 views
0
 String cloudServiceDeployment = "imagevmtest"; 
     url = String.format("https://management.core.windows.net/%s/services/hostedservices/%s/deployments", subscriptionId, cloudServiceDeployment); 
     String requestBody2 = "<?xml version=\"1.0\" encoding=\"utf-8\"?><Deployment xmlns=\"http://schemas.microsoft.com/windowsazure\"><Name>190bed4a</Name><DeploymentSlot>Production</DeploymentSlot><Label>190bed4a</Label><RoleList><Role><RoleName>SuseOpenVm_rolec8fc</RoleName><RoleType>PersistentVMRole</RoleType><ConfigurationSets><ConfigurationSet><ConfigurationSetType>LinuxProvisioningConfiguration</ConfigurationSetType><HostName>SuseOpenVm_rolec8fc</HostName><UserName>anandsrinivasan</UserName><UserPassword>Cloud360</UserPassword><DisableSshPasswordAuthentication>false</DisableSshPasswordAuthentication></ConfigurationSet><ConfigurationSet><ConfigurationSetType>NetworkConfiguration</ConfigurationSetType><DisableSshPasswordAuthentication>false</DisableSshPasswordAuthentication><InputEndpoints><InputEndpoint><LocalPort>22</LocalPort><Name>SSH</Name><Port>22</Port><Protocol>TCP</Protocol></InputEndpoint></InputEndpoints></ConfigurationSet></ConfigurationSets><OSVirtualHardDisk><MediaLink>https://2xportalvhds7jsf9ncknn4s.blob.core.windows.net/vhds/imagevmtest-imagevmtest-2016-11-10.vhd</MediaLink><SourceImageName>imagevmtest-imagevmtest-2016-11-10.vhd</SourceImageName></OSVirtualHardDisk><RoleSize>Small</RoleSize></Role></RoleList><VirtualNetworkName>anand360NW</VirtualNetworkName></Deployment>"; 

     int deployResponseCode = processPostRequest(new URL(url),requestBody2.getBytes(), "application/xml", keyStorePath, keyStorePassword); 
     System.out.println(deployResponseCode); 

Ich verwende den obigen Code und versuche, eine virtuelle Maschine in meinem Azure zu erstellen. Aber immer noch Fehler 400. Können Sie mir helfen, eine VM in meinem Azure-Konto über REST API zu erstellen?Erstellen der VM-Bereitstellung Azure-REST-API

+0

Ich möchte Sie fragen, was ist der Zweck der Verwendung der Raw-REST-API zum Erstellen von Azure-Ressourcen? Hast du einige Alternativen ausprobiert? –

+0

@MilanNankov Ich plane etwas, mit dem Benutzer vm auf dem Azure automatisch erstellen können, sobald sie ein Konto unter meiner Website erstellt haben. Was sind die Alternativen? Können Sie einige Schritte bereitstellen? Danke –

Antwort

0

Dies ist jetzt eine direkte Antwort auf Ihre Frage, aber ich werde einige Alternativen anbieten, die für Ihr Szenario besser sein könnten.

Es ist ziemlich schwierig und fehleranfällig, mit dem Generieren des gesamten XML zu arbeiten. Die REST-API ist so niedrig wie auf Azure. Mein Vorschlag ist, einige der API/Tools zu versuchen, die auf der REST-API wie PowerShell und Azure CLI erstellt werden.

Die beste Option, wenn Sie .NET verwenden, ist Management Libraries for .NET zu verwenden. Die ursprünglichen Management Libraries sind ein wenig umständlich zu benutzen, aber es gibt eine neue und verbesserte Version in den Arbeiten mit flüssiger API und von dem, was ich bisher gesehen habe, ist es großartig! Hier ist der einführende Blogbeitrag - https://azure.microsoft.com/en-us/blog/simpler-azure-management-libraries-for-net/

Zusammenfassend denke ich, dass es am besten ist, wenn Sie sich die Mühe ersparen könnten, mit der REST-API zu arbeiten und stattdessen einige der Wrapper verwenden.

Lassen Sie mich wissen, dass Sie denken.

+0

In Ordnung, danke für Ihre Hilfe. Ich werde so schnell wie möglich zurückkommen. Gib mir etwas Zeit, um es zu entwickeln und herauszufinden. Ich weiß es zu schätzen, dass Sie mir hier einige Ratschläge geben konnten. =) –

+0

Ich kann jetzt eine vm mit Azure CLI erstellen. Vielen Dank. Und jetzt habe ich noch eine Frage, die vm wird manuell erstellt, indem azure CLI verwendet wird. Gibt es einen Schritt zum automatischen Erstellen einer VM mit Azure CLI? –

+0

Cloud Sie erarbeiten ein wenig auf Ihren letzten Kommentar. Was meinst du mit "automatisch"? Als Reaktion auf ein Ereignis oder? Sie haben Ihre Website erwähnt, sodass Sie wahrscheinlich VMs erstellen möchten, wenn ein Benutzer registriert ist. Sind Sie eine ASP.NET-Anwendung oder verwenden Sie eine andere Technologie? –