Udostępnij za pośrednictwem


Integrowanie usługi Azure Cosmos DB for NoSQL z łącznikiem usługi

Na tej stronie przedstawiono obsługiwane metody uwierzytelniania i klientów oraz pokazano przykładowy kod, którego można użyć do połączenia usługi Azure Cosmos DB for NoSQL z innymi usługami w chmurze przy użyciu łącznika usług. Nadal możesz nawiązać połączenie z usługą Azure Cosmos DB for NoSQL w innych językach programowania bez używania łącznika usługi. Na tej stronie są również wyświetlane domyślne nazwy zmiennych środowiskowych i wartości (lub konfiguracja platformy Spring Boot) podczas tworzenia połączenia z usługą.

Obsługiwane usługi obliczeniowe

Łącznik usługi może służyć do łączenia następujących usług obliczeniowych z usługą Azure Cosmos DB for NoSQL:

  • Azure App Service
  • Azure Container Apps
  • Azure Functions
  • Azure Kubernetes Service (AKS)
  • Azure Spring Apps

Obsługiwane typy uwierzytelniania i typy klientów

W poniższej tabeli przedstawiono kombinacje typów klientów i metod uwierzytelniania obsługiwanych do łączenia usługi obliczeniowej z usługą Azure Cosmos DB for NoSQL przy użyciu łącznika usługi Service Connector. Wartość "Tak" wskazuje, że kombinacja jest obsługiwana, a wartość "Nie" wskazuje, że nie jest obsługiwana.

Typ klienta Tożsamość zarządzana przypisana przez system Tożsamość zarządzana przypisana przez użytkownika Wpis tajny/parametry połączenia Jednostka usługi
.NET Tak Tak Tak Tak
Java Tak Tak Tak Tak
Java — Spring Boot Tak Tak Tak Tak
Node.js Tak Tak Tak Tak
Python Tak Tak Tak Tak
Go Tak Tak Tak Tak
None Tak Tak Tak Tak

Ta tabela wskazuje, że obsługiwane są wszystkie kombinacje typów klientów i metod uwierzytelniania w tabeli. Wszystkie typy klientów mogą używać dowolnej z metod uwierzytelniania w celu nawiązania połączenia z usługą Azure Cosmos DB for NoSQL przy użyciu łącznika usługi.

Domyślne nazwy zmiennych środowiskowych lub właściwości aplikacji i przykładowy kod

Użyj poniższych szczegółów połączenia, aby połączyć usługi obliczeniowe z usługą Azure Cosmos DB for NoSQL. Dla każdego z poniższych przykładów <database-server>zastąp tekst zastępczy , , , <SQL-server><subscription-ID><account-key><database-name><client-ID><client-secret><resource-group-name><tenant-id>i <access-key> własnymi informacjami. Aby uzyskać więcej informacji na temat konwencji nazewnictwa, zapoznaj się z artykułem Dotyczącym wewnętrznych łączników usług.

Tożsamość zarządzana przypisana przez system

Typ klienta SpringBoot

Użycie tożsamości zarządzanej przypisanej przez system jako typu uwierzytelniania jest dostępne tylko dla platformy Azure Spring Cloud w wersji 4.0 lub nowszej.

Domyślna nazwa zmiennej środowiskowej opis Przykładowa wartość
spring.cloud.azure.cosmos.credential.managed-identity-enabled Czy włączyć tożsamość zarządzaną true
spring.cloud.azure.cosmos.database Baza danych https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Punkt końcowy zasobu https://<database-server>.documents.azure.com:443/

Inne typy klientów

Domyślna nazwa zmiennej środowiskowej opis Przykładowa wartość
AZURE_COSMOS_LISTCONNECTIONSTRINGURL Adres URL umożliwiający pobranie parametry połączenia 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 Zakres tożsamości zarządzanej https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT Punkt końcowy zasobu https://<database-server>.documents.azure.com:443/

Przykładowy kod

Zapoznaj się z poniższymi krokami i kodem, aby nawiązać połączenie z usługą Azure Cosmos DB for NoSQL przy użyciu tożsamości przypisanej przez system.

  1. Instalowanie zależności.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Uwierzytelnianie przy użyciu Azure.Identity pakietu NuGet i uzyskiwanie adresu URL punktu końcowego ze zmiennej środowiskowej dodanej przez łącznik usługi. Korzystając z poniższego kodu, usuń komentarz z części fragmentu kodu dla typu uwierzytelniania, którego chcesz użyć.

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

Tożsamość zarządzana przypisana przez użytkownika

Typ klienta SpringBoot

Użycie tożsamości zarządzanej przypisanej przez użytkownika jako typu uwierzytelniania jest dostępne tylko dla platformy Spring Cloud w wersji 4.0 lub nowszej.

Domyślna nazwa zmiennej środowiskowej opis Przykładowa wartość
spring.cloud.azure.cosmos.credential.managed-identity-enabled Czy włączyć tożsamość zarządzaną true
spring.cloud.azure.cosmos.database Baza danych https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Punkt końcowy zasobu https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.credential.client-id Identyfikator klienta <client-ID>

Inne typy klientów

