Поделиться через


Интеграция Azure Cosmos DB для NoSQL с соединителем службы

На этой странице показаны поддерживаемые методы проверки подлинности и клиенты, а также показан пример кода, который можно использовать для подключения Azure Cosmos DB для NoSQL к другим облачным службам с помощью соединителя служб. Вы по-прежнему можете подключиться к Azure Cosmos DB для NoSQL на других языках программирования без использования соединителя службы. На этой странице также показаны имена и значения переменных среды по умолчанию (или конфигурация Spring Boot), которые вы получаете при создании подключения к службе.

Поддерживаемые службы вычислений

Соединитель служб можно использовать для подключения следующих служб вычислений к Azure Cosmos DB для NoSQL:

  • Служба приложений Azure
  • Приложения-контейнеры Azure
  • Функции Azure
  • Служба Azure Kubernetes (AKS)
  • Azure Spring Apps

Поддерживаемые типы проверки подлинности и типы клиентов

В таблице ниже показано, какие сочетания типов клиентов и методов проверки подлинности поддерживаются для подключения вычислительной службы к Azure Cosmos DB для NoSQL с помощью соединителя службы. Значение "Да" указывает, что сочетание поддерживается, а значение "Нет" указывает, что оно не поддерживается.

Тип клиента Управляемое удостоверение, назначаемое системой Управляемое удостоверение, назначаемое пользователем Секрет / строка подключения Субъект-служба
.NET Да Да Да Да
Java Да Да Да Да
Java — Spring Boot Да Да Да Да
Node.js Да Да Да Да
Python Да Да Да Да
Go Да Да Да Да
Не допускается Да Да Да Да

Эта таблица указывает, что поддерживаются все сочетания типов клиентов и методов проверки подлинности в таблице. Все типы клиентов могут использовать любой из методов проверки подлинности для подключения к Azure Cosmos DB для NoSQL с помощью соединителя служб.

Имена переменных среды по умолчанию или свойства приложения и пример кода

Используйте приведенные ниже сведения о подключении для подключения вычислительных служб к Azure Cosmos DB для NoSQL. Для каждого из приведенных ниже примеров замените текст заполнителя <database-server>, <subscription-ID><account-key><database-name><resource-group-name>, <client-ID>, <SQL-server><client-secret><tenant-id>а также <access-key> собственные сведения. Дополнительные сведения о соглашениях об именовании см. во внутренней статье соединителя служб.

Управляемое удостоверение, назначаемое системой

Тип клиента SpringBoot

Использование управляемого удостоверения, назначаемого системой, в качестве типа проверки подлинности доступно только для Spring Cloud Azure версии 4.0 или более поздней.

Имя переменной среды по умолчанию Description Пример значения
spring.cloud.azure.cosmos.credential.managed-identity-enabled Включение управляемого удостоверения true
spring.cloud.azure.cosmos.database База данных https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Конечная точка ресурса. https://<database-server>.documents.azure.com:443/

Другие типы клиентов

Имя переменной среды по умолчанию Description Пример значения
AZURE_COSMOS_LISTCONNECTIONSTRINGURL URL-адрес для получения строки подключения. 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 Область управляемого удостоверения. https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT Конечная точка ресурса. https://<database-server>.documents.azure.com:443/

Пример кода

Ознакомьтесь с инструкциями и кодом ниже, чтобы подключиться к Azure Cosmos DB для NoSQL с помощью назначаемого системой удостоверения.

  1. Установите зависимости.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Проверка подлинности с помощью Azure.Identity пакета NuGet и получение URL-адреса конечной точки из переменной среды, добавленной соединителем службы. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для используемого типа проверки подлинности.

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

Управляемое удостоверение, назначаемое пользователем

Тип клиента SpringBoot

Использование управляемого удостоверения, назначаемого пользователем, в качестве типа проверки подлинности доступно только для Spring Cloud Azure версии 4.0 или более поздней.

Имя переменной среды по умолчанию Description Пример значения
spring.cloud.azure.cosmos.credential.managed-identity-enabled Включение управляемого удостоверения true
spring.cloud.azure.cosmos.database База данных https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Конечная точка ресурса. https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.credential.client-id Идентификатор клиента <client-ID>

Другие типы клиентов

