Tipos de runbook da Automação do Azure

O recurso de Automação de Processo da Automação do Azure dá suporte a vários tipos de runbooks, conforme definido na tabela a seguir. Para saber mais sobre o ambiente de automação de processo, veja Execução de runbook na Automação do Azure.

Type Descrição
Gráfico Runbook gráfico baseado no Windows PowerShell e criado e editado totalmente no editor gráfico do portal do Azure.
Fluxo de Trabalho Gráfico do PowerShell Runbook gráfico baseado no Fluxo de Trabalho do Windows PowerShell e criado e editado totalmente no editor gráfico do portal do Azure.
PowerShell Runbook de texto baseado no script do Windows PowerShell.
Fluxo de Trabalho do PowerShell Runbook de texto baseado no script do fluxo de trabalho do Windows PowerShell.
Python Runbook de texto baseado no script do Python.

Considere os fatores a seguir ao determinar qual tipo usar para um runbook específico.

  • Não é possível converter runbooks do tipo gráfico para texto ou vice-versa.
  • Existem limitações para o uso de runbooks de tipos diferentes, como runbooks filhos. Para obter mais informações, confira Runbooks filho na Automação do Azure.

Runbooks gráficos

Você pode criar e editar runbooks gráficos e runbooks gráficos de Fluxo de Trabalho do PowerShell usando o editor gráfico no portal do Azure. No entanto, não é possível criar ou editar este tipo de runbook com outra ferramenta. Principais recursos dos runbooks gráficos:

  • Exportados para arquivos na conta de Automação e, em seguida, importados para outra conta de Automação.
  • Gerar código do PowerShell.
  • Convertidos de ou para runbooks gráficos de Fluxo de Trabalho do PowerShell durante a importação.

Vantagens

  • Uso do modelo visual de criação para configurar link de inserção.
  • Foco em como os dados fluem no processo.
  • Represente visualmente os processos de gerenciamento.
  • Inclui outros runbooks como runbooks filhos para criar fluxos de trabalho de alto nível.
  • Incentiva a programação modular.

Limitações

  • Não é possível criar ou editar fora do portal do Azure.
  • Pode exigir uma atividade de código que contenha código do PowerShell para executar lógica complexa.
  • Não é possível converter para dos formatos de texto, nem converter um runbook de texto para formato gráfico.
  • Não é possível exibir ou editar diretamente o código do PowerShell que o fluxo de trabalho gráfico cria. É possível exibir o código criado em todas as atividades do código.
  • Não é possível executar runbooks em um Hybrid Runbook Worker do Linux. Veja Automação de recursos em seu datacenter ou nuvem usando o Hybrid Runbook Worker.
  • Os runbooks gráficos não podem ser assinados digitalmente.

Runbooks do PowerShell

Os runbooks do PowerShell se baseiam no Windows PowerShell. Você edita o código do runbook diretamente usando o editor de texto do portal do Azure. Também é possível usar qualquer editor de texto offline e importar o runbook na Automação do Azure.

A versão do PowerShell é determinada pela Versão do runtime especificada (ou seja, a versão prévia 7.1 ou a 5.1). O serviço Automação do Azure dá suporte ao runtime mais recente do PowerShell.

A mesma área restrita do Azure e o Hybrid Runbook Worker podem executar runbooks do PowerShell 5.1 e do PowerShell 7.1 lado a lado.

Observação

No momento da execução do runbook, se você selecionar a Versão do Runtime como 7.1 (versão prévia) , os módulos do PowerShell destinados à versão do runtime 7.1 serão usados e, se você selecionar a Versão do Runtime como 5.1, os módulos do PowerShell destinados à versão do runtime 5.1 serão usados.

Selecione a Versão do Runtime correta para os módulos.

Por exemplo: se você estiver executando um runbook em um cenário de automação do Sharepoint na Versão do runtime7.1 (versão prévia), importe o módulo na Versão do runtime7.1 (versão prévia). Se você estiver executando um runbook em um cenário de automação do Sharepoint na Versão do runtime5.1, importe o módulo na Versão do runtime5.1. Nesse caso, haverá duas entradas para o módulo, uma para a Versão do runtime7.1 (versão prévia) e outra para a 5.1.

Tipos de runbook.

No momento, há suporte para o PowerShell 5.1 e 7.1 (versão prévia).

Vantagens

  • Implemente toda a lógica complexa com o código do PowerShell sem outras complexidades do Fluxo de Trabalho do PowerShell.
  • Inicia mais rápido que os runbooks de Fluxo de Trabalho do PowerShell, já que não precisa ser compilado antes da execução.
  • Pode ser executado no Azure e em Hybrid Runbook Workers para Windows e Linux.

