Compartilhar via


Exemplo: usar as bibliotecas do Azure para listar grupos de recursos e recursos

Este exemplo demonstra como usar as bibliotecas de gerenciamento do SDK do Azure em um script Python para executar duas tarefas:

  • Liste todos os grupos de recursos em uma assinatura do Azure.
  • Listar recursos em um grupo de recursos específico.

Todos os comandos neste artigo funcionam da mesma forma nos shells de comando do Linux/macOS bash e do Windows, a menos que indicado.

Os comandos equivalentes da CLI do Azure são listados posteriormente neste artigo.

1: Configurar seu ambiente de desenvolvimento local

Caso ainda não tenha feito isso, configure um ambiente em que você possa executar esse código. Aqui estão algumas opções:

  • Configure um ambiente virtual do Python usando venv ou sua ferramenta de escolha. Para começar a usar o ambiente virtual, ative-o. Para instalar o Python, consulte Instalar o 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)

2: Instalar os pacotes da biblioteca do Azure

Crie um arquivo chamado requirements.txt com o seguinte conteúdo:

azure-mgmt-resource
azure-identity

Em um terminal ou prompt de comando com o ambiente virtual ativado, instale os requisitos:

pip install -r requirements.txt

3: Escrever código para trabalhar com grupos de recursos

3a. Listar grupos de recursos em uma assinatura

Crie um arquivo Python chamado list_groups.py com o código a seguir. Os comentários explicam os detalhes:

# 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. Listar recursos em um grupo de recursos específico

Crie um arquivo Python chamado list_resources.py com o código a seguir. Os comentários explicam os detalhes.

Por padrão, o código lista os recursos em "myResourceGroup". Para usar um grupo de recursos diferente, defina a variável de RESOURCE_GROUP_NAME ambiente como o nome do grupo desejado.

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

Autenticação no código

Mais adiante neste artigo, você entra no Azure com a CLI do Azure para executar o código de exemplo. Se sua conta tiver permissões para criar e listar grupos de recursos em sua assinatura do Azure, o código será executado com êxito.

Para usar esse código em um script de produção, você pode definir variáveis de ambiente para usar um método baseado em entidade de serviço para autenticação. Para saber mais, confira Como autenticar aplicativos Python com os serviços do Azure. Você precisa garantir que a entidade de serviço tenha permissões suficientes para criar e listar grupos de recursos em sua assinatura atribuindo-lhe uma função apropriada no Azure; por exemplo, a função Colaborador em sua assinatura.

4: Executar os scripts

  1. Caso ainda não tenha feito isso, entre no Azure usando a CLI do Azure:

    az login
    
  2. Defina a variável de ambiente AZURE_SUBSCRIPTION_ID como o ID da sua assinatura. (Você pode executar o comando az account show e obter o ID da sua assinatura a partir da propriedade id na saída):

    export AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
    
  3. Listar todos os grupos de recursos na assinatura:

    python list_groups.py
    
  4. Listar todos os recursos em um grupo de recursos:

    python list_resources.py
    

    Por padrão, o código lista os recursos em "myResourceGroup". Para usar um grupo de recursos diferente, defina a variável de RESOURCE_GROUP_NAME ambiente como o nome do grupo desejado.

Para referência: comandos equivalentes da CLI do Azure

O seguinte comando da CLI do Azure lista grupos de recursos em uma assinatura:

az group list

O comando a seguir lista os recursos dentro do "myResourceGroup" na região de centralus (o location argumento é necessário para identificar um data center específico):

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

Consulte também