Sdílet prostřednictvím


Integrace služby Azure Cosmos DB for NoSQL s konektorem služby

Tato stránka ukazuje podporované metody ověřování a klienty a ukazuje ukázkový kód, který můžete použít k připojení služby Azure Cosmos DB for NoSQL k jiným cloudovým službám pomocí konektoru služby. Stále se můžete připojit ke službě Azure Cosmos DB for NoSQL v jiných programovacích jazycích bez použití konektoru služby. Tato stránka také zobrazuje výchozí názvy proměnných prostředí a hodnoty (nebo konfiguraci Spring Boot), které získáte při vytváření připojení služby.

Podporované výpočetní služby

Konektor služby se dá použít k připojení následujících výpočetních služeb ke službě Azure Cosmos DB for NoSQL:

  • Azure App Service
  • Azure Functions
  • Azure Container Apps
  • Azure Spring Apps

Podporované typy ověřování a typy klientů

Následující tabulka ukazuje, které kombinace typů klientů a metod ověřování se podporují pro připojení výpočetní služby ke službě Azure Cosmos DB for NoSQL pomocí konektoru služby. "Ano" označuje, že kombinace je podporována, zatímco "Ne" označuje, že není podporována.

Typ klienta Spravovaná identita přiřazená systémem Spravovaná identita přiřazená uživatelem Tajný kód / připojovací řetězec Instanční objekt
.NET Ano Ano Ano Yes
Java Ano Ano Ano Yes
Java – Spring Boot Ano Ano Ano Yes
Node.js Ano Ano Ano Yes
Python Ano Ano Ano Yes
Go Ano Ano Ano Yes
Nic Ano Ano Ano Yes

Tato tabulka označuje, že jsou podporovány všechny kombinace typů klientů a metod ověřování v tabulce. Všechny typy klientů můžou pro připojení ke službě Azure Cosmos DB for NoSQL pomocí konektoru služby použít některou z metod ověřování.

Výchozí názvy proměnných prostředí nebo vlastnosti aplikace a ukázkový kód

Pomocí níže uvedených podrobností o připojení připojte výpočetní služby ke službě Azure Cosmos DB for NoSQL. V každém příkladu níže nahraďte zástupné texty <database-server>, ,<database-name><account-key>, <resource-group-name>, <subscription-ID>, <client-ID>, <SQL-server>, <client-secret>, <tenant-id>a <access-key> vlastními informacemi. Další informace o konvencích vytváření názvů najdete v interním článku o konektoru služby.

Spravovaná identita přiřazená systémem

Typ klienta SpringBoot

Použití spravované identity přiřazené systémem jako typ ověřování je k dispozici pouze pro Spring Cloud Azure verze 4.0 nebo vyšší.

Výchozí název proměnné prostředí Popis Příklad hodnoty
spring.cloud.azure.cosmos.credential.managed-identity-enabled Jestli se má povolit spravovaná identita true
spring.cloud.azure.cosmos.database Vaše databáze https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Váš koncový bod prostředku https://<database-server>.documents.azure.com:443/

Další typy klientů

Výchozí název proměnné prostředí Popis Příklad hodnoty
AZURE_COSMOS_LISTCONNECTIONSTRINGURL Adresa URL pro získání připojovací řetězec 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 Rozsah spravované identity https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT Váš koncový bod prostředku https://<database-server>.documents.azure.com:443/

Ukázkový kód

Projděte si následující kroky a kód a připojte se ke službě Azure Cosmos DB for NoSQL pomocí identity přiřazené systémem.

  1. Nainstalujte závislosti.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Ověřte se pomocí Azure.Identity balíčku NuGet a získejte adresu URL koncového bodu z proměnné prostředí přidané konektorem služby. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.

    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
    );
    

Spravovaná identita přiřazená uživatelem

Typ klienta SpringBoot

Použití spravované identity přiřazené uživatelem jako typ ověřování je k dispozici pouze pro Spring Cloud Azure verze 4.0 nebo vyšší.

Výchozí název proměnné prostředí Popis Příklad hodnoty
spring.cloud.azure.cosmos.credential.managed-identity-enabled Jestli se má povolit spravovaná identita true
spring.cloud.azure.cosmos.database Vaše databáze https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Váš koncový bod prostředku https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.credential.client-id ID klienta <client-ID>

Další typy klientů

