Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este guia guia-o na construção de uma aplicação de consola Python para se ligar a um cluster Azure DocumentDB. Você configura seu ambiente de desenvolvimento, autentica usando o azure.identity pacote do SDK do Azure para Python e executa operações como criar, consultar e atualizar documentos.
Pré-requisitos
Uma assinatura do Azure
- Se você não tiver uma assinatura do Azure, crie uma conta gratuita
Um cluster do Azure DocumentDB existente
- Se não tiver um cluster, crie um novo cluster
Utilize o ambiente Bash no Azure Cloud Shell. Para mais informações, veja Get started with Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale o CLI do Azure. Se estiver a usar Windows ou macOS, considere executar o Azure CLI num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando o comando az login . Para concluir o processo de autenticação, siga os passos exibidos no seu terminal. Para outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão do Azure CLI na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute az version para descobrir a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, execute az upgrade.
Autenticação do Microsoft Entra configurada para o cluster com o papel atribuído à sua identidade
root.- Para habilitar a autenticação do Microsoft Entra, consulte o guia de configuração.
Última versão do Python.
Configurar seu aplicativo de console
Em seguida, crie um novo projeto de aplicativo de console e importe as bibliotecas necessárias para autenticar no cluster.
Crie um novo diretório para o seu projeto e configure um ambiente virtual.
mkdir mongodb-app cd mongodb-app python -m venv .venvAtive o ambiente virtual.
# On Windows .venv\Scripts\activate # On macOS/Linux source .venv/bin/activateCrie um novo arquivo Python para seu aplicativo.
touch app.pyInstale a biblioteca para autenticação do
azure.identityAzure.pip install azure.identityInstale o
pymongodriver para Python.pip install pymongo
Ligar ao cluster
Agora, use a Azure.Identity biblioteca para obter um TokenCredential para usar para se conectar ao seu cluster. O driver oficial do MongoDB tem uma interface especial que deve ser implementada para obter tokens do Microsoft Entra para uso ao se conectar ao cluster.
Importe os módulos necessários na parte superior do seu arquivo Python.
from azure.identity import DefaultAzureCredential from pymongo import MongoClient from pymongo.auth_oidc import OIDCCallback, OIDCCallbackContext, OIDCCallbackResultCrie uma classe personalizada que implemente a interface de retorno de chamada do MongoDB OpenID Connect (OIDC).
class AzureIdentityTokenCallback(OIDCCallback): def __init__(self, credential): self.credential = credential def fetch(self, context: OIDCCallbackContext) -> OIDCCallbackResult: token = self.credential.get_token( "https://ossrdbms-aad.database.windows.net/.default").token return OIDCCallbackResult(access_token=token)Defina a variável de nome do cluster.
clusterName = "<azure-documentdb-cluster-name>"Crie uma instância de DefaultAzureCredential e configure as propriedades de autenticação.
credential = DefaultAzureCredential() authProperties = {"OIDC_CALLBACK": AzureIdentityTokenCallback(credential)}Crie um cliente MongoDB configurado com autenticação Microsoft Entra.
client = MongoClient( f"mongodb+srv://{clusterName}.global.mongocluster.cosmos.azure.com/", connectTimeoutMS=120000, tls=True, retryWrites=True, authMechanism="MONGODB-OIDC", authMechanismProperties=authProperties ) print("Client created")
Executar operações comuns
Finalmente, use a biblioteca oficial para executar tarefas comuns com bancos de dados, coleções e documentos. Aqui, você usa as mesmas classes e métodos que usaria para interagir com o MongoDB ou o Banco de Dados de Documentos para gerenciar suas coleções e itens.
Obtenha uma referência à sua base de dados.
database = client.get_database("<database-name>") print("Database pointer created")Obtenha uma referência à sua coleção de dados.
collection = database.get_collection("<container-name>") print("Collection pointer created")Crie um documento e atualize-o para a coleção com
collection.update_one.new_document = { "_id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "category": "gear-surf-surfboards", "name": "Yamba Surfboard", "quantity": 12, "price": 850.00, "clearance": False, } filter = { "_id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", } payload = { "$set": new_document } result = collection.update_one(filter, payload, upsert=True)Use
collection.find_onepara recuperar um documento específico da coleção.filter = { "_id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "category": "gear-surf-surfboards" } existing_document = collection.find_one(filter) print(f"Read document _id:\t{existing_document['_id']}")Consulta de vários documentos com
collection.findque correspondam a um filtro.filter = { "category": "gear-surf-surfboards" } matched_documents = collection.find(filter) for document in matched_documents: print(f"Found document:\t{document}")