Имя переменной среды по умолчанию Description Пример значения
AZURE_COSMOS_LISTCONNECTIONSTRINGURL URL-адрес для получения строки подключения. 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 Область управляемого удостоверения. https://management.azure.com/.default
AZURE_COSMOS_CLIENTID Идентификатор клиента <client-ID>
AZURE_COSMOS_RESOURCEENDPOINT Конечная точка ресурса. https://<database-server>.documents.azure.com:443/

Пример кода

Ознакомьтесь с инструкциями и кодом ниже, чтобы подключиться к Azure Cosmos DB для NoSQL с помощью удостоверения, назначаемого пользователем.

  1. Установите зависимости.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Проверка подлинности с помощью Azure.Identity пакета NuGet и получение URL-адреса конечной точки из переменной среды, добавленной соединителем службы. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для используемого типа проверки подлинности.

    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

Предупреждение

Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, требует очень высокого уровня доверия к приложению и несет риски, которые отсутствуют в других потоках. Этот поток следует использовать только в том случае, если другие более безопасные потоки, такие как управляемые удостоверения, не являются жизнеспособными.

Тип клиента SpringBoot

Имя переменной среды по умолчанию Description Пример значения
azure.cosmos.key Ключ доступа для базы данных Spring Cloud для Azure ниже 4.0 <access-key>
azure.cosmos.database База данных для Spring Cloud azure ниже 4.0 <database-name>
azure.cosmos.uri URI базы данных для Spring Cloud azure версии ниже 4.0 https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.key Ключ доступа для базы данных Spring Cloud для Azure более 4.0 <access-key>
spring.cloud.azure.cosmos.database База данных для Spring Cloud Azure более 4.0 <database-name>
spring.cloud.azure.cosmos.endpoint URI базы данных для Spring Cloud Azure более 4.0 https://<database-server>.documents.azure.com:443/

Другие типы клиентов

Имя переменной среды по умолчанию Description Пример значения
AZURE_COSMOS_CONNECTIONSTRING Azure Cosmos DB для NoSQL строка подключения AccountEndpoint=https://<database-server>.documents.azure.com:443/;AccountKey=<account-key>

Пример кода

Ознакомьтесь с инструкциями и кодом ниже, чтобы подключиться к Azure Cosmos DB для NoSQL с помощью строка подключения.

  1. Установите зависимость.

    dotnet add package Microsoft.Azure.Cosmos
    
  2. Получите строка подключения из переменной среды, добавленной соединителем службы.

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

Субъект-служба

Тип клиента SpringBoot

Имя переменной среды по умолчанию Description Пример значения
spring.cloud.azure.cosmos.credential.client-id Идентификатор клиента <client-ID>
spring.cloud.azure.cosmos.credential.client-secret Секрет клиента <client-secret>
spring.cloud.azure.cosmos.profile.tenant-id Идентификатор клиента <tenant-ID>
spring.cloud.azure.cosmos.database База данных <database-name>
spring.cloud.azure.cosmos.endpoint Конечная точка ресурса. https://<database-server>.documents.azure.com:443/

Другие типы клиентов

Имя переменной среды по умолчанию Description Пример значения
AZURE_COSMOS_LISTCONNECTIONSTRINGURL URL-адрес для получения строки подключения. 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 Область управляемого удостоверения. https://management.azure.com/.default
AZURE_COSMOS_CLIENTID Идентификатор секрета клиента. <client-ID>
AZURE_COSMOS_CLIENTSECRET Секрет клиента <client-secret>
AZURE_COSMOS_TENANTID Идентификатор клиента <tenant-ID>
AZURE_COSMOS_RESOURCEENDPOINT Конечная точка ресурса. https://<database-server>.documents.azure.com:443/

Пример кода

Ознакомьтесь с инструкциями и кодом ниже, чтобы подключиться к Azure Cosmos DB для NoSQL с помощью субъекта-службы.

  1. Установите зависимости.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Проверка подлинности с помощью Azure.Identity пакета NuGet и получение URL-адреса конечной точки из переменной среды, добавленной соединителем службы. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для используемого типа проверки подлинности.

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

Следующие шаги

Дополнительные сведения о соединителе служб см. в приведенных ниже учебниках.