Esta página mostra os métodos de autenticação e os clientes suportados e mostra o código de exemplo que pode utilizar para ligar o Azure Cosmos DB para NoSQL a outros serviços na nuvem utilizando o Service Connector. Talvez você ainda consiga se conectar ao Azure Cosmos DB para NoSQL em outras linguagens de programação sem usar o Service Connector. Esta página também mostra nomes e valores de variáveis de ambiente padrão (ou configuração do Spring Boot) que você obtém quando cria a conexão de serviço.
Serviços de computação suportados
O Service Connector pode ser usado para conectar os seguintes serviços de computação ao Azure Cosmos DB para NoSQL:
- Serviço de Aplicações do Azure
- Azure Container Apps
- Funções do Azure
- Azure Kubernetes Service (AKS)
- Azure Spring Apps
Tipos de autenticação e tipos de cliente suportados
A tabela abaixo mostra quais combinações de tipos de cliente e métodos de autenticação têm suporte para conectar seu serviço de computação ao Azure Cosmos DB para NoSQL usando o Service Connector. Um "Sim" indica que a combinação é suportada, enquanto um "Não" indica que ela não é suportada.
Tipo de cliente |
Identidade gerida atribuída pelo sistema |
Identidade gerida atribuída pelo utilizador |
Segredo / cadeia de conexão |
Principal de serviço |
.NET |
Sim |
Sim |
Sim |
Sim |
Java |
Sim |
Sim |
Sim |
Sim |
Java - Arranque primavera |
Sim |
Sim |
Sim |
Sim |
Node.js |
Sim |
Sim |
Sim |
Sim |
Python |
Sim |
Sim |
Sim |
Sim |
Vai! |
Sim |
Sim |
Sim |
Sim |
Nenhuma |
Sim |
Sim |
Sim |
Sim |
Esta tabela indica que todas as combinações de tipos de cliente e métodos de autenticação na tabela são suportadas. Todos os tipos de cliente podem usar qualquer um dos métodos de autenticação para se conectar ao Azure Cosmos DB para NoSQL usando o Service Connector.
Observação
O Cosmos DB não suporta nativamente a autenticação por meio de identidade gerenciada. Portanto, o Service Connector usa a identidade gerenciada para recuperar a cadeia de conexão, e a conexão é subsequentemente estabelecida usando essa cadeia de conexão.
Nomes de variáveis de ambiente padrão ou propriedades de aplicativo e código de exemplo
Use os detalhes de conexão abaixo para conectar seus serviços de computação ao Azure Cosmos DB para NoSQL. Para cada exemplo abaixo, substitua os textos de espaço reservado <database-server>
, <database-name>
, <account-key>
, <resource-group-name>
, <subscription-ID>
, <client-ID>
, <SQL-server>
, <client-secret>
, <tenant-id>
, e <access-key>
com suas próprias informações. Para obter mais informações sobre convenções de nomenclatura, consulte o artigo interno do Service Connector.
Identidade gerida atribuída pelo sistema
Como o Cosmos DB não oferece suporte nativo à autenticação por meio de identidade gerenciada, no exemplo de código a seguir, usamos a identidade gerenciada para recuperar a cadeia de conexão, e a conexão é estabelecida usando essa cadeia de conexão.
Tipo de cliente Spring Boot
O uso de uma identidade gerenciada atribuída ao sistema como o tipo de autenticação só está disponível para o Spring Cloud Azure versão 4.0 ou superior.
Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
spring.cloud.azure.cosmos.credential.managed-identity-enabled |
Se a identidade gerenciada deve ser habilitada |
true |
spring.cloud.azure.cosmos.database |
A sua base de dados |
https://management.azure.com/.default |
spring.cloud.azure.cosmos.endpoint |
Seu ponto de extremidade de recurso |
https://<database-server>.documents.azure.com:443/ |
Outros tipos de clientes
Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_COSMOS_LISTCONNECTIONSTRINGURL |
A URL para obter a cadeia de conexão |
https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<database-server>/listConnectionStrings?api-version=2021-04-15 |
AZURE_COSMOS_SCOPE |
Seu escopo de identidade gerenciado |
https://management.azure.com/.default |
AZURE_COSMOS_RESOURCEENDPOINT |
O seu ponto final de recurso |
https://<database-server>.documents.azure.com:443/ |
Código de exemplo
Consulte as etapas e o código abaixo para se conectar ao Azure Cosmos DB para NoSQL usando uma identidade atribuída pelo sistema.
Instale dependências.
dotnet add package Microsoft.Azure.Cosmos
dotnet add package Azure.Identity
Autentique-se com o pacote NuGet Azure.Identity
e obtenha o URL do ponto de extremidade da variável de ambiente adicionada pelo Conector de Serviço. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
using Microsoft.Azure.Cosmos;
using Azure.Core;
using Azure.Identity;
using System;
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned identity.
// TokenCredential credential = new DefaultAzureCredential();
// For user-assigned identity.
// TokenCredential credential = new DefaultAzureCredential(
// new DefaultAzureCredentialOptions
// {
// ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
// }
// );
// For service principal.
// TokenCredential credential = new ClientSecretCredential(
// tenantId: Environment.GetEnvironmentVariable("AZURE_COSMOS_TENANTID")!,
// clientId: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID")!,
// clientSecret: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTSECRET")!,
// options: new TokenCredentialOptions()
// );
// Create a new instance of CosmosClient using the credential above
using CosmosClient client = new(
accountEndpoint: Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT")!,
tokenCredential: credential
);
Adicione as seguintes dependências no arquivo pom.xml :
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-cosmos</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.1.5</version>
</dependency>
Autentique-se através de azure-identity
e obtenha a URL do ponto final a partir da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
import com.azure.cosmos.CosmosClient;
import com.azure.cosmos.CosmosClientBuilder;
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned identity
// DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();
// for user-assigned managed identity
// DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
// .managedIdentityClientId(System.getenv("AZURE_COSMOS_CLIENTID"))
// .build();
// for service principal
// ClientSecretCredential credential = new ClientSecretCredentialBuilder()
// .clientId(System.getenv("<AZURE_COSMOS_CLIENTID>"))
// .clientSecret(System.getenv("<AZURE_COSMOS_CLIENTSECRET>"))
// .tenantId(System.getenv("<AZURE_COSMOS_TENANTID>"))
// .build();
String endpoint = System.getenv("AZURE_COSMOS_RESOURCEENDPOINT");
CosmosClient cosmosClient = new CosmosClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();
- Instale dependências.
pip install azure-identity
pip install azure-cosmos
- Autentique-se através da biblioteca
azure-identity
e obtenha a URL de endpoint a partir da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
import os
from azure.cosmos import CosmosClient
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
# Uncomment the following lines corresponding to the authentication type you want to use.
# system-assigned managed identity
# cred = ManagedIdentityCredential()
# user-assigned managed identity
# managed_identity_client_id = os.getenv('AZURE_COSMOS_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# service principal
# tenant_id = os.getenv('AZURE_COSMOS_TENANTID')
# client_id = os.getenv('AZURE_COSMOS_CLIENTID')
# client_secret = os.getenv('AZURE_COSMOS_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
endpoint = os.environ["AZURE_COSMOS_RESOURCEENDPOINT"]
client = CosmosClient(url=endpoint, credential=cred)
- Instale dependências.
go get t github.com/Azure/azure-sdk-for-go/sdk/azidentity
go get github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos
- Autentique-se usando
azidentity
o pacote npm e obtenha a URL do ponto de extremidade da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
import (
"os"
"github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
)
func main() {
endpoint = os.Getenv("AZURE_COSMOS_RESOURCEENDPOINT")
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned identity.
// cred, err := azidentity.NewDefaultAzureCredential(nil)
// For user-assigned identity.
// clientid := os.Getenv("AZURE_COSMOS_CLIENTID")
// azidentity.ManagedIdentityCredentialOptions.ID := clientid
// options := &azidentity.ManagedIdentityCredentialOptions{ID: clientid}
// cred, err := azidentity.NewManagedIdentityCredential(options)
// For service principal.
// clientid := os.Getenv("AZURE_COSMOS_CLIENTID")
// tenantid := os.Getenv("AZURE_COSMOS_TENANTID")
// clientsecret := os.Getenv("AZURE_COSMOS_CLIENTSECRET")
// cred, err := azidentity.NewClientSecretCredential(tenantid, clientid, clientsecret, &azidentity.ClientSecretCredentialOptions{})
client, err := azcosmos.NewClient(endpoint, cred, nil)
}
Instale dependências.
npm install @azure/identity
npm install @azure/cosmos
Autentique-se usando o pacote npm @azure/identity
e obtenha a URL do ponto de extremidade a partir da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
import { CosmosClient } from "@azure/cosmos";
const { DefaultAzureCredential } = require("@azure/identity");
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned managed identity.
// const credential = new DefaultAzureCredential();
// For user-assigned managed identity.
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: process.env.AZURE_COSMOS_CLIENTID
// });
// For service principal.
// const credential = new ClientSecretCredential(
// tenantId: process.env.AZURE_COSMOS_TENANTID,
// clientId: process.env.AZURE_COSMOS_CLIENTID,
// clientSecret: process.env.AZURE_COSMOS_CLIENTSECRET
// );
// Create a new instance of CosmosClient using the credential above
const cosmosClient = new CosmosClient({
process.env.AZURE_COSMOS_RESOURCEENDPOINT,
aadCredentials: credential
});
Para outros idiomas, você pode usar a URL do ponto de extremidade e outras propriedades que o Service Connector define para as variáveis de ambiente para se conectar ao Azure Cosmos DB para NoSQL. Para obter detalhes sobre variáveis de ambiente, consulte Integrar o Azure Cosmos DB para NoSQL com o Service Connector.
Identidade gerida atribuída pelo utilizador
Como o Cosmos DB não oferece suporte nativo à autenticação por meio de identidade gerenciada, no exemplo de código a seguir, usamos a identidade gerenciada para recuperar a cadeia de conexão, e a conexão é estabelecida usando essa cadeia de conexão.
Tipo de cliente SpringBoot
O uso de uma identidade gerenciada atribuída pelo usuário como o tipo de autenticação só está disponível para o Spring Cloud Azure versão 4.0 ou superior.
Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
spring.cloud.azure.cosmos.credential.managed-identity-enabled |
Se a identidade gerenciada deve ser habilitada |
true |
spring.cloud.azure.cosmos.database |
A sua base de dados |
https://management.azure.com/.default |
spring.cloud.azure.cosmos.endpoint |
O seu endereço de recurso |
https://<database-server>.documents.azure.com:443/ |
spring.cloud.azure.cosmos.credential.client-id |
O seu ID de cliente |
<client-ID> |
Outros tipos de clientes
Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_COSMOS_LISTCONNECTIONSTRINGURL |
A URL para obter a cadeia de conexão |
https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<database-server>/listConnectionStrings?api-version=2021-04-15 |
AZURE_COSMOS_SCOPE |
Seu escopo de identidade gerenciado |
https://management.azure.com/.default |
AZURE_COSMOS_CLIENTID |
O seu ID de cliente |
<client-ID> |
AZURE_COSMOS_RESOURCEENDPOINT |
Seu ponto de extremidade de recurso |
https://<database-server>.documents.azure.com:443/ |
Código de exemplo
Consulte as etapas e o código abaixo para se conectar ao Azure Cosmos DB para NoSQL usando uma identidade atribuída pelo usuário.
Instale dependências.
dotnet add package Microsoft.Azure.Cosmos
dotnet add package Azure.Identity
Autentique-se usando Azure.Identity
o pacote NuGet e obtenha a URL do ponto de extremidade da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
using Microsoft.Azure.Cosmos;
using Azure.Core;
using Azure.Identity;
using System;
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned identity.
// TokenCredential credential = new DefaultAzureCredential();
// For user-assigned identity.
// TokenCredential credential = new DefaultAzureCredential(
// new DefaultAzureCredentialOptions
// {
// ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
// }
// );
// For service principal.
// TokenCredential credential = new ClientSecretCredential(
// tenantId: Environment.GetEnvironmentVariable("AZURE_COSMOS_TENANTID")!,
// clientId: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID")!,
// clientSecret: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTSECRET")!,
// options: new TokenCredentialOptions()
// );
// Create a new instance of CosmosClient using the credential above
using CosmosClient client = new(
accountEndpoint: Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT")!,
tokenCredential: credential
);
Adicione as seguintes dependências no arquivo pom.xml :
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-cosmos</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.1.5</version>
</dependency>
Autentique-se através de azure-identity
e obtenha a URL do ponto de extremidade da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
import com.azure.cosmos.CosmosClient;
import com.azure.cosmos.CosmosClientBuilder;
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned identity
// DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();
// for user-assigned managed identity
// DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
// .managedIdentityClientId(System.getenv("AZURE_COSMOS_CLIENTID"))
// .build();
// for service principal
// ClientSecretCredential credential = new ClientSecretCredentialBuilder()
// .clientId(System.getenv("<AZURE_COSMOS_CLIENTID>"))
// .clientSecret(System.getenv("<AZURE_COSMOS_CLIENTSECRET>"))
// .tenantId(System.getenv("<AZURE_COSMOS_TENANTID>"))
// .build();
String endpoint = System.getenv("AZURE_COSMOS_RESOURCEENDPOINT");
CosmosClient cosmosClient = new CosmosClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();
- Instale dependências.
pip install azure-identity
pip install azure-cosmos
- Autenticar-se através da
azure-identity
biblioteca e obter a URL do ponto de extremidade a partir da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
import os
from azure.cosmos import CosmosClient
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
# Uncomment the following lines corresponding to the authentication type you want to use.
# system-assigned managed identity
# cred = ManagedIdentityCredential()
# user-assigned managed identity
# managed_identity_client_id = os.getenv('AZURE_COSMOS_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# service principal
# tenant_id = os.getenv('AZURE_COSMOS_TENANTID')
# client_id = os.getenv('AZURE_COSMOS_CLIENTID')
# client_secret = os.getenv('AZURE_COSMOS_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
endpoint = os.environ["AZURE_COSMOS_RESOURCEENDPOINT"]
client = CosmosClient(url=endpoint, credential=cred)
- Instale dependências.
go get t github.com/Azure/azure-sdk-for-go/sdk/azidentity
go get github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos
- Autentique-se usando o pacote npm
azidentity
e obtenha a URL do ponto de extremidade da variável de ambiente adicionada pelo Conector de Serviço. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
import (
"os"
"github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
)
func main() {
endpoint = os.Getenv("AZURE_COSMOS_RESOURCEENDPOINT")
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned identity.
// cred, err := azidentity.NewDefaultAzureCredential(nil)
// For user-assigned identity.
// clientid := os.Getenv("AZURE_COSMOS_CLIENTID")
// azidentity.ManagedIdentityCredentialOptions.ID := clientid
// options := &azidentity.ManagedIdentityCredentialOptions{ID: clientid}
// cred, err := azidentity.NewManagedIdentityCredential(options)
// For service principal.
// clientid := os.Getenv("AZURE_COSMOS_CLIENTID")
// tenantid := os.Getenv("AZURE_COSMOS_TENANTID")
// clientsecret := os.Getenv("AZURE_COSMOS_CLIENTSECRET")
// cred, err := azidentity.NewClientSecretCredential(tenantid, clientid, clientsecret, &azidentity.ClientSecretCredentialOptions{})
client, err := azcosmos.NewClient(endpoint, cred, nil)
}
Instale dependências.
npm install @azure/identity
npm install @azure/cosmos
Autentique-se usando o pacote @azure/identity
npm e obtenha a URL do ponto final da variável de ambiente adicionada pelo "Service Connector". Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
import { CosmosClient } from "@azure/cosmos";
const { DefaultAzureCredential } = require("@azure/identity");
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned managed identity.
// const credential = new DefaultAzureCredential();
// For user-assigned managed identity.
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: process.env.AZURE_COSMOS_CLIENTID
// });
// For service principal.
// const credential = new ClientSecretCredential(
// tenantId: process.env.AZURE_COSMOS_TENANTID,
// clientId: process.env.AZURE_COSMOS_CLIENTID,
// clientSecret: process.env.AZURE_COSMOS_CLIENTSECRET
// );
// Create a new instance of CosmosClient using the credential above
const cosmosClient = new CosmosClient({
process.env.AZURE_COSMOS_RESOURCEENDPOINT,
aadCredentials: credential
});
Para outros idiomas, pode-se usar a URL do ponto de extremidade e outras propriedades que o Service Connector define nas variáveis de ambiente para estabelecer ligação ao Azure Cosmos DB para NoSQL. Para obter detalhes sobre variáveis de ambiente, consulte Integrar o Azure Cosmos DB para NoSQL com o Service Connector.
cadeia de ligação
Aviso
A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento requer um grau muito alto de confiança no aplicativo e acarreta riscos que não estão presentes em outros fluxos. Você só deve usar esse fluxo quando outros fluxos mais seguros, como identidades gerenciadas, não forem viáveis.
Tipo de cliente SpringBoot
Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
azure.cosmos.key |
A chave de acesso para o seu banco de dados para uma versão do Spring Cloud Azure inferior a 4.0 |
<access-key> |
azure.cosmos.database |
Seu banco de dados para a versão do Spring Cloud Azure abaixo da 4.0 |
<database-name> |
azure.cosmos.uri |
O URI do banco de dados para a versão do Spring Cloud Azure abaixo da 4.0 |
https://<database-server>.documents.azure.com:443/ |
spring.cloud.azure.cosmos.key |
A chave de acesso para o seu banco de dados para o Spring Cloud Azure versão superior a 4.0 |
<access-key> |
spring.cloud.azure.cosmos.database |
Seu banco de dados para o Spring Cloud Azure versão mais de 4.0 |
<database-name> |
spring.cloud.azure.cosmos.endpoint |
O URI da sua base de dados para Spring Cloud Azure versão superior a 4.0 |
https://<database-server>.documents.azure.com:443/ |
Outros tipos de clientes
Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_COSMOS_CONNECTIONSTRING |
Cadeia de conexão do Azure Cosmos DB para NoSQL |
AccountEndpoint=https://<database-server>.documents.azure.com:443/;AccountKey=<account-key> |
Código de exemplo
Consulte as etapas e o código abaixo para se conectar ao Azure Cosmos DB para NoSQL usando uma cadeia de conexão.
Instalar dependência.
dotnet add package Microsoft.Azure.Cosmos
Obtenha a cadeia de conexão da variável de ambiente adicionada pelo Service Connector.
using Microsoft.Azure.Cosmos;
using System;
// Create a new instance of CosmosClient using a connection string
using CosmosClient client = new(
connectionString: Environment.GetEnvironmentVariable("AZURE_COSMOS_CONNECTIONSTRING")!
);
- Adicione a seguinte dependência no arquivo pom.xml :
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-cosmos</artifactId>
<version>LATEST</version>
</dependency>
- Obtenha a cadeia de conexão da variável de ambiente adicionada pelo Service Connector.
import com.azure.cosmos.CosmosClient;
import com.azure.cosmos.CosmosClientBuilder;
String connectionStr = System.getenv("AZURE_COSMOS_CONNECTIONSTRING");
String[] connInfo = connectionStr.split(";");
String endpoint = connInfo[0].split("=")[1];
String accountKey = connInfo[1].split("=")[1];
CosmosClient cosmosClient = new CosmosClientBuilder()
.endpoint(endpoint)
.key(accountKey)
.buildClient();
Consulte os exemplos do Spring Data Azure Cosmos DB v3 e Crie um aplicativo Spring Data Azure Cosmos DB v3 para gerenciar dados do Azure Cosmos DB para NoSQL para configurar seu aplicativo Spring. As propriedades de configuração são adicionadas ao Spring Apps pelo Service Connector. Dois conjuntos de propriedades de configuração são fornecidos de acordo com a versão do Spring Cloud Azure (abaixo de 4.0 e acima de 4.0). Para obter mais informações sobre alterações na biblioteca do Spring Cloud Azure, consulte o Guia de Migração do Spring Cloud Azure. É recomendável usar o Spring Cloud Azure versão 4.0 e superior. As configurações no formato "azure.cosmos.*" do Spring Cloud Azure 3.x não serão mais suportadas após 1º de julho de 2024.
- Instalar dependência.
pip install azure-cosmos
- Obtenha a cadeia de conexão da variável de ambiente adicionada pelo Service Connector.
import os
from azure.cosmos import CosmosClient
# Create a new instance of CosmosClient using a connection string
CONN_STR = os.environ["AZURE_COSMOS_CONNECTIONSTRING"]
client = CosmosClient.from_connection_string(conn_str=CONN_STR)
- Instalar dependência.
go get github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos
- Obtenha a cadeia de conexão da variável de ambiente adicionada pelo Service Connector.
import {
"github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos"
}
connectionString := os.Getenv("AZURE_COSMOS_CONNECTIONSTRING")
client, err := azcosmos.NewClientFromConnectionString(connectionString, nil)
- Instalar dependência.
npm install @azure/cosmos
- Obtenha a cadeia de conexão da variável de ambiente adicionada pelo Service Connector.
import { CosmosClient } from "@azure/cosmos";
// Create a new instance of CosmosClient using a connection string
const cosmosClient = new CosmosClient(process.env.AZURE_COSMOS_CONNECTIONSTRING);
Para outras línguas, podes usar o URL do ponto de extremidade e outras propriedades que o Service Connector define nas variáveis de ambiente para te conectares ao Azure Cosmos DB para NoSQL. Para obter detalhes sobre variáveis de ambiente, consulte Integrar o Azure Cosmos DB para NoSQL com o Service Connector.
Principal de serviço
Tipo de cliente SpringBoot
Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
spring.cloud.azure.cosmos.credential.client-id |
O seu ID de cliente |
<client-ID> |
spring.cloud.azure.cosmos.credential.client-secret |
O segredo do seu cliente |
<client-secret> |
spring.cloud.azure.cosmos.profile.tenant-id |
O seu ID de inquilino |
<tenant-ID> |
spring.cloud.azure.cosmos.database |
A sua base de dados |
<database-name> |
spring.cloud.azure.cosmos.endpoint |
O seu ponto final de recurso |
https://<database-server>.documents.azure.com:443/ |
Outros tipos de clientes
Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_COSMOS_LISTCONNECTIONSTRINGURL |
A URL para obter a cadeia de conexão |
https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<database-server>/listConnectionStrings?api-version=2021-04-15 |
AZURE_COSMOS_SCOPE |
Seu escopo de identidade gerenciado |
https://management.azure.com/.default |
AZURE_COSMOS_CLIENTID |
O ID secreto do seu cliente |
<client-ID> |
AZURE_COSMOS_CLIENTSECRET |
O segredo do seu cliente |
<client-secret> |
AZURE_COSMOS_TENANTID |
O seu ID de inquilino |
<tenant-ID> |
AZURE_COSMOS_RESOURCEENDPOINT |
Seu ponto de extremidade de recurso |
https://<database-server>.documents.azure.com:443/ |
Código de exemplo
Consulte as principais etapas e o código abaixo para se conectar ao Azure Cosmos DB para NoSQL usando um principal de serviço.
Instale dependências.
dotnet add package Microsoft.Azure.Cosmos
dotnet add package Azure.Identity
Autentique-se utilizando o pacote NuGet e obtenha o URL do endpoint da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
using Microsoft.Azure.Cosmos;
using Azure.Core;
using Azure.Identity;
using System;
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned identity.
// TokenCredential credential = new DefaultAzureCredential();
// For user-assigned identity.
// TokenCredential credential = new DefaultAzureCredential(
// new DefaultAzureCredentialOptions
// {
// ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
// }
// );
// For service principal.
// TokenCredential credential = new ClientSecretCredential(
// tenantId: Environment.GetEnvironmentVariable("AZURE_COSMOS_TENANTID")!,
// clientId: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID")!,
// clientSecret: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTSECRET")!,
// options: new TokenCredentialOptions()
// );
// Create a new instance of CosmosClient using the credential above
using CosmosClient client = new(
accountEndpoint: Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT")!,
tokenCredential: credential
);
Adicione as seguintes dependências no arquivo pom.xml :
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-cosmos</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.1.5</version>
</dependency>
Autentique-se via azure-identity
e obtenha a URL do ponto de extremidade a partir da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
import com.azure.cosmos.CosmosClient;
import com.azure.cosmos.CosmosClientBuilder;
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned identity
// DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();
// for user-assigned managed identity
// DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
// .managedIdentityClientId(System.getenv("AZURE_COSMOS_CLIENTID"))
// .build();
// for service principal
// ClientSecretCredential credential = new ClientSecretCredentialBuilder()
// .clientId(System.getenv("<AZURE_COSMOS_CLIENTID>"))
// .clientSecret(System.getenv("<AZURE_COSMOS_CLIENTSECRET>"))
// .tenantId(System.getenv("<AZURE_COSMOS_TENANTID>"))
// .build();
String endpoint = System.getenv("AZURE_COSMOS_RESOURCEENDPOINT");
CosmosClient cosmosClient = new CosmosClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();
- Instale dependências.
pip install azure-identity
pip install azure-cosmos
- Autentique-se através da
azure-identity
biblioteca e obtenha a URL do ponto de extremidade da variável de ambiente adicionada pelo Conector de Serviço. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
import os
from azure.cosmos import CosmosClient
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
# Uncomment the following lines corresponding to the authentication type you want to use.
# system-assigned managed identity
# cred = ManagedIdentityCredential()
# user-assigned managed identity
# managed_identity_client_id = os.getenv('AZURE_COSMOS_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# service principal
# tenant_id = os.getenv('AZURE_COSMOS_TENANTID')
# client_id = os.getenv('AZURE_COSMOS_CLIENTID')
# client_secret = os.getenv('AZURE_COSMOS_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
endpoint = os.environ["AZURE_COSMOS_RESOURCEENDPOINT"]
client = CosmosClient(url=endpoint, credential=cred)
- Instale dependências.
go get t github.com/Azure/azure-sdk-for-go/sdk/azidentity
go get github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos
- Autentique-se usando o pacote npm
azidentity
, e obtenha a URL do endpoint da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
import (
"os"
"github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
)
func main() {
endpoint = os.Getenv("AZURE_COSMOS_RESOURCEENDPOINT")
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned identity.
// cred, err := azidentity.NewDefaultAzureCredential(nil)
// For user-assigned identity.
// clientid := os.Getenv("AZURE_COSMOS_CLIENTID")
// azidentity.ManagedIdentityCredentialOptions.ID := clientid
// options := &azidentity.ManagedIdentityCredentialOptions{ID: clientid}
// cred, err := azidentity.NewManagedIdentityCredential(options)
// For service principal.
// clientid := os.Getenv("AZURE_COSMOS_CLIENTID")
// tenantid := os.Getenv("AZURE_COSMOS_TENANTID")
// clientsecret := os.Getenv("AZURE_COSMOS_CLIENTSECRET")
// cred, err := azidentity.NewClientSecretCredential(tenantid, clientid, clientsecret, &azidentity.ClientSecretCredentialOptions{})
client, err := azcosmos.NewClient(endpoint, cred, nil)
}
Instale dependências.
npm install @azure/identity
npm install @azure/cosmos
Autentique-se usando o pacote npm @azure/identity
e obtenha o URL do ponto de extremidade a partir da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.
import { CosmosClient } from "@azure/cosmos";
const { DefaultAzureCredential } = require("@azure/identity");
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned managed identity.
// const credential = new DefaultAzureCredential();
// For user-assigned managed identity.
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: process.env.AZURE_COSMOS_CLIENTID
// });
// For service principal.
// const credential = new ClientSecretCredential(
// tenantId: process.env.AZURE_COSMOS_TENANTID,
// clientId: process.env.AZURE_COSMOS_CLIENTID,
// clientSecret: process.env.AZURE_COSMOS_CLIENTSECRET
// );
// Create a new instance of CosmosClient using the credential above
const cosmosClient = new CosmosClient({
process.env.AZURE_COSMOS_RESOURCEENDPOINT,
aadCredentials: credential
});
Para outros idiomas, pode-se usar a URL do endpoint e outras propriedades que o Service Connector define nas variáveis de ambiente para se conectar ao Azure Cosmos DB para bases de dados NoSQL. Para obter detalhes sobre variáveis de ambiente, consulte Integrar o Azure Cosmos DB para NoSQL com o Service Connector.
Próximos passos
Siga os tutoriais listados abaixo para saber mais sobre o Service Connector.