Delen via


Azure Cosmos DB for NoSQL integreren met Service Connector

Op deze pagina ziet u ondersteunde verificatiemethoden en -clients en ziet u voorbeeldcode die u kunt gebruiken om Azure Cosmos DB for NoSQL te verbinden met andere cloudservices met behulp van serviceconnector. Mogelijk kunt u nog steeds verbinding maken met Azure Cosmos DB for NoSQL in andere programmeertalen zonder serviceconnector te gebruiken. Op deze pagina ziet u ook de standaardnamen en waarden van omgevingsvariabelen (of Spring Boot-configuratie) die u krijgt wanneer u de serviceverbinding maakt.

Ondersteunde rekenservices

Serviceconnector kan worden gebruikt om de volgende rekenservices te verbinden met Azure Cosmos DB for NoSQL:

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

Ondersteunde verificatietypen en clienttypen

In de onderstaande tabel ziet u welke combinaties van clienttypen en verificatiemethoden worden ondersteund voor het verbinden van uw rekenservice met Azure Cosmos DB for NoSQL met behulp van Service Connector. Een 'Ja' geeft aan dat de combinatie wordt ondersteund, terwijl een 'Nee' aangeeft dat deze niet wordt ondersteund.

Client-type Door het systeem toegewezen beheerde identiteit Door de gebruiker toegewezen beheerde identiteit Geheim/verbindingsreeks Service-principal
.NET Ja Ja Ja Ja
Java Ja Ja Ja Ja
Java - Spring Boot Ja Ja Ja Ja
Node.js Ja Ja Ja Ja
Python Ja Ja Ja Ja
Go Ja Ja Ja Ja
Geen Ja Ja Ja Ja

Deze tabel geeft aan dat alle combinaties van clienttypen en verificatiemethoden in de tabel worden ondersteund. Alle clienttypen kunnen elk van de verificatiemethoden gebruiken om verbinding te maken met Azure Cosmos DB for NoSQL met behulp van Service Connector.

Namen van standaardomgevingsvariabelen of toepassingseigenschappen en voorbeeldcode

Gebruik de onderstaande verbindingsgegevens om uw rekenservices te verbinden met Azure Cosmos DB for NoSQL. Vervang voor elk voorbeeld hieronder de tijdelijke aanduidingen <database-server>, ,<database-name>,<account-key><resource-group-name> , , <subscription-ID>, <client-ID><SQL-server>, , <client-secret>, en <tenant-id><access-key> door uw eigen gegevens. Raadpleeg het artikel Over interne serviceconnector voor meer informatie over naamconventies .

Door het systeem toegewezen beheerde identiteit

SpringBoot-clienttype

Het gebruik van een door het systeem toegewezen beheerde identiteit omdat het verificatietype alleen beschikbaar is voor Spring Cloud Azure versie 4.0 of hoger.

Naam van standaardomgevingsvariabele Beschrijving Voorbeeldwaarde
spring.cloud.azure.cosmos.credential.managed-identity-enabled Of beheerde identiteit moet worden ingeschakeld true
spring.cloud.azure.cosmos.database Uw database https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Uw resource-eindpunt https://<database-server>.documents.azure.com:443/

Andere clienttypen

Naam van standaardomgevingsvariabele Beschrijving Voorbeeldwaarde
AZURE_COSMOS_LISTCONNECTIONSTRINGURL De URL voor het ophalen van de verbindingsreeks 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 Het bereik van uw beheerde identiteit https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT Uw resource-eindpunt https://<database-server>.documents.azure.com:443/

Voorbeeldcode

Raadpleeg de stappen en code hieronder om verbinding te maken met Azure Cosmos DB for NoSQL met behulp van een door het systeem toegewezen identiteit.

  1. Installeer afhankelijkheden.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Verifieer met behulp van Azure.Identity het NuGet-pakket en haal de eindpunt-URL op uit de omgevingsvariabele die is toegevoegd door Service Connector. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.

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

Door de gebruiker toegewezen beheerde identiteit

SpringBoot-clienttype

Het gebruik van een door de gebruiker toegewezen beheerde identiteit omdat het verificatietype alleen beschikbaar is voor Spring Cloud Azure versie 4.0 of hoger.

Naam van standaardomgevingsvariabele Beschrijving Voorbeeldwaarde
spring.cloud.azure.cosmos.credential.managed-identity-enabled Of beheerde identiteit moet worden ingeschakeld true
spring.cloud.azure.cosmos.database Uw database https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Uw resource-eindpunt https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.credential.client-id Uw client-id <client-ID>

Andere clienttypen

