Delen via


Voorbeeld: De Azure-bibliotheken gebruiken om resourcegroepen en resources weer te geven

In dit voorbeeld ziet u hoe u de Azure SDK-beheerbibliotheken in een Python-script gebruikt om twee taken uit te voeren:

  • Vermeld alle resourcegroepen in een Azure-abonnement.
  • Resources binnen een specifieke resourcegroep weergeven.

Alle opdrachten in dit artikel werken hetzelfde in Linux-/macOS-bash- en Windows-opdrachtshells, tenzij vermeld.

De equivalente Azure CLI-opdrachten worden verderop in dit artikel vermeld.

1: Uw lokale ontwikkelomgeving instellen

Als u dit nog niet hebt gedaan, stelt u een omgeving in waarin u deze code kunt uitvoeren. Hieronder volgen een aantal opties:

  • Configureer een virtuele Python-omgeving met behulp van venv of uw hulpprogramma naar keuze. Als u de virtuele omgeving wilt gaan gebruiken, moet u deze activeren. Om Python te installeren, raadpleeg Python installeren.
#!/bin/bash
# Create a virtual environment
python -m venv .venv
# Activate the virtual environment
source .venv/Scripts/activate # only required for Windows (Git Bash)

2: De Azure-bibliotheekpakketten installeren

Maak een bestand met de naam requirements.txt met de volgende inhoud:

azure-mgmt-resource
azure-identity

Installeer de vereisten in een terminal of opdrachtprompt waarbij de virtuele omgeving is geactiveerd:

pip install -r requirements.txt

3: Code schrijven om te werken met resourcegroepen

3a. Resourcegroepen weergeven in een abonnement

Maak een Python-bestand met de naam list_groups.py met de volgende code. In de opmerkingen worden de details uitgelegd:

# 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. Resources binnen een specifieke resourcegroep weergeven

Maak een Python-bestand met de naam list_resources.py met de volgende code. In de opmerkingen worden de details uitgelegd.

Standaard lijst de code bronnen op in "myResourceGroup". Als u een andere resourcegroep wilt gebruiken, stelt u de RESOURCE_GROUP_NAME omgevingsvariabele in op de gewenste groepsnaam.

# 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}}")

Verificatie in de code

Verderop in dit artikel meldt u zich aan bij Azure met de Azure CLI om de voorbeeldcode uit te voeren. Als uw account machtigingen heeft om resourcegroepen in uw Azure-abonnement te maken en weer te geven, wordt de code uitgevoerd.

Als u dergelijke code in een productiescript wilt gebruiken, kunt u omgevingsvariabelen instellen om een op een service-principal gebaseerde methode voor verificatie te gebruiken. Zie Python-apps verifiëren met Azure-services voor meer informatie. U moet ervoor zorgen dat de service-principal voldoende machtigingen heeft om resourcegroepen in uw abonnement te maken en weer te geven door deze een geschikte rol in Azure toe te wijzen; Bijvoorbeeld de rol Inzender voor uw abonnement.

4: De scripts uitvoeren

  1. Als u dat nog niet hebt gedaan, meldt u zich aan bij Azure met behulp van de Azure CLI:

    az login
    
  2. Stel de AZURE_SUBSCRIPTION_ID omgevingsvariabele in op uw abonnements-id. (U kunt de opdracht az account show uitvoeren en uw abonnements-id ophalen uit de id eigenschap in de uitvoer):

    export AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
    
  3. Alle resourcegroepen in het abonnement weergeven:

    python list_groups.py
    
  4. Alle resources in een resourcegroep weergeven:

    python list_resources.py
    

    Standaard lijst de code bronnen op in "myResourceGroup". Als u een andere resourcegroep wilt gebruiken, stelt u de RESOURCE_GROUP_NAME omgevingsvariabele in op de gewenste groepsnaam.

Ter referentie: equivalente Azure CLI-opdrachten

De volgende Azure CLI-opdracht somt resourcegroepen op in een abonnement:

az group list

De volgende opdracht bevat resources in de 'myResourceGroup' in de regio centralus (het location argument is nodig om een specifiek datacenter te identificeren):

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

Zie ook