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:

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 bevat de code resources 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 toe te wijzen aan een juiste rol in Azure, 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):

    set 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 bevat de code resources 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 bevat resourcegroepen 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