Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tutorial explica a criação de um runbook do Python 3.8 na Automação do Azure. Os runbooks do Python são compilados em Python 2.7 e 3.8 Você pode editar diretamente o código do runbook usando o editor de texto no portal do Azure.
- Criar um runbook simples do Python
- Testar e publicar o runbook
- Executar e acompanhar o status do trabalho do runbook
- Atualizar o runbook para iniciar uma máquina virtual do Azure com parâmetros do runbook
Pré-requisitos
Para concluir este tutorial, você precisará:
Uma assinatura do Azure. Se você ainda não tiver um, poderá ativar os benefícios do assinante do MSDN ou inscrever-se em uma conta gratuita.
Uma Conta de automação para manter o runbook e se autenticar nos recursos do Azure usando Identidades Gerenciadas. Uma identidade gerenciada é criada automaticamente para você ao criar a conta de Automação.
Uma máquina virtual do Azure. Durante este tutorial, você iniciará e interromperá esse computador, portanto, ele não deve ser uma VM de produção.
Criar um novo runbook
Você começa criando um runbook simples que gera o texto Hello World.
No portal do Azure, abra sua conta de Automação.
A página de conta de Automação fornece uma exibição rápida dos recursos nessa conta. Você já deve ter alguns ativos. A maioria desses ativos são os módulos que são incluídos automaticamente em uma nova conta de Automação.
Você também deve ter uma identidade gerenciada habilitada mencionada nos pré-requisitos. Você pode verificar isso exibindo o recurso Identidade nas Configurações da Conta.
Selecione Runbooks em Automação de Processos para abrir a lista de runbooks.
Selecione Criar um runbook para criar um novo runbook.
Dê ao runbook o nome MyFirstRunbook-Python.
Selecione Python para escolher o Tipo de runbook.
Selecione Python 3.8 para a versão do Runtime.
Selecione Criar para criar o runbook e abra o editor textual.
Adicionar código ao runbook
Agora você adiciona um comando simples para imprimir o texto Hello World.
print("Hello World!")
Clique em Salvar para salvar o runbook.
Testar o runbook
Antes de publicar o runbook para disponibilizá-lo na produção, teste-o para verificar se ele funciona corretamente. Ao testar um runbook, você executa sua versão de rascunho e exibe a saída interativamente.
Selecione o painel Teste para abrir o painel Teste.
Selecione Iniciar para iniciar o teste. Essa opção deve ser a única opção habilitada.
Um trabalho de runbook é criado e seu status é exibido. O status do trabalho é iniciado como Na fila, indicando que ele está aguardando um trabalho de runbook ficar disponível na nuvem. O status será alterado para Iniciando quando uma função de trabalho reivindicar o trabalho. Depois para Em execução quando o runbook realmente iniciar a execução.
Quando o trabalho do runbook é concluído, sua saída é exibida. Nesse caso, você deve ver
Hello World.Feche o painel Teste para retornar ao quadro.
Publicar e iniciar o runbook
O runbook criado ainda está em modo de rascunho. Antes de executá-lo em produção, você precisa publicá-lo. Quando você publica um runbook, substitui a versão Publicada existente pela versão de rascunho. Neste caso, ainda não há uma versão publicada porque você acabou de criar o runbook.
Selecione Publicar para publicar o runbook e sim quando solicitado.
Se você fechar o painel MyFirstRunbook_python, voltará à página Runbooks, em que deverá ver um Status de Criação de Publicado.
Selecione o nome MyFirstRunbook-Python na lista, você voltará para o painel MyFirstRunbook-Python .
As opções na parte superior permitem que você inicie o runbook, visualize o runbook, edite o runbook, agende-o para começar em algum momento no futuro, entre outras ações.
Selecione Iniciar e depois selecione OK quando abrir o painel Iniciar Runbook.
Um painel chamado Trabalho será aberto para o trabalho de runbook criado. Você pode fechar este painel, mas vamos mantê-lo aberto, para que você possa observar o progresso do trabalho.
O status do trabalho é mostrado no campo Status em Essentials. Os valores aqui correspondem aos valores de status no teste do runbook.
Depois que o status do runbook mostrar Concluído, selecione a guia Saída. Na guia Saída, é possível ver
Hello World.Feche a guia Saída.
Selecione a guia Todos os Logs para exibir fluxos do trabalho de runbook. Você só deve ver
Hello Worldno fluxo de saída. No entanto, essa guia poderá mostrar outros fluxos de um trabalho de runbook, como Detalhado e Erro, caso o runbook faça uma gravação neles.Feche o painel Trabalhos para retornar ao painel MyFirstRunbook-Python .
Selecione o recurso Trabalhos para abrir a página de recursos Trabalhos desse runbook. Esta página lista todos os trabalhos criados por este runbook. Você deve ver apenas um trabalho listado, já que executou o trabalho apenas uma vez.
É possível selecionar esse trabalho para abrir o mesmo painel Trabalho que foi exibido ao iniciar o runbook. Essa janela permite que você retroceda e visualize os detalhes de qualquer tarefa que tenha sido criada para um runbook específico.
Adicionar autenticação para gerenciar recursos do Azure
Você testou e publicou seu runbook, mas, até o momento, ele não faz nada útil. Você deseja que ele gerencie recursos do Azure. Para gerenciar recursos, o script precisa ser autenticado.
A maneira recomendada de autenticar é com a identidade gerenciada. Quando você cria uma Conta de Automação do Azure, uma identidade gerenciada é criada automaticamente para você.
Para usar esses exemplos, adicione os seguintes pacotes no recurso Pacotes Python da Conta de Automação. Você pode adicionar os arquivos WHL para esses pacotes com esses links.
Ao adicionar esses pacotes, selecione uma versão de runtime que corresponda ao runbook.
Observação
O código a seguir foi testado com o runtime versão 3.8.
Identidade gerenciada
Para usar a identidade gerenciada, verifique se ela está habilitada:
- Para verificar se a identidade gerenciada está habilitada para a conta de Automação, acesse > da >Identidade e defina o Status como Ativado.
- A identidade gerenciada tem uma função atribuída para gerenciar o recurso. Neste exemplo de gerenciamento de um recurso de máquina virtual, adicione a função "Colaborador da Máquina Virtual" no grupo de recursos que contém a Máquina Virtual. Para obter mais informações, consulte Atribuir funções do Azure usando o portal do Azure
Com a função de gerenciamento de identidade configurada, você pode começar a adicionar código.
Abra o editor textual selecionando Editar no painel MyFirstRunbook-Python .
Adicione o seguinte código para autenticar no Azure:
#!/usr/bin/env python3
from azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClient
SUBSCRIPTION_ID="YOUR_SUBSCRIPTION_ID"
azure_credential = DefaultAzureCredential()
import os
import requests
# printing environment variables
endpoint = os.getenv('IDENTITY_ENDPOINT')+"?resource=https://management.azure.com/"
identityHeader = os.getenv('IDENTITY_HEADER')
payload={}
headers = {
'X-IDENTITY-HEADER' : identityHeader,
'Metadata' : True
}
response = requests.get(endpoint, headers)
print(response.text)
Adicionar código para criar o cliente de computação do Python e iniciar a VM
Para trabalhar com VMs do Azure, crie uma instância do cliente de Computação do Azure para Python.
# Initialize client with the credential and subscription.
compute_client = ComputeManagementClient(
azure_credential,
SUBSCRIPTION_ID
)
print('\nStart VM')
async_vm_start = compute_client.virtual_machines.begin_start(
"MyResourceGroup", "TestVM")
async_vm_start.wait()
print('\nFinished start.')
Onde MyResourceGroup está o nome do grupo de recursos que contém a VM e TestVM é o nome da VM que você deseja iniciar.
Teste e execute o runbook novamente para ver se ele inicia a VM.
Usar parâmetros de entrada
Atualmente, o runbook usa valores embutidos em código para os nomes do grupo de recursos e da VM. Agora vamos adicionar um código que obtém esses valores de parâmetros de entrada.
Use a sys.argv variável para obter os valores de parâmetro. Adicione o seguinte código ao runbook imediatamente após as outras import instruções:
import sys
resource_group_name = str(sys.argv[1])
vm_name = str(sys.argv[2])
Esse código importa o sys módulo e cria duas variáveis para manter o grupo de recursos e os nomes de VM. Observe que o elemento da lista de argumentos é sys.argv[0]o nome do script e não é inserido pelo usuário.
Agora você pode modificar as duas últimas linhas do runbook para usar os valores de parâmetro de entrada em vez de usar valores codificados em código:
async_vm_start = compute_client.virtual_machines.begin_start(
resource_group_name, vm_name)
async_vm_start.wait()
Ao iniciar um runbook do Python, no painel Teste ou como um runbook publicado, você pode inserir os valores para parâmetros na página Iniciar Runbook em Parâmetros.
Depois de começar a inserir um valor na primeira caixa, um segundo será exibido e assim por diante, para que você possa inserir quantos valores de parâmetro forem necessários.
Os valores estão disponíveis para o script na sys.argv matriz, como no código que você acabou de adicionar.
Insira o nome do grupo de recursos como o valor do primeiro parâmetro, e o nome da máquina virtual (VM) a ser iniciada como o valor do segundo parâmetro.
Selecione OK para iniciar o runbook. O runbook é executado e inicia a VM especificada.
Tratamento de erros no Python
Você também pode usar as convenções a seguir para recuperar vários fluxos de seus runbooks do Python, incluindo fluxos WARNING, ERROR e DEBUG.
print("Hello World output")
print("ERROR: - Hello world error")
print("WARNING: - Hello world warning")
print("DEBUG: - Hello world debug")
print("VERBOSE: - Hello world verbose")
O exemplo a seguir mostra essa convenção usada em um try...except bloco.
try:
raise Exception('one', 'two')
except Exception as detail:
print ('ERROR: Handling run-time error:', detail)
Próximas etapas
Para aprender mais sobre os tipos de runbook, bem como as vantagens e as limitações deles, confira Tipos de runbook da Automação do Azure.
Para saber mais sobre como desenvolver para o Azure com Python, consulte o Azure para desenvolvedores do Python.
Para visualizar runbooks de exemplo do Python 3, consulte o repositório GitHub da Automação do Azure.