Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste artigo, você aprenderá a usar as bibliotecas de gerenciamento do Azure para Python para criar um grupo de recursos, juntamente com uma conta de Armazenamento do Azure e um contêiner de armazenamento de Blob.
Depois de provisionar esses recursos, consulte a seção Exemplo: Usar o Armazenamento do Azure para ver como usar as bibliotecas de cliente do Azure em Python para carregar um arquivo no contêiner de Blob.
Os comandos equivalentes da CLI do Azure para bash e PowerShell são listados posteriormente neste artigo. Se preferir usar o portal do Azure, consulte Criar uma conta de armazenamento do Azure e Criar um contêiner de blob.
1: Configure seu ambiente de desenvolvimento local
Se ainda não o fez, configure um ambiente onde possa executar o código. Seguem-se algumas opções:
Configure um ambiente virtual Python usando
venv
ou sua ferramenta de escolha. Para começar a usar o ambiente virtual, não deixe de ativá-lo. 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)
Utilize um ambiente de conda. Para instalar o Conda, consulte Instalar o Miniconda.
Use um contêiner de desenvolvimento no Visual Studio Code ou GitHub Codespaces.
2: Instale os pacotes de biblioteca do Azure necessários
No console, crie um arquivo requirements.txt que liste as bibliotecas de gerenciamento usadas neste exemplo:
azure-mgmt-resource azure-mgmt-storage azure-identity
No console com o ambiente virtual ativado, instale os requisitos:
pip install -r requirements.txt
3. Definir variáveis de ambiente
Nesta etapa, você define variáveis de ambiente para uso no código deste artigo. O código usa o os.environ
método para recuperar os valores.
#!/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)
export STORAGE_ACCOUNT_NAME=<StorageAccountName> # Change to your preferred storage account name
export CONTAINER_NAME=<ContainerName> # Change to your preferred container name
4: Escreva código para criar uma conta de armazenamento e um contêiner de blob
Nesta etapa, você cria um arquivo Python chamado provision_blob.py com o código a seguir. Esse script Python usa o SDK do Azure para bibliotecas de gerenciamento Python para criar um grupo de recursos, uma conta de Armazenamento do Azure e um contêiner de Blob usando o SDK do Azure para Python.
import os, random
# Import the needed management objects from the libraries. The azure.common library
# is installed automatically with the other libraries.
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.storage import StorageManagementClient
from azure.mgmt.storage.models import BlobContainer
# Acquire a credential object.
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"]
# Step 1: Provision the resource group.
resource_client = ResourceManagementClient(credential, subscription_id)
rg_result = resource_client.resource_groups.create_or_update(RESOURCE_GROUP_NAME,
{ "location": LOCATION })
print(f"Provisioned resource group {rg_result.name}")
# For details on the previous code, see Example: Provision a resource group
# at https://docs.microsoft.com/azure/developer/python/azure-sdk-example-resource-group
# Step 2: Provision the storage account, starting with a management object.
storage_client = StorageManagementClient(credential, subscription_id)
STORAGE_ACCOUNT_NAME = os.environ["STORAGE_ACCOUNT_NAME"]
# Check if the account name is available. Storage account names must be unique across
# Azure because they're used in URLs.
availability_result = storage_client.storage_accounts.check_name_availability(
{ "name": STORAGE_ACCOUNT_NAME }
)
if not availability_result.name_available:
print(f"Storage name {STORAGE_ACCOUNT_NAME} is already in use. Try another name.")
exit()
# The name is available, so provision the account
poller = storage_client.storage_accounts.begin_create(RESOURCE_GROUP_NAME, STORAGE_ACCOUNT_NAME,
{
"location" : LOCATION,
"kind": "StorageV2",
"sku": {"name": "Standard_LRS"}
}
)
# Long-running operations return a poller object; calling poller.result()
# waits for completion.
account_result = poller.result()
print(f"Provisioned storage account {account_result.name}")
# Step 3: Retrieve the account's primary access key and generate a connection string.
keys = storage_client.storage_accounts.list_keys(RESOURCE_GROUP_NAME, STORAGE_ACCOUNT_NAME)
print(f"Primary key for storage account: {keys.keys[0].value}")
conn_string = f"DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={STORAGE_ACCOUNT_NAME};AccountKey={keys.keys[0].value}"
# print(f"Connection string: {conn_string}")
# Step 4: Provision the blob container in the account (this call is synchronous)
CONTAINER_NAME = os.environ["CONTAINER_NAME"]
container = storage_client.blob_containers.create(RESOURCE_GROUP_NAME, STORAGE_ACCOUNT_NAME, CONTAINER_NAME, BlobContainer())
print(f"Provisioned blob container {container.name}")
Autenticação no código
Mais adiante neste artigo, você entra no Azure usando a CLI do Azure para executar o código de exemplo. Se sua conta tiver permissões suficientes para criar grupos de recursos e recursos de armazenamento em sua assinatura do Azure, o script deverá ser executado com êxito sem configuração adicional.
Para usar este código num ambiente de produção, autentique-se usando um principal de serviço ao definir variáveis de ambiente. Essa abordagem permite acesso seguro e automatizado sem depender de login interativo. Para obter orientações detalhadas, consulte Como autenticar aplicativos Python com serviços do Azure.
Certifique-se de que a entidade de serviço receba uma função com permissões suficientes para criar grupos de recursos e contas de armazenamento. Por exemplo, atribuir a função de Colaborador no nível de assinatura fornece o acesso necessário. Para saber mais sobre atribuições de função, consulte Controle de acesso baseado em função (RBAC) no Azure.
Links de referência para classes usadas no código
- DefaultAzureCredential (azure.identity)
- ResourceManagementClient (azure.mgmt.resource)
- StorageManagementClient (azure.mgmt.storage)
5. Correr o script
Se ainda não o fez, inicie sessão no Azure utilizando a CLI do Azure:
az login
Execute o roteiro:
python provision_blob.py
O script leva um ou dois minutos para ser concluído.
6: Verifique os recursos
Abra o portal do Azure para verificar se o grupo de recursos e a conta de armazenamento foram criados conforme o esperado. Talvez seja necessário aguardar um minuto e também selecionar Mostrar tipos ocultos no grupo de recursos.
Selecione a conta de armazenamento e, em seguida, selecione Contêineres de armazenamento> de dados no menu à esquerda para verificar se o "blob-container-01" aparece:
Se você quiser tentar usar esses recursos do código do aplicativo, continue com Exemplo: Usar o Armazenamento do Azure.
Para obter outro exemplo de como usar a biblioteca de gerenciamento de Armazenamento do Azure, consulte o Exemplo de gerenciamento de armazenamento em Python.
7: Limpar recursos
Deixe os recursos no lugar se quiser seguir o artigo Exemplo: Usar o Armazenamento do Azure para usar esses recursos no código do aplicativo. Caso contrário, execute o comando az group delete se não precisar manter o grupo de recursos e os recursos de armazenamento criados neste exemplo.
Os grupos de recursos não incorrem em encargos contínuos na sua subscrição, mas os recursos, como contas de armazenamento, no grupo de recursos podem incorrer em encargos. É uma boa prática limpar qualquer grupo que você não esteja usando ativamente. O --no-wait
argumento permite que o comando retorne imediatamente em vez de esperar que a operação seja concluída.
#!/bin/bash
az group delete -n $AZURE_RESOURCE_GROUP_NAME --no-wait
Para referência: comandos equivalentes da CLI do Azure
Os seguintes comandos da CLI do Azure concluem as mesmas etapas de criação que o script Python:
#!/bin/bash
#!/bin/bash
# Set variables
export LOCATION=<Location> # Change to your preferred region
export AZURE_RESOURCE_GROUP_NAME=<ResourceGroupName> # Change to your preferred resource group name
export STORAGE_ACCOUNT_NAME=<StorageAccountName> # Change to your preferred storage account name
export CONTAINER_NAME=<ContainerName> # Change to your preferred container name
# Provision the resource group
echo "Creating resource group: $AZURE_RESOURCE_GROUP_NAME"
az group create \
--location "$LOCATION" \
--name "$AZURE_RESOURCE_GROUP_NAME"
# Provision the storage account
az storage account create -g $AZURE_RESOURCE_GROUP_NAME -l $LOCATION -n $STORAGE ACCOUNT_NAME --kind StorageV2 --sku Standard_LRS
echo Storage account name is $STORAGE_ACCOUNT_NAME
# Retrieve the connection string
CONNECTION_STRING=$(az storage account show-connection-string -g $AZURE_RESOURCE_GROUP_NAME -n $STORAGE_ACCOUNT_NAME --query connectionString)
# Provision the blob container
az storage container create --name $CONTAINER_NAME --account-name $STORAGE_ACCOUNT_NAME --connection-string $CONNECTION_STRING
Ver também
- Exemplo: Usar o Armazenamento do Azure
- Exemplo: Criar um grupo de recursos
- Exemplo: Listar grupos de recursos em uma assinatura
- Exemplo: Criar um aplicativo Web e implantar código
- Exemplo: Criar e consultar um banco de dados
- Exemplo: Criar uma máquina virtual
- Usar Discos Gerenciados do Azure com máquinas virtuais
- Conclua uma breve pesquisa sobre o SDK do Azure para Python