Limitações – Versão 5.1

  • Exige familiarização com script do PowerShell.
  • Os runbooks não usam processamento paralelo para executar várias ações paralelamente.
  • Os runbooks não usam pontos de verificação para retomar o runbook em caso de erro.
  • Só é possível incluir os runbooks do PowerShell, do Fluxo de Trabalho do PowerShell e os runbooks gráficos como runbooks filhos usando o cmdlet Start-AzAutomationRunbook, que cria um novo trabalho.
  • Os runbooks não podem usar a instrução #Requires do PowerShell, pois ela não tem suporte na área restrita do Azure e nem no Hybrid Runbook Workers, e pode levar o trabalho a falhar.

Problemas conhecidos – Versão 5.1

A seguir estão os problemas atualmente conhecidos com os runbooks do PowerShell:

  • Os runbooks do PowerShell não conseguem recuperar um ativo variável não criptografado com um valor nulo.
  • Os runbooks do PowerShell não conseguem recuperar um ativo variável com *~* no nome.
  • Uma operação Get-Process em um loop dentro de um runbook do PowerShell pode falhar após cerca de 80 iterações.
  • Um runbook do PowerShell pode falhar se tentar gravar uma grande quantidade de dados no fluxo de saída de uma só vez. Geralmente, você pode contornar esse problema fazendo com que o runbook emita apenas as informações necessárias para trabalhar com objetos grandes. Por exemplo, em vez de usar Get-Process sem limitações, faça com que o cmdlet gere apenas os parâmetros necessários como em Get-Process | Select ProcessName, CPU.

Limitações – 7.1 (versão prévia)

  • Não há suporte para os cmdlets internos do PowerShell da Automação do Azure no Hybrid Runbook Worker do Linux. Você precisa importar o módulo automationassets no início do runbook Python para acessar as funções de recursos compartilhados (ativos) da conta de Automação.
  • Na versão de runtime 7 do PowerShell, as atividades do módulo não são extraídas para os módulos importados.
  • Não há suporte para o tipo de parâmetro de runbook PSCredential na versão de runtime do PowerShell 7.
  • O PowerShell 7.x não dá suporte a fluxos de trabalho. Confira este artigo para obter mais detalhes.
  • No momento, o PowerShell 7.x não dá suporte a runbooks assinados.
  • A integração do controle do código-fonte não dá suporte ao PowerShell 7.1. Além disso, os runbooks do PowerShell 7.1 no controle do código-fonte são criados na conta de Automação como Runtime 5.1.

Problemas conhecidos – 7.1 (versão prévia)

  • Não há suporte para a execução de scripts filho usando .\child-runbook.ps1 nesta versão prévia. Solução alternativa: use Start-AutomationRunbook (cmdlet interno) ou Start-AzAutomationRunbook (do módulo Az.Automation) para iniciar outro runbook por meio do runbook pai.
  • Não há suporte para propriedades de runbook que definem a preferência de registro em log no runtime 7 do PowerShell.
    Solução alternativa: definir explicitamente a preferência no início do runbook, como é mostrado abaixo –
        $VerbosePreference = "Continue"
    
        $ProgressPreference = "Continue"
    
  • Evite importar o módulo Az.Accounts para a versão 2.4.0 no runtime 7 do PowerShell, pois pode haver um comportamento inesperado ao usar essa versão na Automação do Azure.
  • Pode haver problemas de formatação com fluxos de saída de erro no trabalho em execução no runtime 7 do PowerShell.
  • Quando você importa um módulo do PowerShell 7.1 que depende de outros módulos, pode ocorrer que o botão de importação esteja cinza mesmo quando a versão do PowerShell 7.1 do módulo dependente está instalada. Por exemplo, a versão 4.20.0 de Az.Compute tem uma dependência de Az.Accounts ser > = 2.6.0. Esse problema ocorre quando um módulo dependente equivalente no PowerShell 5.1 não atende aos requisitos de versão. Por exemplo, a versão 5.1 do Az.Accounts era < 2.6.0.
  • Quando você inicia o runbook do PowerShell 7 usando o webhook, ele converte automaticamente o parâmetro de entrada do webhook em um JSON inválido.

Runbooks do Fluxo de Trabalho do PowerShell

Os runbooks do Fluxo de Trabalho do PowerShell são runbooks de texto baseados no Fluxo de Trabalho do Windows PowerShell. Você edita o código do runbook diretamente usando o editor de texto do portal do Azure. Também é possível usar qualquer editor de texto offline e importar o runbook na Automação do Azure.

Observação

O PowerShell 7.1 não dá suporte a runbooks de fluxo de trabalho.

