1

我有一个需要使用 Azure 管理库重新启动的 PaaS VM 角色。我尝试了以下代码,但由于“BadRequest:MyPaaSVmName 类型的角色不支持该操作”而失败。但是我使用下面的方法 1 成功地重新启动了 IaaS VM。是否可以使用 Azure 管理库重新启动 PaaS VM 角色?如果没有,有没有其他方法可以使用 c# 来实现它。

1.

ComputeManagementClient client = new ComputeManagementClient(cloudCredentials);
client.VirtualMachines.Restart(hostedServiceName, deploymentName, vmName);

2.

ComputeManagementClient client = new ComputeManagementClient(cloudCredentials);
VirtualMachineOperationsExtensions.Restart(client.VirtualMachines, hostserviceName, deploymentName, vmName);

谢谢你。

4

2 回答 2

1

发现问题,Method1应该是这样的,因为我正在重新启动一个角色实例。方法2是错误的。

client.Deployments.RebootRoleInstanceByDeploymentName(hostserviceName, deploymentName, roleName);
于 2014-12-04T13:40:35.067 回答
1

以下是使用 Azure Powershell 执行此操作的方法:

重置-AzureRoleInstance -ServiceName "MySvc1" -Slot Staging -InstanceName "MyWebRole_IN_0" –reboot

https://msdn.microsoft.com/en-us/library/azure/dn495202.aspx

这是 Azure 自动化运行手册中的一个片段,它可以重新启动每个更新域的所有云服务实例(因此您没有停机时间):

https://gallery.technet.microsoft.com/Reboot-Cloud-Service-PaaS-b337a06d

$roleInstances = Get-AzureRole -ServiceName $cloudServiceName -Slot Production -InstanceDetails
Write-Output "Retrieved all role instances for cloud service: $cloudServiceName. Number of instances: " + $roleInstances.Count

# Group instances per update domain
$roleInstanceGroups = $roleInstances | Group-Object -AsHashTable -AsString -Property InstanceUpgradeDomain
Write-Output "Number of update domains found: " + $roleInstanceGroups.Keys.Count

# Visit each update domain
foreach ($key in $roleInstanceGroups.Keys)
{
    $count = $perDomainInstances.Count;
    Write-Output "Rebooting $count instances in domain $key"    

    $perDomainInstances = $roleInstanceGroups.Get_Item($key)

    foreach -parallel($instance in $perDomainInstances)
    {
        $instanceName = $instance.InstanceName
        Write-Output "Rebooting instance $instanceName"

        Reset-AzureRoleInstance -ServiceName $cloudServiceName -Slot Production -InstanceName $instanceName -Reboot -ErrorAction Stop
    } 
}
于 2015-12-15T23:53:07.660 回答