Starting a Runbook in Azure Automation (Iniciar um Runbook na Automatização do Azure)
A tabela a seguir ajuda você a determinar o método para iniciar um runbook na Automação do Azure que é 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 os outros métodos são fornecidos em outra documentação que você pode acessar a partir dos links abaixo.
Método | Caraterísticas |
---|---|
Portal do Azure | |
Windows PowerShell | |
API de Automação do Azure | |
Webhooks | |
Responder ao Alerta do Azure | |
Schedule | |
De Outro Runbook |
A imagem a seguir ilustra o processo passo a passo detalhado no ciclo de vida de um runbook. Ele inclui diferentes maneiras como um runbook é iniciado na Automação do Azure, quais componentes necessários para o Hybrid Runbook Worker executar runbooks da Automação do Azure e interações entre diferentes componentes. Para saber mais sobre como executar runbooks de automação em seu datacenter, consulte Trabalhadores de runbook híbridos
Trabalhar com parâmetros de runbook
Quando você inicia um runbook do portal do Azure ou do Windows PowerShell, a instrução é enviada por meio do serviço Web de Automação do Azure. Este serviço não suporta parâmetros com tipos de dados complexos. Se você precisar fornecer um valor para um parâmetro complexo, deverá chamá-lo inline de outro runbook, conforme descrito em Runbooks filho na Automação do Azure.
O serviço Web de Automação do Azure fornece funcionalidade especial para parâmetros que usam determinados tipos de dados, conforme descrito nas seções a seguir.
Valores com nome
Se o parâmetro for do tipo de dados [object], você poderá usar o seguinte formato JSON para enviar uma lista de valores nomeados: {Name1:'Value1', Name2:'Value2', Name3:'Value3'}. Estes valores têm de 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 abaixo, que aceita um parâmetro denominado 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
}
}
}
Pode ser utilizado o texto seguinte para o parâmetro user.
{FirstName:'Joe',LastName:'Smith',RepeatCount:'2',Show:'True'}
Isso resulta na seguinte saída:
Joe
Smith
Joe
Smith
Matrizes
Se o parâmetro for uma matriz como [array] ou [string[]], você poderá usar o seguinte formato JSON para enviar uma lista de valores: [Value1, Value2, Value3]. Estes valores têm de ser tipos simples.
Considere o runbook de teste abaixo, que aceita um parâmetro denominado user.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][array]$user
)
if ($user[3]) {
foreach ($i in 1..$user[2]) {
$ user[0]
$ user[1]
}
}
}
Pode ser utilizado o texto seguinte para o parâmetro user.
["Joe","Smith",2,true]
Isso resulta na seguinte saída:
Joe
Smith
Joe
Smith
Credenciais
Se o parâmetro for do tipo PSCredential
de dados, você poderá fornecer o nome de um ativo de credencial da Automação do Azure. O runbook recupera a credencial com o nome que você especificar. 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 poderia ser usado para o parâmetro user, supondo que houvesse 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
Iniciar um runbook com o portal do Azure
- No portal do Azure, selecione Automação e, em seguida, selecione o nome de uma conta de Automação.
- No painel esquerdo, selecione Runbooks.
- Na página Runbooks, selecione um runbook e clique em Iniciar.
- Se o runbook tiver parâmetros, você será solicitado a fornecer valores com uma caixa de texto para cada parâmetro. Para obter mais informações sobre parâmetros, consulte Parâmetros do Runbook.
- No painel Trabalho, você pode exibir o status do trabalho de runbook.
Iniciar um runbook com o PowerShell
Você pode usar o 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. Em seguida, 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 exemplo a seguir inicia um runbook chamado Test-Runbook, aguarda até que ele seja concluído e, em seguida, exibe 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 necessitar de parâmetros, terá de os introduzir como uma tabela hash. A chave da tabela hash tem de corresponder ao nome do parâmetro e o valor é o valor do parâmetro. O exemplo seguinte mostra como iniciar um runbook com dois parâmetros de cadeia denominados FirstName e LastName, um número inteiro denominado RepeatCount e um parâmetro booleano denominado Show. Para obter mais informações sobre parâmetros, consulte Parâmetros do Runbook.
$params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01" -Parameters $params
Próximos passos
- Para obter detalhes sobre o gerenciamento de runbooks, consulte Gerenciar runbooks na Automação do Azure.
- Para obter detalhes do PowerShell, consulte Documentos do PowerShell.
- Para solucionar problemas com a execução do runbook, consulte Solucionar problemas do runbook.