Výchozí název proměnné prostředí Popis Příklad hodnoty
AZURE_COSMOS_LISTCONNECTIONSTRINGURL Adresa URL pro získání připojovací řetězec 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 Rozsah spravované identity https://management.azure.com/.default
AZURE_COSMOS_CLIENTID ID klienta <client-ID>
AZURE_COSMOS_RESOURCEENDPOINT Váš koncový bod prostředku https://<database-server>.documents.azure.com:443/

Ukázkový kód

Pokud se chcete připojit ke službě Azure Cosmos DB for NoSQL pomocí identity přiřazené uživatelem, projděte si následující postup a kód.

  1. Nainstalujte závislosti.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Ověřte se pomocí Azure.Identity balíčku NuGet a získejte adresu URL koncového bodu z proměnné prostředí přidané konektorem služby. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.

    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
    );
    

Connection string

Upozorňující

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Ověřovací tok popsaný v tomto postupu vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok byste měli použít jenom v případě, že jiné bezpečnější toky, jako jsou spravované identity, nejsou přijatelné.

Typ klienta SpringBoot

Výchozí název proměnné prostředí Popis Příklad hodnoty
azure.cosmos.key Přístupový klíč pro vaši databázi pro Spring Cloud verze Azure nižší než 4.0 <access-key>
azure.cosmos.database Vaše databáze pro Spring Cloud Azure verze nižší než 4.0 <database-name>
azure.cosmos.uri Identifikátor URI databáze pro Spring Cloud verze Azure nižší než 4.0 https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.key Přístupový klíč pro vaši databázi pro Spring Cloud ve verzi Azure starší než 4.0 <access-key>
spring.cloud.azure.cosmos.database Vaše databáze pro Spring Cloud Azure verze více než 4.0 <database-name>
spring.cloud.azure.cosmos.endpoint Identifikátor URI databáze pro Spring Cloud ve verzi Azure s více než 4.0 https://<database-server>.documents.azure.com:443/

Další typy klientů

Výchozí název proměnné prostředí Popis Příklad hodnoty
AZURE_COSMOS_CONNECTIONSTRING Připojovací řetězec azure Cosmos DB for NoSQL AccountEndpoint=https://<database-server>.documents.azure.com:443/;AccountKey=<account-key>

Ukázkový kód

Pokud se chcete připojit ke službě Azure Cosmos DB for NoSQL pomocí připojovací řetězec, projděte si následující postup a kód.

  1. Nainstalujte závislost.

    dotnet add package Microsoft.Azure.Cosmos
    
  2. Získejte připojovací řetězec z proměnné prostředí přidané konektorem služby.

    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")!
    );
    

Instanční objekt

Typ klienta SpringBoot

Výchozí název proměnné prostředí Popis Příklad hodnoty
spring.cloud.azure.cosmos.credential.client-id ID klienta <client-ID>
spring.cloud.azure.cosmos.credential.client-secret Tajný klíč klienta <client-secret>
spring.cloud.azure.cosmos.profile.tenant-id ID vašeho tenanta <tenant-ID>
spring.cloud.azure.cosmos.database Vaše databáze <database-name>
spring.cloud.azure.cosmos.endpoint Váš koncový bod prostředku https://<database-server>.documents.azure.com:443/

Další typy klientů

Výchozí název proměnné prostředí Popis Příklad hodnoty
AZURE_COSMOS_LISTCONNECTIONSTRINGURL Adresa URL pro získání připojovací řetězec 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 Rozsah spravované identity https://management.azure.com/.default
AZURE_COSMOS_CLIENTID ID tajného klíče klienta <client-ID>
AZURE_COSMOS_CLIENTSECRET Tajný klíč klienta <client-secret>
AZURE_COSMOS_TENANTID ID vašeho tenanta <tenant-ID>
AZURE_COSMOS_RESOURCEENDPOINT Váš koncový bod prostředku https://<database-server>.documents.azure.com:443/

Ukázkový kód

Informace o připojení ke službě Azure Cosmos DB for NoSQL pomocí instančního objektu najdete v následujících krocích a kódu.

  1. Nainstalujte závislosti.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Ověřte se pomocí Azure.Identity balíčku NuGet a získejte adresu URL koncového bodu z proměnné prostředí přidané konektorem služby. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.

    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
    );
    

Další kroky

Další informace o konektoru Service Connector najdete v následujících kurzech.