Запуск модуля Runbook в службе автоматизации Azure
Следующая таблица поможет определить метод запуска модуля runbook в службе автоматизации Azure, наиболее подходящий для конкретной ситуации. Данная статья содержит сведения о запуске модуля Runbook с помощью портала Azure и Windows PowerShell. Сведения об остальных методах приведены в другой документации, доступной по ссылкам, которые указаны ниже.
Method | Характеристики |
---|---|
Портал Azure | |
Windows PowerShell | |
API-интерфейс в службе автоматизации Azure | |
веб-перехватчики; | |
Ответ на оповещение Azure | |
Запланировать | |
Из другого модуля Runbook |
На следующем рисунке показан подробный пошаговый процесс жизненного цикла модуля Runbook. Он включает различные способы запуска модуля Runbook в службе автоматизации Azure, компоненты, необходимые для выполнения модулей Runbook для службы автоматизации Azure в гибридной рабочей роли Runbook, и взаимодействие между различными компонентами. Дополнительные сведения о выполнении модулей Runbook службы автоматизации Azure в центре обработки данных см. в статье о гибридных рабочих ролях Runbook.
Работа с параметрами последовательности runbook
При запуске модуля runbook с помощью портала управления Azure или Windows PowerShell инструкция отправляется через веб-службу автоматизации Azure. Эта служба не поддерживает параметры со сложными типами данных. Если необходимо указать значение для сложного параметра, его необходимо вызвать из другого модуля Runbook, как описано в разделе Дочерние модули Runbook в службе автоматизации Azure.
Веб-служба автоматизации Azure предоставляет специальные функции для параметров, в которых используются определенные типы данных, как описано в следующих разделах.
Именованные значения
Если параметр имеет тип данных [object], используйте следующий формат JSON, чтобы передать в параметр список именованных значений: {имя1:'значение1', имя2:'значение2', имя3:'значение3'}. Значения должны быть простого типа. Модуль runbook получает параметр в виде объекта PSCustomObject, свойства которого соответствуют каждому именованному значению.
Рассмотрим следующий тестовый модуль Runbook, который принимает параметр user.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][object]$user
)
$userObject = $user | ConvertFrom-JSON
if ($userObject.Show) {
foreach ($i in 1..$userObject.RepeatCount) {
$userObject.FirstName
$userObject.LastName
}
}
}
Для параметра user может быть использован следующий текст.
{FirstName:'Joe',LastName:'Smith',RepeatCount:'2',Show:'True'}
Результат должен быть таким:
Joe
Smith
Joe
Smith
Массивы
Если параметр представляет собой массив, например [array] или [string[]], используйте следующий формат JSON, чтобы отправить его в виде списка значений: [значение1, значение2, значение3]. Значения должны быть простого типа.
Рассмотрим следующий тестовый модуль Runbook, который принимает параметр user.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][array]$user
)
if ($user[3]) {
foreach ($i in 1..$user[2]) {
$ user[0]
$ user[1]
}
}
}
Для параметра user может быть использован следующий текст.
["Joe","Smith",2,true]
Результат должен быть таким:
Joe
Smith
Joe
Smith
Подтверждение компетенции
Если параметр относится к типу данных PSCredential
, можно предоставить имя ресурса учетных данных в службе автоматизации Azure. Модуль runbook получит учетные данные с указанным именем. Рассмотрим следующую тестовую последовательность runbook, которая принимает параметр credential
.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][PSCredential]$credential
)
$credential.UserName
}
Следующий текст можно использовать для параметра user, если используется ресурс учетной записи My Credential
.
My Credential
Предполагая, что в учетных данных указано имя пользователя jsmith
, будут отображаться следующие выходные данные:
jsmith
Запуск модуля Runbook с помощью портала Azure
- На портале Azure щелкните Автоматизация, а затем выберите имя учетной записи службы автоматизации.
- В области слева выберите Модули Runbook.
- На странице Модули Runbook выберите модуль runbook и щелкните Запустить.
- Если модуль Runbook содержит параметры, вам будет предложено указать значения в текстовом поле для каждого параметра. Дополнительные сведения о параметрах см. в разделе Параметры модуля Runbook.
- В области Задание можно просмотреть состояние задания runbook.
Запуск модуля Runbook с помощью PowerShell
Чтобы запустить последовательность runbook с помощью Windows PowerShell, воспользуйтесь командлетом Start-AzureRmAutomationRunbook. В следующем примере кода будет запущена последовательность runbook с именем Test-Runbook.
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01"
Командлет Start-AzAutomationRunbook
возвращает объект задания, с помощью которого можно отслеживать состояние runbook после запуска. Затем этот объект задания можно указать в командлете Get-AzureAutomationJob, чтобы определить состояние задания, и в командлете Get-AzureAutomationJobOutput, чтобы получить выходные данные. В следующем примере будет запущена последовательность runbook с именем Test-Runbook, а после ее завершения выводится результат.
$runbookName = "Test-Runbook"
$ResourceGroup = "ResourceGroup01"
$AutomationAcct = "MyAutomationAccount"
$job = Start-AzAutomationRunbook -AutomationAccountName $AutomationAcct -Name $runbookName -ResourceGroupName $ResourceGroup
$doLoop = $true
While ($doLoop) {
$job = Get-AzAutomationJob -AutomationAccountName $AutomationAcct -Id $job.JobId -ResourceGroupName $ResourceGroup
$status = $job.Status
$doLoop = (($status -ne "Completed") -and ($status -ne "Failed") -and ($status -ne "Suspended") -and ($status -ne "Stopped"))
}
Get-AzAutomationJobOutput -AutomationAccountName $AutomationAcct -Id $job.JobId -ResourceGroupName $ResourceGroup -Stream Output
Если для модуля Runbook требуются параметры, необходимо предоставить их в виде хэш-таблицы. Ключ хэш-таблицы должен совпадать с именем параметра, а значение — со значением параметра. В следующем примере показано, как запустить модуль Runbook с двумя строковыми параметрами FirstName и LastName, целочисленным параметром RepeatCount и логическим параметром Show. Дополнительные сведения о параметрах см. в разделе Параметры модуля Runbook.
$params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01" -Parameters $params
Следующие шаги
- Дополнительные сведения об управлении последовательностями runbook см. в статье Управление модулями runbook в службе автоматизации Azure.
- Дополнительные сведения о PowerShell см. в документации по PowerShell.
- Сведения об устранении неполадок, связанных с выполнением последовательности runbook, см. в статье Устранение ошибок runbook.