我在这里发现了一个非常奇怪的问题: 在Azure powershell中,我们可以使用 Start-AzureVM -ServiceName“mypc”-Name“mypc” 对于VM状态=停止或停止(取消分配)。 但对于Azure Mangement API 我们只能将start role用于VM state = stop
VM state = stop(deallocated)无法使用该API .. 如何使用REST API以State = Stop(deallocated)启动VM? 感谢。
答案 0 :(得分:5)
Windows Azure PowerShell cmdlet使用服务管理REST API - 但它使用undocumented 2013-06-01版本。此操作可能仅在未记录的Service Management REST API版本中可用。
您可以使用Fiddler代理请求来查看cmdlet实际执行的操作 - 这使您可以访问调用的操作(URL)以及发送和接收的有效负载。或者,您可以查看GitHub上提供的PowerShell cmdlet source。
答案 1 :(得分:1)
POST https://management.core.windows.net/<subscription-id>/services/hostedservices/<service-name>/deployments/<deployment-name>/roleinstances/<role-name>/Operations
**x-ms-version: 2013-06-01**
<StartRoleOperation xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><OperationType>StartRoleOperation</OperationType></StartRoleOperation>
答案 2 :(得分:0)
public Task<ComputeLongRunningOperationResponse> StartVirtualMachineAsync(string subscriptionId, string name, string resource_group)
{
TokenCloudCredentials tokenCloudCredential = new TokenCloudCredentials(subscriptionId, token);
ComputeManagementClient computeManagementClient = new ComputeManagementClient(tokenCloudCredential);
return computeManagementClient.VirtualMachines.StartAsync(resource_group, name);
}