Vantagens

  • Implemente toda a lógica complexa com o código do Fluxo de Trabalho do PowerShell.
  • Utiliza os pontos de verificação para retomar a operação caso ocorra um erro.
  • Utiliza o processamento paralelo para executar várias ações paralelamente.
  • Pode incluir outros runbooks gráficos e runbooks de Fluxo de Trabalho do PowerShell como runbooks filhos para criar fluxos de trabalho de alto nível.

Limitações

  • Você deve estar familiarizado com o Fluxo de Trabalho do PowerShell.
  • Os runbooks devem lidar com a complexidade adicional do Fluxo de Trabalho do PowerShell, como objetos desserializados.
  • Os runbooks demoram mais para iniciar do que os runbooks do PowerShell, pois precisam ser compilados antes da execução.
  • Você só pode incluir unbooks do PowerShell como runbooks filhos usando o cmdlet Start-AzAutomationRunbook.
  • Os runbooks não podem ser executados em um Hybrid Runbook Worker do Linux.

Runbooks Python

Os runbooks do Python são compilados no Python 2 e 3. Atualmente, os runbooks do Python 3 estão em versão prévia. Você pode editar o código do runbook diretamente usando o editor de texto do portal do Azure. Também é possível usar um editor de texto offline e importar o runbook na Automação do Azure.

Os runbooks do Python 3 têm suporte nas seguintes infraestruturas globais do Azure:

  • Azure global
  • Azure Government

Vantagens

  • As bibliotecas robustas do Python podem ser usadas.
  • Podem ser executados no Azure ou em Hybrid Runbook Workers.
  • Para o Python 2, há suporte para Hybrid Runbook Workers do Windows com o Python 2.7 instalado.
  • Para trabalhos em nuvem do Python 3, há suporte para a versão 3.8 do Python. Scripts e pacotes de qualquer versão 3.x poderão funcionar se o código for compatível entre diferentes versões.
  • Para trabalhos híbridos do Python 3 em computadores Windows, você pode optar por instalar qualquer versão 3.x que possa desejar usar.
  • Para trabalhos híbridos do Python 3 em computadores Linux, dependemos da versão do 3 do Python instalada no computador para executar o DSC OMSConfig e o Hybrid Worker do Linux. Versões diferentes deverão funcionar se não houver alterações interruptivas em assinaturas de método ou contratos entre as versões do Python 3.

Limitações

  • Você deve estar familiarizado com script do Python.
  • Para utilizar bibliotecas de terceiros, você deve importar os pacotes para a conta de Automação.
  • O uso do cmdlet Start-AutomationRunbook no PowerShell/Fluxo de trabalho do PowerShell para iniciar um runbook do Python 3 (versão prévia) não funciona. Você pode usar o cmdlet Start-AzAutomationRunbook do módulo Az.Automation ou o cmdlet Start-AzureRmAutomationRunbook do módulo AzureRm.Automation para contornar essa limitação. 
  • A Automação do Azure não dá suporte para sys.stderr.
  • O pacote automationassets do Python não está disponível em pypi.org, portanto, ele não está disponível para importação em um computador Windows.

Várias versões do Python

Para o Runbook Worker do Windows, ao executar um runbook do Python 2, ele primeiro procura a variável de ambiente PYTHON_2_PATH e valida se ela aponta para um arquivo executável válido. Por exemplo, se a pasta de instalação for C:\Python2, ele verifica se C:\Python2\python.exe é um caminho válido. Se não for encontrado, ele procurará a variável de ambiente PATH para fazer uma verificação semelhante.

Para o Python 3, ele procura a variável de ambiente PYTHON_3_PATH e, depois, volta para a variável de ambiente PATH.

Ao usar apenas uma versão do Python, você pode adicionar o caminho de instalação à variável PATH. Se você quiser usar as duas versões no Runbook Worker, defina PYTHON_2_PATH e PYTHON_3_PATH para a localização do módulo para essas versões.

Problemas conhecidos

Para trabalhos de nuvem, às vezes, os trabalhos do Python 3 falham com uma mensagem de exceção invalid interpreter executable path. Você poderá ver essa exceção se o trabalho estiver atrasado, iniciando mais de 10 minutos ou usando Start-AutomationRunbook para iniciar runbooks do Python 3. Se o trabalho estiver atrasado, reiniciar o runbook deverá ser suficiente. Os trabalhos híbridos devem funcionar sem nenhum problema se você estiver usando as seguintes etapas:

  1. Crie uma variável de ambiente chamada PYTHON_3_PATH e especifique a pasta de instalação. Por exemplo, caso a pasta de instalação seja C:\Python3, esse caminho precisará ser adicionado à variável.
  2. Reinicie o computador depois de definir a variável de ambiente.

Próximas etapas