Delen via


Voorbeeld: De Azure-bibliotheken gebruiken om een resourcegroep te maken

In dit voorbeeld ziet u hoe u de Azure SDK-beheerbibliotheken in een Python-script gebruikt om een resourcegroep te maken. (De equivalente Azure CLI-opdracht wordt verderop in dit artikel gegeven. Als u liever Azure Portal gebruikt, raadpleegt u Resourcegroepen maken.)

Alle opdrachten in dit artikel werken hetzelfde in Linux-/macOS-bash- en Windows-opdrachtshells, tenzij 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. Install Python om Python te 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)
    
  • Gebruik een conda-omgeving. Zie Miniconda installeren om Conda te installeren.

  • Gebruik een Dev Container- in Visual Studio Code- of GitHub Codespaces.

2: De Azure-bibliotheekpakketten installeren

  1. Maak in uw console een requirements.txt bestand met de beheerbibliotheken die in dit voorbeeld worden gebruikt:

    azure-mgmt-resource
    azure-identity
    
  2. Installeer de vereisten in de console waarop de virtuele omgeving is geactiveerd:

    pip install -r requirements.txt
    

3. Omgevingsvariabelen instellen

In deze stap stelt u omgevingsvariabelen in voor gebruik in de code in dit artikel. De code gebruikt de os.environ methode om de waarden op te halen.

#!/bin/bash
export AZURE_RESOURCE_GROUP_NAME=<ResourceGroupName> # Change to your preferred resource group name
export LOCATION=<Location> # Change to your preferred region
export AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv)

4: Code schrijven om een resourcegroep te maken

In deze stap maakt u een Python-bestand met de naam provision_blob.py met de volgende code. Dit Python-script maakt gebruik van de Azure SDK voor Python-beheerbibliotheken om een resourcegroep in uw Azure-abonnement te maken.

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

# Import the needed credential and management objects from the libraries.
import os

from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient

# Acquire a credential object using DevaultAzureCredential.
credential = DefaultAzureCredential()

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

# Retrieve resource group name and location from environment variables
RESOURCE_GROUP_NAME = os.environ["AZURE_RESOURCE_GROUP_NAME"]
LOCATION = os.environ["LOCATION"]

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

# Provision the resource group.
rg_result = resource_client.resource_groups.create_or_update(RESOURCE_GROUP_NAME,
    { "location": LOCATION })

print(f"Provisioned resource group {rg_result.name}")

# Within the ResourceManagementClient is an object named resource_groups,
# which is of class ResourceGroupsOperations, which contains methods like
# create_or_update.
#
# The second parameter to create_or_update here is technically a ResourceGroup
# object. You can create the object directly using ResourceGroup(location=
# LOCATION) or you can express the object as inline JSON as shown here. For
# details, see Inline JSON pattern for object arguments at
# https://learn.microsoft.com/azure/developer/python/sdk
# /azure-sdk-library-usage-patterns#inline-json-pattern-for-object-arguments

print(
    f"Provisioned resource group {rg_result.name} in the {rg_result.location} region"
)

# The return value is another ResourceGroup object with all the details of the
# new group. In this case the call is synchronous: the resource group has been
# provisioned by the time the call returns.

# To update the resource group, repeat the call with different properties, such
# as tags:
rg_result = resource_client.resource_groups.create_or_update(
    RESOURCE_GROUP_NAME,
    {
        "location": LOCATION,
        "tags": {"environment": "test", "department": "tech"},
    },
)

print(f"Updated resource group {rg_result.name} with tags")

# Optional lines to delete the resource group. begin_delete is asynchronous.
# poller = resource_client.resource_groups.begin_delete(rg_result.name)
# result = poller.result()

Verificatie in de code

Verderop in dit artikel meldt u zich aan bij Azure met behulp van de Azure CLI om de voorbeeldcode uit te voeren. Als uw account voldoende machtigingen heeft om resourcegroepen en opslagresources in uw Azure-abonnement te maken, moet het script zonder aanvullende configuratie worden uitgevoerd.

Als u deze code in een productieomgeving wilt gebruiken, moet u verifiëren met behulp van een service-principal door omgevingsvariabelen in te stellen. Met deze methode kunt u beveiligde, geautomatiseerde toegang krijgen zonder afhankelijk te zijn van interactieve aanmelding. Zie Python-apps verifiëren met Azure-services voor gedetailleerde richtlijnen.

Zorg ervoor dat aan de service-principal een rol is toegewezen met voldoende machtigingen voor het maken van resourcegroepen en opslagaccounts. Als u bijvoorbeeld de rol Inzender op abonnementsniveau toewijst, krijgt u de benodigde toegang. Zie op rollen gebaseerd toegangsbeheer (RBAC) in Azure voor meer informatie over roltoewijzingen.

5: Het script uitvoeren

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

    az login
    
  2. Voer het script uit:

    python provision_rg.py
    

6: De resourcegroep controleren

U kunt controleren of de resourcegroep bestaat via Azure Portal of de Azure CLI.

  • Azure Portal: open Azure Portal, selecteer Resourcegroepen en controleer of de groep wordt vermeld. Gebruik zo nodig de opdracht Vernieuwen om de lijst bij te werken.

  • Azure CLI: gebruik de opdracht az group show :

    #!/bin/bash
    az group show -n $AZURE_RESOURCE_GROUP_NAME
    

7: Resources opschonen

Voer de opdracht az group delete uit als u de resourcegroep die in dit voorbeeld is gemaakt, niet hoeft te behouden. Er worden geen lopende kosten in rekening gebracht voor resourcegroepen binnen uw abonnement, maar voor resources in de resourcegroep kunnen wel kosten blijven ontstaan. Het is een goede gewoonte om een groep op te schonen die u niet actief gebruikt. Met het argument --no-wait kan de opdracht onmiddellijk worden geretourneerd in plaats van te wachten tot de bewerking is voltooid.

#!/bin/bash
az group delete -n $AZURE_RESOURCE_GROUP_NAME --no-wait

U kunt ook de methode ResourceManagementClient.resource_groups.begin_delete gebruiken om een resourcegroep uit code te verwijderen. De commentaarcode onder aan het script in dit artikel laat het gebruik zien.

Ter referentie: equivalente Azure CLI-opdracht

Met de volgende Azure CLI az group create-opdracht maakt u een resourcegroep met tags, net als het Python-script:

az group create -n PythonAzureExample-rg -l centralus --tags "department=tech" "environment=test"

Zie ook