Udostępnij za pośrednictwem


Samouczek: tworzenie elementu Runbook języka Python 3.8

Ten samouczek przeprowadzi Cię przez proces tworzenia elementu Runbook języka Python 3.8 w Azure Automation. Elementy Runbook języka Python kompilowane w językach Python 2.7 i 3.8 Możesz bezpośrednio edytować kod elementu Runbook przy użyciu edytora tekstów w Azure Portal.

  • Tworzenie prostego elementu Runbook języka Python
  • Testowanie i publikowanie elementu Runbook
  • Uruchamianie i śledzenie stanu zadania elementu Runbook
  • Aktualizowanie elementu Runbook w celu uruchomienia maszyny wirtualnej platformy Azure przy użyciu parametrów elementu Runbook

Wymagania wstępne

Do ukończenia tego samouczka niezbędne są następujące elementy:

  • Subskrypcja platformy Azure. Jeśli nie masz subskrypcji, możesz aktywować korzyści dla subskrybentów MSDN lub utworzyć bezpłatne konto.

  • Konto usługi Automation do przechowywania elementu Runbook i uwierzytelniania w zasobach platformy Azure przy użyciu tożsamości zarządzanych. Tożsamość zarządzana jest tworzona automatycznie podczas tworzenia konta usługi Automation.

  • Maszyna wirtualna platformy Azure. W tym samouczku uruchomisz i zatrzymasz tę maszynę, więc nie powinna to być produkcyjna maszyna wirtualna.

Tworzenie nowego elementu Runbook

Zacznij od utworzenia prostego elementu Runbook, który wyprowadza tekst Hello world.

  1. W witrynie Azure Portal otwórz konto usługi Automation.

    Strona konta usługi Automation umożliwia szybki przegląd zasobów na tym koncie. Konto powinno mieć już pewne elementy zawartości. Większość z nich to moduły, które są automatycznie uwzględniane na nowym koncie usługi Automation.

    Należy również mieć włączoną tożsamość zarządzaną wymienioną w wymaganiach wstępnych. Możesz to sprawdzić, wyświetlając zasób Tożsamości w obszarze Ustawienia konta.

  2. Wybierz pozycję Elementy Runbook w obszarze Automatyzacja procesów , aby otworzyć listę elementów Runbook.

  3. Wybierz pozycję Utwórz element Runbook, aby utworzyć nowy element Runbook.

  4. Nadaj elementowi Runbook nazwę MyFirstRunbook-Python.

  5. Wybierz język Python dla typu elementu Runbook.

  6. Wybierz język Python 3.8 dla wersji środowiska uruchomieniowego.

  7. Wybierz pozycję Utwórz , aby utworzyć element Runbook i otworzyć edytor tekstu.

Dodawanie kodu do elementu Runbook

Teraz dodasz proste polecenie, aby wydrukować tekst Hello World.

print("Hello World!")

Wybierz pozycję Zapisz , aby zapisać element Runbook.

Testowanie elementu runbook

Przed opublikowaniem elementu runbook w celu udostępnienia go w środowisku produkcyjnym warto go przetestować, aby upewnić się, że działa prawidłowo. Podczas testowania elementu Runbook uruchamiasz jego wersję roboczą i interaktywnie wyświetlasz jego dane wyjściowe.

  1. Wybierz pozycję Okienko testowania , aby otworzyć okienko Test .

  2. Wybierz pozycję Rozpocznij , aby rozpocząć test. Ta opcja powinna być jedyną włączoną opcją.

  3. Zostanie utworzone zadanie elementu Runbook i pojawi się jego stan. Stan zadania jest uruchamiany jako W kolejce, co oznacza, że oczekuje na udostępnienie procesu roboczego elementu runbook w chmurze. Zmienia się na Uruchamianie , gdy proces roboczy twierdzi, że zadanie, a następnie Uruchomione , gdy element Runbook faktycznie uruchamia się.

  4. Po zakończeniu zadania elementu Runbook zostaną wyświetlone jego dane wyjściowe. W takim przypadku powinien zostać wyświetlony komunikat Hello World.

  5. Zamknij okienko Test , aby wrócić do kanwy.

