Dela via


Exempel: Använd Azure-biblioteken för att skapa en resursgrupp

Det här exemplet visar hur du använder Azure SDK-hanteringsbiblioteken i ett Python-skript för att skapa en resursgrupp. ( Motsvarande Azure CLI-kommando ges senare i den här artikeln. Om du föredrar att använda Azure-portalen kan du läsa Skapa resursgrupper.)

Alla kommandon i den här artikeln fungerar på samma sätt i Linux/macOS bash- och Windows-kommandogränssnitt om de inte anges.

1: Konfigurera din lokala utvecklingsmiljö

Om du inte redan har gjort det konfigurerar du en miljö där du kan köra den här koden. Här är några alternativ:

  • Konfigurera en virtuell Python-miljö med hjälp av venv eller valfritt verktyg. Om du vill börja använda den virtuella miljön måste du aktivera den. Information om hur du installerar Python finns i Installera Python.

    #!/bin/bash
    # Create a virtual environment
    python -m venv .venv
    # Activate the virtual environment
    source .venv/Scripts/activate # only required for Windows (Git Bash)
    
  • Använd en conda-miljö. Information om hur du installerar Conda finns i Installera Miniconda.

  • Använd en Dev-container i Visual Studio Code eller GitHub Codespaces.

2: Installera Azure-bibliotekspaketen

  1. I konsolen skapar du en requirements.txt fil som visar de hanteringsbibliotek som används i det här exemplet:

    azure-mgmt-resource
    azure-identity
    
  2. Installera kraven i konsolen med den virtuella miljön aktiverad:

    pip install -r requirements.txt
    

3. Ange miljövariabler

I det här steget anger du miljövariabler som ska användas i koden i den här artikeln. Koden använder os.environ metoden för att hämta värdena.

#!/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: Skriv kod för att skapa en resursgrupp

I det här steget skapar du en Python-fil med namnet provision_blob.py med följande kod. Det här Python-skriptet använder Azure SDK för Python-hanteringsbibliotek för att skapa en resursgrupp i din Azure-prenumeration.

Skapa en Python-fil med namnet provision_rg.py med följande kod. Kommentarerna förklarar informationen:

# 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://free.blessedness.top/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()

Autentisering i koden

Senare i den här artikeln loggar du in på Azure med Hjälp av Azure CLI för att köra exempelkoden. Om ditt konto har tillräcklig behörighet för att skapa resursgrupper och lagringsresurser i din Azure-prenumeration bör skriptet köras utan ytterligare konfiguration.

Om du vill använda den här koden i en produktionsmiljö autentiserar du med tjänstens huvudnamn genom att ange miljövariabler. Den här metoden möjliggör säker, automatiserad åtkomst utan att förlita sig på interaktiv inloggning. Detaljerad vägledning finns i Autentisera Python-appar med Azure-tjänster.

Kontrollera att tjänstens huvudkonto har tilldelats en roll med tillräcklig behörighet för att skapa resursgrupper och lagringskonton. Om du till exempel tilldelar rollen Deltagare på prenumerationsnivå får du nödvändig åtkomst. Mer information om rolltilldelningar finns i Rollbaserad åtkomstkontroll (RBAC) i Azure.

5: Kör skriptet

  1. Logga in på Azure med hjälp av Azure CLI om du inte redan har gjort det.

    az login
    
  2. Kör skriptet:

    python provision_rg.py
    

6: Verifiera resursgruppen

Du kan kontrollera att resursgruppen finns via Azure-portalen eller Azure CLI.

  • Azure-portalen: öppna Azure-portalen, välj Resursgrupper och kontrollera att gruppen visas. Om det behövs använder du kommandot Uppdatera för att uppdatera listan.

  • Azure CLI: använd kommandot az group show :

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

7: Rensa resurser

Kör kommandot az group delete om du inte behöver behålla resursgruppen som skapats i det här exemplet. Resursgrupper debiteras inte några löpande avgifter i din prenumeration, men resurser i resursgruppen kan fortsätta att debiteras. Det är en bra idé att rensa alla grupper som du inte aktivt använder. Argumentet --no-wait gör att kommandot kan returneras omedelbart i stället för att vänta på att åtgärden ska slutföras.

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

Du kan också använda metoden ResourceManagementClient.resource_groups.begin_delete för att ta bort en resursgrupp från koden. Den kommenterade koden längst ned i skriptet i den här artikeln visar användningen.

Som referens: motsvarande Azure CLI-kommando

Följande Azure CLI az group create-kommando skapar en resursgrupp med taggar precis som Python-skriptet:

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

Se även