如何启动Azure VM(取消分配)使用REST API

时间:2013-09-28 09:07:06

标签: azure azure-powershell

我在这里发现了一个非常奇怪的问题: 在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? 感谢。

3 个答案:

答案 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);
}