Publikowanie i uruchamianie elementu Runbook

Utworzony element Runbook jest nadal w trybie roboczym. Musisz go opublikować, aby można było go uruchomić w środowisku produkcyjnym. Podczas publikowania elementu Runbook należy zastąpić istniejącą opublikowaną wersję wersją roboczą. W takim przypadku nie masz jeszcze opublikowanej wersji, ponieważ właśnie utworzono element Runbook.

  1. Wybierz pozycję Publikuj , aby opublikować element Runbook, a następnie pozycję Tak po wyświetleniu monitu.

  2. Jeśli zamkniesz okienko MyFirstRunbook_python , wrócisz do strony Elementy Runbook , na której powinien zostać wyświetlony stan tworzeniaopublikowanych elementów.

  3. Wybierz nazwę MyFirstRunbook-Python na liście. Nastąpi powrót do okienka MyFirstRunbook-Python .

    Opcje u góry umożliwiają uruchamianie elementu Runbook, wyświetlanie elementu Runbook, edytowanie elementu Runbook, planowanie jego uruchamiania w przyszłości i innych akcji.

  4. Wybierz przycisk Start , a następnie wybierz przycisk OK po otwarciu okienka Uruchom element Runbook .

  5. Zostanie otwarte okienko Zadanie dla utworzonego zadania elementu Runbook. Możesz zamknąć to okienko, ale pozostawmy je otwarte, aby można było watch postęp zadania.

  6. Stan zadania jest wyświetlany w polu Stan w obszarze Podstawy. Wartości w tym miejscu są zgodne z wartościami stanu podczas testowania elementu Runbook.

  7. Gdy stan elementu Runbook zmieni się na Ukończono, wybierz kartę Dane wyjściowe . Na karcie Dane wyjściowe zobaczysz wartość Hello World.

  8. Zamknij kartę Dane wyjściowe .

  9. Wybierz kartę Wszystkie dzienniki , aby wyświetlić strumienie dla zadania elementu Runbook. Powinny być widoczne Hello World tylko w strumieniu wyjściowym. Jednak ta karta może wyświetlać inne strumienie dla zadania elementu Runbook, takie jak Pełne i Błąd, jeśli element Runbook zapisuje w nich dane.

  10. Zamknij okienko Zadania , aby powrócić do okienka MyFirstRunbook-Python .

  11. Wybierz pozycję Zasób zadań , aby otworzyć stronę Zasobów zadań dla tego elementu Runbook. Ta strona zawiera listę wszystkich zadań utworzonych przez ten element Runbook. Ponieważ uruchomiono zadanie tylko raz, powinno być widoczne tylko jedno zadanie.

  12. Możesz wybrać to zadanie, aby otworzyć to samo okienko zadania , które zostało wyświetlone podczas uruchamiania elementu Runbook. To okienko umożliwia powrót w czasie i wyświetlenie szczegółów każdego zadania, które zostało utworzone dla określonego elementu Runbook.

Dodawanie uwierzytelniania w celu zarządzania zasobami platformy Azure

Element runbook został przetestowany i opublikowany, ale jak do tej pory nie wykonuje on żadnych użytecznych czynności. Powinien zarządzać zasobami platformy Azure. Aby zarządzać zasobami, skrypt musi się uwierzytelnić.

Zalecanym sposobem uwierzytelniania jest tożsamość zarządzana. Podczas tworzenia konta Azure Automation automatycznie jest tworzona tożsamość zarządzana.

Aby użyć tych przykładów, dodaj następujące pakiety w zasobie Pakiety języka Python konta usługi Automation. Pliki WHL dla tych pakietów można dodać za pomocą tych linków.

Po dodaniu tych pakietów wybierz wersję środowiska uruchomieniowego zgodną z elementem Runbook.

Uwaga

Poniższy kod został przetestowany przy użyciu środowiska uruchomieniowego w wersji 3.8.

Tożsamość zarządzana

