Příklad: Použití knihoven Azure k výpisu skupin prostředků a prostředků

Tento příklad ukazuje, jak pomocí knihoven pro správu sady Azure SDK ve skriptu Pythonu provádět dvě úlohy:

  • Zobrazí seznam všech skupin prostředků v předplatném Azure.
  • Vypíše prostředky v rámci konkrétní skupiny prostředků.

Všechny příkazy v tomto článku fungují stejně v prostředích Bash pro Linux/macOS a Windows, pokud není uvedeno.

Ekvivalentní příkazy Azure CLI jsou uvedeny dále v tomto článku.

1: Nastavení místního vývojového prostředí

Pokud jste to ještě neudělali, nastavte prostředí, ve kterém můžete tento kód spustit. Zde je uvedeno několik možností:

  • Nakonfigurujte virtuální prostředí Pythonu pomocí venv libovolného nástroje nebo nástroje. Virtuální prostředí můžete vytvořit místně nebo v Azure Cloud Shellu a spustit ho tam. Nezapomeňte aktivovat virtuální prostředí, abyste ho mohli začít používat.

  • Použijte prostředí Conda.

  • Použijte vývojový kontejner v editoru Visual Studio Code nebo GitHub Codespaces.

2: Instalace balíčků knihovny Azure

Vytvořte soubor s názvem requirements.txt s následujícím obsahem:

azure-mgmt-resource
azure-identity

V terminálu nebo příkazovém řádku s aktivovaným virtuálním prostředím nainstalujte požadavky:

pip install -r requirements.txt

3: Psaní kódu pro práci se skupinami prostředků

3a. Výpis skupin prostředků v předplatném

Vytvořte soubor Pythonu s názvem list_groups.py s následujícím kódem. Komentáře vysvětlují podrobnosti:

# Import the needed credential and management objects from the libraries.
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
import os

# Acquire a credential object.
credential = DefaultAzureCredential()

# Retrieve subscription ID from environment variable.
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]

# Obtain the management object for resources.
resource_client = ResourceManagementClient(credential, subscription_id)

# Retrieve the list of resource groups
group_list = resource_client.resource_groups.list()

# Show the groups in formatted output
column_width = 40

print("Resource Group".ljust(column_width) + "Location")
print("-" * (column_width * 2))

for group in list(group_list):
    print(f"{group.name:<{column_width}}{group.location}")

3b. Výpis prostředků v rámci konkrétní skupiny prostředků

Vytvořte soubor Pythonu s názvem list_resources.py s následujícím kódem. Komentáře vysvětlují podrobnosti.

Ve výchozím nastavení obsahuje kód prostředky v myResourceGroup. Pokud chcete použít jinou skupinu prostředků, nastavte RESOURCE_GROUP_NAME proměnnou prostředí na požadovaný název skupiny.

# Import the needed credential and management objects from the libraries.
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
import os

# Acquire a credential object.
credential = DefaultAzureCredential()

# Retrieve subscription ID from environment variable.
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]

# Retrieve the resource group to use, defaulting to "myResourceGroup".
resource_group = os.getenv("RESOURCE_GROUP_NAME", "myResourceGroup")

# Obtain the management object for resources.
resource_client = ResourceManagementClient(credential, subscription_id)

# Retrieve the list of resources in "myResourceGroup" (change to any name desired).
# The expand argument includes additional properties in the output.
resource_list = resource_client.resources.list_by_resource_group(
    resource_group, expand = "createdTime,changedTime")

# Show the groups in formatted output
column_width = 36

print("Resource".ljust(column_width) + "Type".ljust(column_width)
    + "Create date".ljust(column_width) + "Change date".ljust(column_width))
print("-" * (column_width * 4))

for resource in list(resource_list):
    print(f"{resource.name:<{column_width}}{resource.type:<{column_width}}"
       f"{str(resource.created_time):<{column_width}}{str(resource.changed_time):<{column_width}}")

Ověřování v kódu

Později v tomto článku se přihlásíte k Azure pomocí Azure CLI a spustíte vzorový kód. Pokud má váš účet oprávnění k vytváření a výpisu skupin prostředků ve vašem předplatném Azure, kód se úspěšně spustí.

Pokud chcete tento kód použít v produkčním skriptu, můžete nastavit proměnné prostředí tak, aby pro ověřování používaly metodu založenou na instančním objektu. Další informace najdete v tématu Ověřování aplikací v Pythonu pomocí služeb Azure. Musíte zajistit, aby instanční objekt má dostatečná oprávnění k vytvoření a výpisu skupin prostředků ve vašem předplatném tím, že mu v Azure přiřadíte odpovídající roli, například roli Přispěvatel ve vašem předplatném.

4: Spuštění skriptů

  1. Pokud jste to ještě neudělali, přihlaste se k Azure pomocí Azure CLI:

    az login
    
  2. Nastavte proměnnou AZURE_SUBSCRIPTION_ID prostředí na ID vašeho předplatného. (Příkaz az account show můžete spustit a získat ID předplatného id z vlastnosti ve výstupu):

    set AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
    
  3. Výpis všech skupin prostředků v předplatném:

    python list_groups.py
    
  4. Výpis všech prostředků ve skupině prostředků:

    python list_resources.py
    

    Ve výchozím nastavení obsahuje kód prostředky v myResourceGroup. Pokud chcete použít jinou skupinu prostředků, nastavte RESOURCE_GROUP_NAME proměnnou prostředí na požadovaný název skupiny.

Referenční informace: Ekvivalentní příkazy Azure CLI

Následující příkaz Azure CLI vypíše skupiny prostředků v předplatném:

az group list

Následující příkaz vypíše prostředky v rámci skupiny myResourceGroup v oblasti centralus ( location argument je nezbytný k identifikaci konkrétního datového centra):

az resource list --resource-group myResourceGroup --location centralus

Viz také