Sdílet prostřednictvím


Kurz: Vytvoření runbooku Python 3.8

Tento kurz vás provede vytvořením runbooku Python 3.8 ve službě Azure Automation. Runbooky Pythonu se kompilují v pythonu 2.7 a 3.8. Kód runbooku můžete přímo upravit pomocí textového editoru na webu Azure Portal.

  • Vytvořte jednoduchý Pythonový runbook
  • Testování a publikování runbooku
  • Spustit a sledovat stav úlohy runbooku
  • Aktualizace runbooku tak, aby se spustil virtuální počítač Azure s parametry runbooku

Požadavky

K dokončení tohoto kurzu potřebujete:

  • Předplatné služby Azure. Pokud ho ještě nemáte, můžete si aktivovat výhody pro předplatitele MSDN nebo si zaregistrovat bezplatný účet.

  • Účet Automation pro uložení runbooku a ověření prostředků Azure pomocí spravovaných identit. Spravovaná identita se automaticky vytvoří za vás při vytváření účtu Automation.

  • Virtuální počítač Azure. Během tohoto kurzu spustíte a zastavíte tento počítač, takže by neměl být produkčním virtuálním počítačem.

Vytvořte nový runbook

Začnete vytvořením jednoduchého runbooku, který vypíše text Hello World.

  1. Na webu Azure Portal otevřete svůj účet Automation.

    Stránka účtu Automation poskytuje rychlý přehled o prostředcích v tomto účtu. Už byste měli mít nějaké prostředky. Většina těchto prostředků jsou moduly, které se automaticky zahrnují do nového účtu Automatizace.

    Měli byste mít také povolenou spravovanou identitu, která je uvedená v požadavcích. Můžete to ověřit zobrazením prostředku identity v části Nastavení účtu.

  2. Vyberte Runbooky pod Automatizací procesů a otevřete seznam runbooků.

  3. Vyberte Vytvořit runbook a vytvořte nový runbook.

  4. Dejte runbooku název MyFirstRunbook-Python.

  5. Jako typ runbooku vyberte Python.

  6. Vyberte Python 3.8 pro verzi modulu runtime.

  7. Vyberte Vytvořit pro vytvoření runbooku a otevření editoru textu.

Přidejte kód do runbooku

Teď přidáte jednoduchý příkaz pro tisk textu Hello World.

print("Hello World!")

Vyberte Uložit pro uložení runbooku.

Otestování runbooku

Než runbook publikujete a zpřístupníte ho v produkčním prostředí, chcete ho otestovat, abyste měli jistotu, že funguje správně. Při testování runbooku spustíte její verzi konceptu a interaktivně zobrazíte její výstup.

  1. Výběrem testovacího podokna otevřete podokno Test .

  2. Výběrem možnosti Start spusťte test. Tato možnost by měla být jedinou povolenou možností.

  3. Vytvoří se úloha runbooku a zobrazí se její stav. Stav úlohy začíná jako Ve frontě, což znamená, že čeká, až bude v cloudu dostupný pracovník runbooků. Změní se na Spuštění, když pracovník převezme úlohu, a pak na Běží, když runbook skutečně začne běžet.

  4. Po dokončení úlohy runbooku se zobrazí jeho výstup. V tomto případě byste měli vidět Hello World.

  5. Zavřete podokno Test a vraťte se na plátno.

Publikování a spuštění runbooku

Vytvořený runbook je stále ve fázi návrhu. Před spuštěním v produkčním prostředí ho musíte publikovat. Při publikování runbooku se aktuální publikovaná verze přepíše verzí konceptu. V takovém případě ještě nemáte publikovanou verzi, protože jste runbook právě vytvořili.

  1. Po zobrazení výzvy vyberte Publikovat pro publikování runbooku a poté po zobrazení výzvy vyberte Ano.

  2. Pokud zavřete podokno MyFirstRunbook_python, jste zpátky na stránce Runbook, kde byste měli vidět stav vytvářeníPublikováno.

  3. V seznamu vyberte název MyFirstRunbook-Python . Vrátíte se do podokna MyFirstRunbook-Python .

    Možnosti v horní části umožňují spustit runbook, prohlížet ho, upravovat, naplánovat jeho spuštění na určitý čas v budoucnosti a provádět další akce.

  4. Vyberte Start a po otevření podokna Spustit runbook vyberte OK.

  5. Otevře se podokno Úlohy pro úlohu runbooku, kterou jste vytvořili. Toto podokno můžete zavřít, ale necháme ho otevřené, abyste mohli sledovat průběh úlohy.

  6. Stav úlohy se zobrazí v poli Stav v části Základy. Hodnoty zde odpovídají stavovým hodnotám při testování runbooku.

  7. Jakmile se zobrazí stav runbooku Dokončeno, vyberte kartu Výstup . Na kartě Výstup uvidíte Hello World.

  8. Zavřete kartu Výstup .

  9. Vyberte kartu Všechny protokoly a zobrazte datové proudy pro úlohu runbooku. Ve výstupním proudu byste měli vidět jen Hello World. Tato karta ale může zobrazit další datové proudy pro úlohu runbooku, například Podrobné a Chybové, pokud do nich runbook zapíše.

  10. Zavřete podokno Úlohy a vraťte se do podokna MyFirstRunbook-Python .

  11. Výběrem prostředku Úlohy otevřete stránku prostředku Úlohy pro tento runbook. Tato stránka obsahuje seznam všech úloh vytvořených tímto runbookem. Měla by se zobrazit jenom jedna úloha, protože jste ji spustili jenom jednou.

  12. Tuto úlohu můžete vybrat, pokud chcete otevřít stejné podokno Job, které jste zobrazili, když jste spustili runbook. Toto podokno umožňuje vrátit se v čase a zobrazit podrobnosti o všech úlohách vytvořených pro konkrétní runbook.