Aby użyć tożsamości zarządzanej, upewnij się, że jest ona włączona:

  • Aby sprawdzić, czy tożsamość zarządzana jest włączona dla konta usługi Automation, przejdź do pozycjiTożsamośćustawień>konta> usługi Automation i ustaw wartość Wł.
  • Tożsamość zarządzana ma przypisaną rolę do zarządzania zasobem. W tym przykładzie zarządzania zasobem maszyny wirtualnej dodaj rolę "Współautor maszyny wirtualnej" w grupie zasobów zawierającej maszynę wirtualną. Aby uzyskać więcej informacji, zobacz Przypisywanie ról platformy Azure przy użyciu Azure Portal

Po skonfigurowaniu roli zarządzania tożsamością można rozpocząć dodawanie kodu.

  1. Otwórz edytor tekstu, wybierając pozycję Edytuj w okienku MyFirstRunbook-Python .

  2. Dodaj następujący kod, aby uwierzytelnić się na platformie 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)

Dodawanie kodu w celu utworzenia klienta obliczeniowego języka Python i uruchomienia maszyny wirtualnej

Aby pracować z maszynami wirtualnymi platformy Azure, utwórz wystąpienie klienta usługi Azure Compute dla języka 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.')

Gdzie MyResourceGroup to nazwa grupy zasobów, która zawiera maszynę wirtualną, i TestVM jest nazwą maszyny wirtualnej, którą chcesz uruchomić.

Przetestuj i uruchom ponownie element Runbook, aby zobaczyć, że uruchamia maszynę wirtualną.

Używanie parametrów wejściowych

Element Runbook używa obecnie zakodowanych na sztywno wartości nazw grupy zasobów i maszyny wirtualnej. Teraz dodajmy kod, który pobiera te wartości z parametrów wejściowych.

Zmienna sys.argv służy do pobierania wartości parametrów. Dodaj następujący kod do elementu Runbook bezpośrednio po innych import instrukcjach:

import sys

resource_group_name = str(sys.argv[1])
vm_name = str(sys.argv[2])

Ten kod importuje sys moduł i tworzy dwie zmienne do przechowywania nazw grup zasobów i maszyn wirtualnych. Zwróć uwagę, że element listy argumentów , sys.argv[0]jest nazwą skryptu i nie jest wprowadzany przez użytkownika.

Teraz możesz zmodyfikować ostatnie dwa wiersze elementu Runbook, aby użyć wartości parametrów wejściowych zamiast używać wartości zakodowanych na podstawie kodu:

async_vm_start = compute_client.virtual_machines.begin_start(
    resource_group_name, vm_name)
async_vm_start.wait()

Po uruchomieniu elementu Runbook języka Python w okienku Test lub jako opublikowany element Runbook można wprowadzić wartości parametrów na stronie Uruchom element Runbook w obszarze Parametry.

Po rozpoczęciu wprowadzania wartości w pierwszym polu zostanie wyświetlona druga i tak dalej, aby w razie potrzeby można było wprowadzić dowolną liczbę wartości parametrów.

Wartości są dostępne dla skryptu w tablicy sys.argv , tak jak w właśnie dodanym kodzie.

Wprowadź nazwę grupy zasobów jako wartość pierwszego parametru i nazwę maszyny wirtualnej, która ma być uruchamiana jako wartość drugiego parametru.

Wprowadź wartości parametrów

Wybierz przycisk OK , aby uruchomić element Runbook. Element Runbook jest uruchamiany i uruchamia określoną maszynę wirtualną.

Obsługa błędów w języku Python

Można również użyć następujących konwencji, aby pobrać różne strumienie z elementów Runbook języka Python, w tym OSTRZEŻENIE, BŁĄD i strumienie DEBUGOWANIA.

print("Hello World output")
print("ERROR: - Hello world error")
print("WARNING: - Hello world warning")
print("DEBUG: - Hello world debug")
print("VERBOSE: - Hello world verbose")

W poniższym przykładzie pokazano tę konwencję używaną try...except w bloku.

try:
    raise Exception('one', 'two')
except Exception as detail:
    print ('ERROR: Handling run-time error:', detail)

Następne kroki