2014-01-02 3 views
0

Все, я пытаюсь развернуть мое облачное обслуживание до 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 
} 

У меня есть некоторые вопросы о скрипте. Пожалуйста, попробуй помочь мне.

  1. Что такое тип объекта Get-AzureDeployment return? Я ищу его в Help Doc. Но не нашел никакой информации об этом.

  2. Сколько возможного статуса, кроме Running, может быть возвращено Get-AzureDeployment?

  3. Есть ли возможность никогда не ломаться в петле?

Спасибо.

ответ

1

Каков тип объекта Get-AzureDeployment return? Я ищу его в Справочном пособии. Но не нашел никакой информации об этом.

Как уже упоминалось в documentation, эта операция возвращает объект типа DeploymentInfoContext. Вы можете найти здесь об этом объекте: https://github.com/WindowsAzure/azure-sdk-tools/blob/master/WindowsAzurePowershell/src/Commands.ServiceManagement/Model/DeploymentInfoContext.cs. Однако, если вы посмотрите на исходный код для Get-AzureDeployment здесь: https://github.com/WindowsAzure/azure-sdk-tools/blob/master/WindowsAzurePowershell/src/Commands.ServiceManagement/HostedServices/GetAzureDeployment.cs, вы заметите, что она возвращает следующее:

return new DeploymentInfoContext(d) 
        { 
         OperationId = s.Id, 
         OperationStatus = s.Status.ToString(), 
         OperationDescription = CommandRuntime.ToString(), 
         ServiceName = this.ServiceName 
        }; 

Сколько можно состояние, кроме Запуск Get-AzureDeployment мог возвращение?

Вы можете найти список возможных статусов здесь: http://msdn.microsoft.com/en-us/library/windowsazure/ee460804.aspx.

После копируется из указанной выше ссылке:

enter image description here

Есть ли возможность никогда не ломаются в цикле?

Я не уверен в этом. Думаю, вам нужно будет тщательно протестировать его. Статусы могут изменяться с использованием новых версий API управления сервисами, поэтому вам необходимо убедиться, что ваш код охватывает все возможные статусы.

+0

Спасибо. Я думал, есть ли возможность никогда не ломаться в цикле вышеупомянутого скрипта? –

+0

Обновлен мой ответ. –

+0

Спасибо за ваше профессиональное и информативное обновление. В моем сценарии я хочу знать, когда New-AzureDeployment был успешно выполнен. Поэтому я подумал, что, возможно, я смогу использовать спиновый запрос статуса развертывания для его достижения. Но что, если в развертывании произошло что-то неправильно. и статус остается статусом «Suspend» (например) и никогда не изменяется. В этом случае, что я могу сделать для устранения такого исключения? Один из способов, я могу подумать, - использовать проверку тайм-аута в запросе спина. –

0

Get-AzureDeployment возвращает объект схемы, показанной ниже

SdkVersion:
RollbackAllowed: Ложные
Slot: Производство
Название:
DeploymentName: [SomeName]
Адрес: HTTP: // [ Somename] .cloudapp.net/
Статус: приостановлено
CurrentUpgradeDomain: 0
Текущий рейтинг:
UpgradeType:
RoleInstanceList: {}
Конфигурация:
DeploymentId: [SomeGUID]
Ярлык: [SomeName]
VNetName: [SomeName]
DnsSettings:
OSVersion:
RolesConfiguration: {[[Somename], Microsoft.WindowsAzure.Commands.ServiceManagement.Model.RoleConfiguration]}
ServiceName: [Somena меня]
OperationDescription: Get-AzureDeployment OperationID: 1801bce8-73b4-5a74-9e80-e03d04ff405b OperationStatus: Преемник

 Смежные вопросы

  • Нет связанных вопросов^_^