Přidejte autentizaci pro správu prostředků Azure

Runbook jste otestovali a publikovali, ale zatím nedělá nic užitečného. Chcete, aby spravovaly prostředky Azure. Aby bylo možné spravovat prostředky, skript se musí ověřit.

Doporučený způsob ověřování je pomocí spravované identity. Když vytvoříte účet Azure Automation, automaticky se pro vás vytvoří spravovaná identita.

Pokud chcete tyto ukázky použít, přidejte do prostředku Python Packages účtu Automation následující balíčky. Soubory WHL pro tyto balíčky můžete přidat pomocí těchto odkazů.

Když tyto balíčky přidáte, vyberte verzi modulu runtime, která odpovídá vašemu runbooku.

Poznámka:

Následující kód byl testován s modulem runtime verze 3.8.

Spravovaná identita

Pokud chcete používat spravovanou identitu, ujistěte se, že je povolená:

  • Pokud chcete ověřit, jestli je pro účet Automation povolená spravovaná identita, přejděte naidentitu>> Automation a nastavte stavna Zapnuto.
  • Spravovaná identita má přiřazenou roli pro správu prostředku. V tomto příkladu správy prostředku virtuálního počítače přidejte roli Přispěvatel virtuálních počítačů do skupiny prostředků obsahující virtuální počítač. Další informace najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal.

Když máte nakonfigurovanou roli správy identit, můžete začít přidávat kód.

  1. Otevřete textový editor výběrem Upravit v podokně MyFirstRunbook-Python.

  2. Přidejte následující kód pro ověření do 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)

Přidání kódu pro vytvoření výpočetního klienta Pythonu a spuštění virtuálního počítače

Pokud chcete pracovat s virtuálními počítači Azure, vytvořte instanci klienta Azure Compute pro 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.')

Kde MyResourceGroup je název skupiny prostředků, která obsahuje virtuální počítač, a TestVM je název virtuálního počítače, který chcete spustit.

Znovu otestujte a spusťte runbook, abyste viděli, že spouští virtuální počítač.

Použití vstupních parametrů

Runbook aktuálně používá pevně zakódované hodnoty pro názvy skupiny prostředků a virtuálního počítače. Teď přidáme kód, který získá tyto hodnoty ze vstupních parametrů.

Proměnnou sys.argv použijete k získání hodnot parametrů. Do runbooku bezprostředně za ostatní import příkazy přidejte následující kód:

import sys

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

Tento kód naimportuje sys modul a vytvoří dvě proměnné, které budou obsahovat názvy skupin prostředků a virtuálních počítačů. Všimněte si, že prvek seznamu argumentů je sys.argv[0]název skriptu a uživatel ho nezadává.

Teď můžete změnit poslední dva řádky runbooku tak, aby místo pevně zakódovaných hodnot používaly hodnoty vstupních parametrů:

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

Když spustíte runbook v Pythonu, buď z panelu Test, nebo jako publikovaný runbook, můžete zadat hodnoty pro parametry na stránce Spustit runbook v části Parametry.

Jakmile začnete zadávat hodnotu do prvního pole, zobrazí se druhá hodnota a tak dále, abyste mohli zadat tolik hodnot parametrů, kolik je potřeba.

Hodnoty jsou k dispozici pro skript v sys.argv poli jako v kódu, který jste právě přidali.

Jako hodnotu prvního parametru zadejte název vaší skupiny prostředků a název virtuálního počítače, který se má spustit jako hodnota druhého parametru.

Zadání hodnot parametrů

Výběrem OK spusťte runbook. Runbook se spustí a zahájí zadaný virtuální počítač.

Zpracování chyb v Pythonu

K načtení různých výstupních proudů z Python runbooků, včetně streamů UPOZORNĚNÍ, CHYBY a LADĚNÍ, použijte následující konvence.

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

Následující příklad ukazuje tuto konvenci použitou v bloku try...except.

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

Další kroky