Все, я пытаюсь развернуть мое облачное обслуживание до Windows Azure
. В настоящее время он работает отлично. Но я все еще пытаюсь понять детали внутри него. Как ниже Power Shell
сценарий. Сценарий пытается получить статус deplpoyment в слоте Staging
после того, как New-AzureDeployment
был успешно выполнен.Сколько будет статуса лазурного развертывания
while ($True) {
$deployment = Get-AzureDeployment -ServiceName $CloudServiceName -Slot Staging
if ($deployment.Status -ne 'Running') {
continue
}
$notReadyList = $deployment.RoleInstanceList | Where-Object InstanceStatus -ne 'ReadyRole'
if (!$notReadyList) {
break
}
$errorStatusList = @('RestartingRole';'CyclingRole';'FailedStartingRole';'FailedStartingVM';'UnresponsiveRole')
$errorList = $notReadyList | Where-Object InstanceStatus -in $errorStatusList
if ($errorList) {
throw 'Role in staging fail to start for some of these reasons:' + ($errorList | Format-List | Out-String)
}
Start-Sleep -Seconds 10
}
У меня есть некоторые вопросы о скрипте. Пожалуйста, попробуй помочь мне.
Что такое тип объекта
Get-AzureDeployment
return? Я ищу его в Help Doc. Но не нашел никакой информации об этом.Сколько возможного статуса, кроме
Running
, может быть возвращеноGet-AzureDeployment
?Есть ли возможность никогда не ломаться в петле?
Спасибо.
Спасибо. Я думал, есть ли возможность никогда не ломаться в цикле вышеупомянутого скрипта? –
Обновлен мой ответ. –
Спасибо за ваше профессиональное и информативное обновление. В моем сценарии я хочу знать, когда New-AzureDeployment был успешно выполнен. Поэтому я подумал, что, возможно, я смогу использовать спиновый запрос статуса развертывания для его достижения. Но что, если в развертывании произошло что-то неправильно. и статус остается статусом «Suspend» (например) и никогда не изменяется. В этом случае, что я могу сделать для устранения такого исключения? Один из способов, я могу подумать, - использовать проверку тайм-аута в запросе спина. –