Naam van standaardomgevingsvariabele Beschrijving Voorbeeldwaarde
AZURE_COSMOS_LISTCONNECTIONSTRINGURL De URL voor het ophalen van de verbindingsreeks 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 Het bereik van uw beheerde identiteit https://management.azure.com/.default
AZURE_COSMOS_CLIENTID Uw client-id <client-ID>
AZURE_COSMOS_RESOURCEENDPOINT Uw resource-eindpunt https://<database-server>.documents.azure.com:443/

Voorbeeldcode

Raadpleeg de stappen en code hieronder om verbinding te maken met Azure Cosmos DB for NoSQL met behulp van een door de gebruiker toegewezen identiteit.

  1. Installeer afhankelijkheden.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Verifieer met behulp van Azure.Identity het NuGet-pakket en haal de eindpunt-URL op uit de omgevingsvariabele die is toegevoegd door Service Connector. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.

    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

Waarschuwing

Microsoft raadt u aan de veiligste verificatiestroom te gebruiken die beschikbaar is. De verificatiestroom die in deze procedure wordt beschreven, vereist een zeer hoge mate van vertrouwen in de toepassing en brengt risico's met zich mee die niet aanwezig zijn in andere stromen. U moet deze stroom alleen gebruiken wanneer andere veiligere stromen, zoals beheerde identiteiten, niet haalbaar zijn.

SpringBoot-clienttype

Naam van standaardomgevingsvariabele Beschrijving Voorbeeldwaarde
azure.cosmos.key De toegangssleutel voor uw database voor Spring Cloud Azure versie lager dan 4.0 <access-key>
azure.cosmos.database Uw database voor Spring Cloud Azure-versie lager dan 4.0 <database-name>
azure.cosmos.uri Uw database-URI voor Spring Cloud Azure-versie lager dan 4.0 https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.key De toegangssleutel voor uw database voor Spring Cloud Azure versie meer dan 4.0 <access-key>
spring.cloud.azure.cosmos.database Uw database voor Spring Cloud Azure-versie ouder dan 4.0 <database-name>
spring.cloud.azure.cosmos.endpoint Uw database-URI voor Spring Cloud Azure-versie hoger dan 4.0 https://<database-server>.documents.azure.com:443/

Andere clienttypen

Naam van standaardomgevingsvariabele Beschrijving Voorbeeldwaarde
AZURE_COSMOS_CONNECTIONSTRING Azure Cosmos DB voor NoSQL-verbindingsreeks AccountEndpoint=https://<database-server>.documents.azure.com:443/;AccountKey=<account-key>

Voorbeeldcode

Raadpleeg de stappen en code hieronder om verbinding te maken met Azure Cosmos DB for NoSQL met behulp van een verbindingsreeks.

  1. Afhankelijkheid installeren.

    dotnet add package Microsoft.Azure.Cosmos
    
  2. Haal de verbindingsreeks op uit de omgevingsvariabele die is toegevoegd door 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")!
    );
    

Service-principal

SpringBoot-clienttype

Naam van standaardomgevingsvariabele Beschrijving Voorbeeldwaarde
spring.cloud.azure.cosmos.credential.client-id Uw client-id <client-ID>
spring.cloud.azure.cosmos.credential.client-secret Uw clientgeheim <client-secret>
spring.cloud.azure.cosmos.profile.tenant-id Uw tenant-id <tenant-ID>
spring.cloud.azure.cosmos.database Uw database <database-name>
spring.cloud.azure.cosmos.endpoint Uw resource-eindpunt https://<database-server>.documents.azure.com:443/

Andere clienttypen

Naam van standaardomgevingsvariabele Beschrijving Voorbeeldwaarde
AZURE_COSMOS_LISTCONNECTIONSTRINGURL De URL voor het ophalen van de verbindingsreeks 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 Het bereik van uw beheerde identiteit https://management.azure.com/.default
AZURE_COSMOS_CLIENTID Uw clientgeheim-id <client-ID>
AZURE_COSMOS_CLIENTSECRET Uw clientgeheim <client-secret>
AZURE_COSMOS_TENANTID Uw tenant-id <tenant-ID>
AZURE_COSMOS_RESOURCEENDPOINT Uw resource-eindpunt https://<database-server>.documents.azure.com:443/

Voorbeeldcode

Raadpleeg de stappen en code hieronder om verbinding te maken met Azure Cosmos DB for NoSQL met behulp van een service-principal.

  1. Installeer afhankelijkheden.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Verifieer met behulp van Azure.Identity het NuGet-pakket en haal de eindpunt-URL op uit de omgevingsvariabele die is toegevoegd door Service Connector. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.

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

Volgende stappen

Volg de onderstaande zelfstudies voor meer informatie over Service Connector.