Kurz: Vytvoření runbooku Pythonu 3.8

Tento kurz vás provede vytvořením runbooku Pythonu 3.8 v Azure Automation. Runbooky Pythonu se kompilují v rámci Pythonu 2.7 a 3.8. Kód runbooku můžete upravit přímo pomocí textového editoru v Azure Portal.

  • Vytvoření jednoduchého runbooku Pythonu
  • Testování a publikování runbooku
  • Spuštění a sledování stavu úlohy runbooku
  • Aktualizace runbooku tak, aby spustil virtuální počítač Azure s parametry runbooku

Požadavky

Pro absolvování tohoto kurzu potřebujete:

  • Předplatné Azure. Pokud ještě žádné 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 pro vás automaticky vytvoří při vytváření účtu Automation.

  • Virtuální počítač Azure. Během tohoto kurzu tento počítač spustíte a zastavíte, takže by se neměl jednat o produkční virtuální počítač.

Vytvoření nového runbooku

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

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

    Stránka účtu Automation nabízí rychlý přehled prostředků v tomto účtu. Už byste tam měli mít nějaké prostředky. Většina z těchto assetů jsou moduly, které jsou automaticky obsažené v novém účtu Automation.

    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. Výběrem runbooků v části Automatizace procesů 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. Jako verzi modulu runtime vyberte Python 3.8.

  7. Výběrem možnosti Vytvořit vytvořte runbook a otevřete textový editor.

Přidání kódu do runbooku

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

print("Hello World!")

Výběrem možnosti Uložit runbook uložte.

Otestování runbooku

Před publikováním runbooku, které ho zpřístupní v produkčním prostředí, byste měli runbook otestovat a ujistit se, že funguje správně. Při testování runbooku spustíte jeho verzi konceptu a interaktivně zobrazíte jeho výstup.

  1. Výběrem možnosti Testovací podokno otevřete podokno Test .

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

  3. Vytvoří se úloha runbooku a její stav se zobrazí. Stav úlohy se spustí jako Ve frontě, což znamená, že čeká na zpřístupnění pracovního procesu runbooku v cloudu. Změní se na Spouštění , když pracovní proces deklaruje úlohu, a pak na Spuštěno , když se runbook skutečně spustí.

  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

Sada Runbook, kterou jste vytvořili, je stále v režimu konceptu. Před spuštěním v produkčním prostředí ho musíte publikovat. Při publikování runbooku přepíšete stávající publikovanou verzi konceptem. V tomto případě ještě nemáte publikovanou verzi, protože jste runbook právě vytvořili.

  1. Výběrem možnosti Publikovat runbook publikujte a po zobrazení výzvy vyberte Ano .

  2. Pokud zavřete podokno MyFirstRunbook_python , vrátíte se na stránku Runbooky , kde by se měl zobrazit Stav vytvářenípublikováno.

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

    Možnosti v horní části umožňují spustit runbook, zobrazit ho, upravit runbook, naplánovat jeho spuštění někdy v budoucnosti a další akce.

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

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

  6. Stav úlohy se zobrazí v poli Stav v části Základy. Zde uvedené hodnoty odpovídají hodnotám stavu při testování runbooku.

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

  8. Zavřete kartu Výstup .

  9. Vyberte kartu Všechny protokoly a zobrazte datové proudy pro úlohu runbooku. Měli byste vidět Hello World pouze ve výstupním datovém proudu. Na této kartě se ale můžou zobrazit další datové proudy pro úlohu runbooku, například podrobné a chybové, pokud do nich runbook zapisuje.

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

  11. Vyberte Zdroj úloh a otevřete stránku Zdroje úloh pro tento runbook. Tato stránka obsahuje seznam všech úloh vytvořených tímto runbookem. Ve výpisu by se měla zobrazit pouze jedna úloha, protože jste ji spustili jenom jednou.

  12. Výběrem této úlohy můžete otevřít stejné podokno Úloha , které jste zobrazili při spuštění runbooku. Toto podokno umožňuje vrátit se v čase a zobrazit podrobnosti o libovolné úloze, která byla vytvořena pro konkrétní runbook.

Přidání ověřování pro správu prostředků Azure

Runbook jste otestovali a publikovali, ale zatím nedělá nic užitečného. Chcete po něm, aby spravoval prostředky Azure. Ke správě prostředků musí skript provést ověření.

Doporučeným způsobem ověřování je spravovaná identita. 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žít spravovanou identitu, ujistěte se, že je povolená:

  • Pokud chcete ověřit, jestli je spravovaná identita pro účet Automation povolená, přejděte dočásti Nastavení> účtu Automation>Identita a nastavte Stav na 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ů, která obsahuje virtuální počítač. Další informace najdete v tématu Přiřazení rolí Azure pomocí Azure Portal

S nakonfigurovanou rolí správa identity můžete začít přidávat kód.

  1. Otevřete textový editor tak, že v podokně MyFirstRunbook-Pythonvyberete Upravit.

  2. Přidejte následující kód pro ověření v 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 runbook otestujte a spusťte, abyste zjistili, že virtuální počítač spustí.

Použití vstupních parametrů

Runbook v současné době 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ů.

K získání hodnot parametrů použijete sys.argv proměnnou . Ihned za ostatní import příkazy přidejte do runbooku následující kód:

import sys

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

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

Teď můžete upravit 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 Pythonu z podokna Test nebo jako publikovaný runbook, můžete zadat hodnoty parametrů 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 potřebujete.

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

Zadejte název skupiny prostředků jako hodnotu prvního parametru 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 runbook spusťte. Runbook se spustí a spustí virtuální počítač, který jste zadali.

Zpracování chyb v Pythonu

K načtení různých datových proudů z runbooků Pythonu, včetně streamů UPOZORNĚNÍ, CHYB a LADĚNÍ, můžete použít také 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 try...except v bloku.

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

Další kroky