Domyślna nazwa zmiennej środowiskowej opis Przykładowa wartość
AZURE_COSMOS_LISTCONNECTIONSTRINGURL Adres URL umożliwiający pobranie parametry połączenia 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 Zakres tożsamości zarządzanej https://management.azure.com/.default
AZURE_COSMOS_CLIENTID Identyfikator klienta <client-ID>
AZURE_COSMOS_RESOURCEENDPOINT Punkt końcowy zasobu https://<database-server>.documents.azure.com:443/

Przykładowy kod

Zapoznaj się z poniższymi krokami i kodem, aby nawiązać połączenie z usługą Azure Cosmos DB for NoSQL przy użyciu tożsamości przypisanej przez użytkownika.

  1. Instalowanie zależności.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Uwierzytelnianie przy użyciu Azure.Identity pakietu NuGet i uzyskiwanie adresu URL punktu końcowego ze zmiennej środowiskowej dodanej przez łącznik usługi. Korzystając z poniższego kodu, usuń komentarz z części fragmentu kodu dla typu uwierzytelniania, którego chcesz użyć.

    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

Ostrzeżenie

Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Przepływ uwierzytelniania opisany w tej procedurze wymaga bardzo wysokiego poziomu zaufania w aplikacji i niesie ze sobą ryzyko, które nie występują w innych przepływach. Tego przepływu należy używać tylko wtedy, gdy inne bezpieczniejsze przepływy, takie jak tożsamości zarządzane, nie są opłacalne.

Typ klienta SpringBoot

Domyślna nazwa zmiennej środowiskowej opis Przykładowa wartość
azure.cosmos.key Klucz dostępu bazy danych dla platformy Azure Spring Cloud w wersji starszej niż 4.0 <access-key>
azure.cosmos.database Twoja baza danych dla platformy Azure Spring Cloud w wersji starszej niż 4.0 <database-name>
azure.cosmos.uri Identyfikator URI bazy danych dla platformy Azure Spring Cloud w wersji starszej niż 4.0 https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.key Klucz dostępu bazy danych dla platformy Azure Spring Cloud w wersji ponad 4.0 <access-key>
spring.cloud.azure.cosmos.database Twoja baza danych dla platformy Azure Spring Cloud w wersji ponad 4.0 <database-name>
spring.cloud.azure.cosmos.endpoint Identyfikator URI bazy danych dla platformy Azure Spring Cloud w wersji ponad 4.0 https://<database-server>.documents.azure.com:443/

Inne typy klientów

Domyślna nazwa zmiennej środowiskowej opis Przykładowa wartość
AZURE_COSMOS_CONNECTIONSTRING Usługa Azure Cosmos DB for NoSQL parametry połączenia AccountEndpoint=https://<database-server>.documents.azure.com:443/;AccountKey=<account-key>

Przykładowy kod

Zapoznaj się z poniższymi krokami i kodem, aby nawiązać połączenie z usługą Azure Cosmos DB for NoSQL przy użyciu parametry połączenia.

  1. Zainstaluj zależność.

    dotnet add package Microsoft.Azure.Cosmos
    
  2. Pobierz parametry połączenia ze zmiennej środowiskowej dodanej przez łącznik usługi.

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

Jednostka usługi

Typ klienta SpringBoot

Domyślna nazwa zmiennej środowiskowej opis Przykładowa wartość
spring.cloud.azure.cosmos.credential.client-id Identyfikator klienta <client-ID>
spring.cloud.azure.cosmos.credential.client-secret Klucz tajny klienta <client-secret>
spring.cloud.azure.cosmos.profile.tenant-id Identyfikator dzierżawy <tenant-ID>
spring.cloud.azure.cosmos.database Baza danych <database-name>
spring.cloud.azure.cosmos.endpoint Punkt końcowy zasobu https://<database-server>.documents.azure.com:443/

Inne typy klientów

Domyślna nazwa zmiennej środowiskowej opis Przykładowa wartość
AZURE_COSMOS_LISTCONNECTIONSTRINGURL Adres URL umożliwiający pobranie parametry połączenia 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 Zakres tożsamości zarządzanej https://management.azure.com/.default
AZURE_COSMOS_CLIENTID Identyfikator wpisu tajnego klienta <client-ID>
AZURE_COSMOS_CLIENTSECRET Klucz tajny klienta <client-secret>
AZURE_COSMOS_TENANTID Identyfikator dzierżawy <tenant-ID>
AZURE_COSMOS_RESOURCEENDPOINT Punkt końcowy zasobu https://<database-server>.documents.azure.com:443/

Przykładowy kod

Zapoznaj się z poniższymi krokami i kodem, aby nawiązać połączenie z usługą Azure Cosmos DB for NoSQL przy użyciu jednostki usługi.

  1. Instalowanie zależności.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Uwierzytelnianie przy użyciu Azure.Identity pakietu NuGet i uzyskiwanie adresu URL punktu końcowego ze zmiennej środowiskowej dodanej przez łącznik usługi. Korzystając z poniższego kodu, usuń komentarz z części fragmentu kodu dla typu uwierzytelniania, którego chcesz użyć.

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

Następne kroki

Postępuj zgodnie z samouczkami wymienionymi poniżej, aby dowiedzieć się więcej o łączniku usługi.