Exemplo: usar as bibliotecas do Azure para listar os recursos e os grupos de recursos
Este exemplo demonstra como usar as bibliotecas de gerenciamento do SDK do Azure em um script do Python para realizar duas tarefas:
- Listar todos os grupos de recursos em uma assinatura do Azure.
- Listar os recursos de um grupo de recursos específico.
Todos os comandos neste artigo funcionam da mesma forma no bash do Linux/macOS e nos shells de comando do Windows, a menos que haja uma observação.
Os Comandos equivalentes da CLI do Azure serão listados depois neste artigo.
1: configurar seu ambiente de desenvolvimento
Caso ainda não tenha feito isso, configure um ambiente onde você possa executar esse código. Estas são algumas opções:
Configure um ambiente virtual Python usando o
venv
ou sua ferramenta de escolha. Você pode criar o ambiente virtual localmente ou no Azure Cloud Shell e executar o código lá. Não esqueça de ativar o ambiente virtual para começar a usá-lo.Use um ambiente conda.
Use um Contêiner de Desenvolvimento no Visual Studio Code ou no GitHub Codespaces.
2: instalar os pacotes de biblioteca do Azure
Crie um arquivo chamado requirements.txt com o conteúdo abaixo:
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 funcionar com os grupos de recursos
3a. Listar os grupos de recursos de uma assinatura
Criar um arquivo do 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 os recursos de um grupo de recursos específico
Crie um arquivo do 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 outro grupo de recursos, defina a variável de ambiente RESOURCE_GROUP_NAME
para 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 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 uma função apropriada no Azure; por exemplo, a função Colaborador na sua assinatura.
Links de referência para classes usadas no código
4: executar os scripts
Caso ainda não tenha feito isso, entre no Azure usando a CLI do Azure:
az login
Defina a variável de ambiente
AZURE_SUBSCRIPTION_ID
como a sua ID da assinatura. (Você pode executar o comando az account show e obter sua ID de assinatura da propriedadeid
na saída):Liste todos os grupos de recursos da assinatura:
python list_groups.py
Listar todos os recursos de um grupo de recursos:
python list_resources.py
Por padrão, o código lista os recursos em "myResourceGroup". Para usar outro grupo de recursos, defina a variável de ambiente
RESOURCE_GROUP_NAME
para o nome do grupo desejado.
Para referência: comandos equivalentes da CLI do Azure
O seguinte comando da CLI do Azure lista os grupos de recursos de uma assinatura:
az group list
O comando a seguir lista os recursos dentro do "myResourceGroup" na região EUA Central (o argumento location
é necessário para identificar um data center específico):
az resource list --resource-group myResourceGroup --location centralus
Confira também
- Exemplo: provisionar um grupo de recursos
- Exemplo: provisionar e usar o Armazenamento do Microsoft Azure
- Exemplo: usar o Armazenamento do Azure
- Exemplo: provisionar um aplicativo Web e implantar o código
- Exemplo: provisionar e consultar um banco de dados
- Exemplo: provisionar uma máquina virtual
- Usar o Managed Disks do Azure com máquinas virtuais
- Conclua uma breve pesquisa sobre o SDK do Azure para Python