Példa: Erőforráscsoportok és erőforrások listázása az Azure-kódtárak használatával

Ez a példa bemutatja, hogyan használhatja az Azure SDK felügyeleti kódtárait egy Python-szkriptben két feladat végrehajtására:

  • Az Azure-előfizetés összes erőforráscsoportjának listázása.
  • Erőforrások listázása egy adott erőforráscsoporton belül.

A cikkben szereplő összes parancs ugyanúgy működik a Linux/macOS bash és a Windows parancshéjakban, hacsak fel nem jegyezzük.

A cikk későbbi részében az egyenértékű Azure CLI-parancsok jelennek meg.

1: A helyi fejlesztési környezet beállítása

Ha még nem tette meg, hozzon létre egy környezetet, ahol futtathatja ezt a kódot. Íme néhány lehetőség:

  • Python virtuális környezet konfigurálása. Létrehozhatja a virtuális környezetet helyileg vagy az Azure Cloud Shellben, és ott futtathatja a kódot. Mindenképpen aktiválja a virtuális környezetet a használat megkezdéséhez.

  • Használjon conda környezetet.

  • Használjon Dev-tárolót a Visual Studio Code-ban vagy a GitHub Codespace-ben.

2: Az Azure-kódtárcsomagok telepítése

Hozzon létre egy requirements.txt nevű fájlt a következő tartalommal:

azure-mgmt-resource
azure-identity

A virtuális környezetet aktiváló terminálban vagy parancssorban telepítse a követelményeket:

pip install -r requirements.txt

3: Kód írása erőforráscsoportok használatához

3a. Erőforráscsoportok listázása előfizetésben

Hozzon létre egy list_groups.py nevű Python-fájlt a következő kóddal. A megjegyzések a részleteket ismertetik:

# 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. Erőforrások listázása egy adott erőforráscsoporton belül

Hozzon létre egy list_resources.py nevű Python-fájlt a következő kóddal. A megjegyzések ismertetik a részleteket.

Alapértelmezés szerint a kód felsorolja a "myResourceGroup" erőforrásait. Másik erőforráscsoport használatához állítsa a RESOURCE_GROUP_NAME környezeti változót a kívánt csoportnévre.

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

Hitelesítés a kódban

A cikk későbbi részében az Azure CLI-vel jelentkezik be az Azure-ba a mintakód futtatásához. Ha a fiókja rendelkezik erőforráscsoportok létrehozására és listázására vonatkozó engedélyekkel az Azure-előfizetésben, a kód sikeresen lefut.

Ha éles szkriptben szeretné használni az ilyen kódot, a környezeti változókat úgy állíthatja be, hogy egyszerű szolgáltatásalapú módszert használjon a hitelesítéshez. További információ: Python-alkalmazások hitelesítése az Azure-szolgáltatásokkal. Gondoskodnia kell arról, hogy a szolgáltatásnév megfelelő engedélyekkel rendelkezzen az előfizetésben lévő erőforráscsoportok létrehozásához és listázásához, ha megfelelő szerepkört rendel hozzá az Azure-ban, például az előfizetés közreműködői szerepkörét.

4: A szkriptek futtatása

  1. Ha még nem tette meg, jelentkezzen be az Azure-ba az Azure CLI használatával:

    az login
    
  2. Állítsa be a környezeti változót AZURE_SUBSCRIPTION_ID az előfizetés azonosítójához. (Futtathatja az az account show parancsot, és lekérheti az előfizetés azonosítóját a id kimenetben lévő tulajdonságból):

    set AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
    
  3. Az előfizetés összes erőforráscsoportjának listázása:

    python list_groups.py
    
  4. Az erőforráscsoport összes erőforrásának listázása:

    python list_resources.py
    

    Alapértelmezés szerint a kód felsorolja a "myResourceGroup" erőforrásait. Másik erőforráscsoport használatához állítsa a RESOURCE_GROUP_NAME környezeti változót a kívánt csoportnévre.

Hivatkozás: egyenértékű Azure CLI-parancsok

Az alábbi Azure CLI-parancs az előfizetésben lévő erőforráscsoportokat sorolja fel:

az group list

Az alábbi parancs a centralus régióban található "myResourceGroup" erőforrásokat sorolja fel (az location argumentum egy adott adatközpont azonosításához szükséges):

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

Lásd még