Inicie um runbook na Automação do Azure
A tabela a seguir o ajuda a determinar o método para inicializar um runbook na Automação do Azure, que seja mais adequado ao seu cenário específico. Este artigo inclui detalhes sobre como iniciar um runbook com o portal do Azure e com o Windows PowerShell. Detalhes sobre outros métodos são fornecidos em outros documentos que você pode acessar através dos links abaixo.
Método | Características |
---|---|
Portal do Azure | |
Windows PowerShell | |
API de Automação do Azure | |
Webhooks | |
Responder a um Alerta do Azure | |
Agendar | |
De Outro Runbook |
A imagem a seguir ilustra o processo passo a passo detalhado no ciclo de vida de um runbook. Ela inclui as diferentes formas como um runbook é iniciado na Automação do Azure, que componentes são necessários para que o Hybrid Runbook Worker execute runbooks da Automação do Azure e as interações entre diferentes componentes. Para saber mais sobre a execução de runbooks de Automação em seu datacenter, veja hybrid runbook workers
Quando você inicia um runbook por meio do Portal do Azure ou do Windows PowerShell, a instrução é enviada pelo serviço Web da Automação do Azure. Esse serviço não dá suporte a parâmetros com tipos de dados complexos. Se você precisa fornecer um valor para um parâmetro complexo, você deve chamá-lo embutido de outro runbook, como descrito em Runbooks filho na Automação do Azure.
O serviço Web da Automação do Azure fornece uma funcionalidade especial para os parâmetros usando certos tipos de dados, conforme descrito nas seções a seguir.
Se o parâmetro é do tipo de dados [object], você pode usar o seguinte formato JSON para enviar-lhe uma lista de valores nomeados: {Name1:'Value1', Name2:'Value2', Name3:'Value3'}. Esses valores devem ser tipos simples. O runbook recebe o parâmetro como um PSCustomObject com propriedades que correspondem a cada valor nomeado.
Considere o runbook de teste a seguir que aceita um parâmetro chamado 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
}
}
}
O texto a seguir pode ser usado para o parâmetro user.
{FirstName:'Joe',LastName:'Smith',RepeatCount:'2',Show:'True'}
Isso resulta na seguinte saída:
Joe
Smith
Joe
Smith
Se o parâmetro é uma matriz, como [array] ou [string[]], você pode usar o seguinte formato JSON para enviar-lhe uma lista de valores: [Value1, Value2, Value3]. Esses valores devem ser tipos simples.
Considere o runbook de teste a seguir que aceita um parâmetro chamado user.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][array]$user
)
if ($user[3]) {
foreach ($i in 1..$user[2]) {
$ user[0]
$ user[1]
}
}
}
O texto a seguir pode ser usado para o parâmetro user.
["Joe","Smith",2,true]
Isso resulta na seguinte saída:
Joe
Smith
Joe
Smith
Se o parâmetro é do tipo de dados PSCredential
, forneça o nome de um ativo de credencial da Automação do Azure. O runbook recupera as credenciais com o nome que você especifica. O runbook de teste a seguir aceita um parâmetro chamado credential
.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][PSCredential]$credential
)
$credential.UserName
}
O texto a seguir pode ser usado para o parâmetro user supondo que havia um ativo de credencial chamado My Credential
.
My Credential
Supondo que o nome de usuário na credencial seja jsmith
, a saída a seguir é exibida.
jsmith
- No Portal do Azure, selecione Automação e, em seguida, selecione no nome de uma Conta de automação.
- No painel esquerdo, selecione Runbooks.
- Na página Runbooks, selecione um runbook e, em seguida, clique em Iniciar.
- Se o runbook tiver parâmetros, você será solicitado a fornecer valores com uma caixa de texto a cada parâmetro. Para obter mais informações sobre parâmetros, confira Parâmetros de runbook.
- Veja o status do trabalho do runbook no painel Trabalho.
Use Start-AzAutomationRunbook para iniciar um runbook com o Windows PowerShell. O código de exemplo a seguir inicia um runbook chamado Test-Runbook.
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01"
Start-AzAutomationRunbook
retorna um objeto de trabalho que você pode usar para controlar o status depois que o runbook é iniciado. Você pode usar esse objeto de trabalho com Get-AzAutomationJob para determinar o status do trabalho e Get-AzAutomationJobOutput para recuperar sua saída. O código de exemplo a seguir inicia um runbook chamado Test-Runbook, aguarda até que ele seja concluído e exibe a sua saída.
$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
Se o runbook exigir parâmetros, você deve fornecê-los como uma tabela de hash. A chave da tabela de hash deve corresponder ao nome do parâmetro e o valor é o valor do parâmetro. O exemplo a seguir mostra como iniciar um runbook com dois parâmetros de cadeia de caracteres chamados FirstName e LastName, um número inteiro denominado RepeatCount e um parâmetro booliano denominado Show. Para obter mais informações sobre parâmetros, confira Parâmetros de runbook.
$params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01" -Parameters $params
- Para obter detalhes sobre o gerenciamento de runbooks, consulte Gerenciamento de runbooks na Automação do Azure.
- Para obter detalhes do PowerShell, veja Documentos do PowerShell.
- Para solucionar problemas com a execução do runbook, confira Solução de problemas de runbook.