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
  • Método mais simples com interface de usuário interativa.
  • Formulário para fornecer valores de parâmetros simples.
  • Acompanhe facilmente o estado do trabalho.
  • Acesso autenticado com o início de sessão do Azure.
  • Windows PowerShell
  • Ligue da linha de comando com cmdlets do Windows PowerShell.
  • Pode ser incluído no recurso automatizado com várias etapas.
  • A solicitação é autenticada com certificado ou OAuth usuário principal / entidade de serviço.
  • Forneça valores de parâmetros simples e complexos.
  • Acompanhe o estado do trabalho.
  • Cliente necessário para dar suporte a cmdlets do PowerShell.
  • API de Automação do Azure
  • Método mais flexível, mas também mais complexo.
  • Ligue de qualquer código personalizado que possa fazer solicitações HTTP.
  • Solicitação autenticada com certificado, ou Oauth usuário principal / entidade de serviço.
  • Forneça valores de parâmetros simples e complexos. Se você estiver chamando um runbook Python usando a API, a carga JSON deverá ser serializada.
  • Acompanhe o estado do trabalho.
  • Webhooks
  • Inicie o runbook a partir de uma única solicitação HTTP.
  • Autenticado com token de segurança no URL.
  • O cliente não pode substituir os valores de parâmetros especificados quando o webhook foi criado. Runbook pode definir um único parâmetro que é preenchido com os detalhes da solicitação HTTP.
  • Não há capacidade de rastrear o estado do trabalho através da URL do webhook.
  • Responder ao Alerta do Azure
  • Inicie um runbook em resposta ao alerta do Azure.
  • Configure o webhook para runbook e link para alerta.
  • Autenticado com token de segurança no URL.
  • Schedule
  • Inicie automaticamente o runbook em horários horários, diários, semanais ou mensais.
  • Manipule a agenda por meio do portal do Azure, cmdlets do PowerShell ou API do Azure.
  • Forneça valores de parâmetros a serem usados com agendamento.
  • De Outro Runbook
  • Use um runbook como uma atividade em outro runbook.
  • Útil para a funcionalidade usada por vários runbooks.
  • Forneça valores de parâmetro para runbook filho e use a saída no runbook pai.
  • 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

    Runbook Architecture

    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 de dados, você poderá fornecer o nome de um ativo de credencial da Automação do PSCredentialAzure. 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

    1. No portal do Azure, selecione Automação e, em seguida, selecione o nome de uma conta de Automação .
    2. No painel esquerdo, selecione Runbooks.
    3. Na página Runbooks, selecione um runbook e clique em Iniciar.
    4. 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.
    5. 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