Dela via


Integrera Azure Cosmos DB for Table med Service Anslut or

Den här sidan visar autentiseringsmetoder och klienter som stöds och visar exempelkod som du kan använda för att ansluta Azure Cosmos DB for Table till andra molntjänster med hjälp av Service Anslut or. Du kanske fortfarande kan ansluta till Azure Cosmos DB for Table på andra programmeringsspråk utan att använda Service Anslut or. På den här sidan visas även standardnamn och värden för miljövariabler som du får när du skapar tjänstanslutningen.

Beräkningstjänster som stöds

Tjänst Anslut eller kan användas för att ansluta följande beräkningstjänster till Azure Cosmos DB för tabell:

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

Autentiseringstyper och klienttyper som stöds

Tabellen nedan visar vilka kombinationer av klienttyper och autentiseringsmetoder som stöds för att ansluta din beräkningstjänst till Azure Cosmos DB for Table med hjälp av Service Anslut or. Ett "Ja" anger att kombinationen stöds, medan ett "Nej" anger att den inte stöds.

Klienttyp Systemtilldelad hanterad identitet Användartilldelad hanterad identitet Hemlighet/anslutningssträng Tjänstens huvudnamn
.NET Ja Ja Ja Ja
Java Ja Ja Ja Ja
Node.js Ja Ja Ja Ja
Python Ja Ja Ja Ja
Kör Ja Ja Ja Ja
None Ja Ja Ja Ja

Den här tabellen anger att alla kombinationer av klienttyper och autentiseringsmetoder i tabellen stöds. Alla klienttyper kan använda någon av autentiseringsmetoderna för att ansluta till Azure Cosmos DB for Table med hjälp av Service Anslut or.

Standardnamn för miljövariabler eller programegenskaper och exempelkod

Använd anslutningsinformationen nedan för att ansluta dina beräkningstjänster till Azure Cosmos DB för Table. För varje exempel nedan ersätter du platshållartexterna <account-name>, , <account-key><table-name>, <resource-group-name>, <subscription-ID>, <client-ID>, med <client-secret><tenant-id> din egen information. Mer information om namngivningskonventioner finns i artikeln Service Anslut eller internals.

Systemtilldelad hanterad identitet

Standardnamn för miljövariabel beskrivning Exempelvärde
AZURE_COSMOS_LISTCONNECTIONSTRINGURL URL:en för att hämta anslutningssträng https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<table-name>/listConnectionStrings?api-version=2021-04-15
AZURE_COSMOS_SCOPE Ditt omfång för hanterad identitet https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT Resursslutpunkten https://<table-name>.documents.azure.com:443/

Exempelkod

Se stegen och koden nedan för att ansluta till Azure Cosmos DB for Table med hjälp av en systemtilldelad hanterad identitet.

  1. Installera beroenden.
    dotnet add package Azure.Data.Tables
    dotnet add package Azure.Identity
    
  2. Hämta en åtkomsttoken för den hanterade identiteten eller tjänstens huvudnamn med hjälp av klientbiblioteket Azure.Identity. Använd åtkomsttoken och AZURE_COSMOS_LISTCONNECTIONSTRINGURL för att hämta anslutningssträng. Hämta anslutningsinformationen från miljövariablerna som lagts till av Service Anslut eller och anslut till Azure Cosmos DB för Table. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
    using System;
    using System.Security.Authentication;
    using System.Net.Security;
    using System.Net.Http;
    using System.Security.Authentication;
    using System.Threading.Tasks;
    using Azure.Data.Tables;
    using Azure.Identity;
    
    var endpoint = Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT");
    var listConnectionStringUrl = Environment.GetEnvironmentVariable("AZURE_COSMOS_LISTCONNECTIONSTRINGURL");
    var scope = Environment.GetEnvironmentVariable("AZURE_COSMOS_SCOPE");
    
    // Uncomment the following lines according to the authentication type.
    // For system-assigned identity.
    // var tokenProvider = new DefaultAzureCredential();
    
    // For user-assigned identity.
    // var tokenProvider = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
    //     }
    // );
    
    // For service principal.
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_COSMOS_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTSECRET");
    // var tokenProvider = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    // Acquire the access token. 
    AccessToken accessToken = await tokenProvider.GetTokenAsync(
        new TokenRequestContext(scopes: new string[]{ scope }));
    
    // Get the connection string.
    var httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken.Token}");
    var response = await httpClient.POSTAsync(listConnectionStringUrl);
    var responseBody = await response.Content.ReadAsStringAsync();
    var connectionStrings = JsonConvert.DeserializeObject<Dictionary<string, List<Dictionary<string, string>>>(responseBody);
    var connectionString = connectionStrings["connectionStrings"].Find(connStr => connStr["description"] == "Primary Table Connection String")["connectionString"];
    
    // Connect to Azure Cosmos DB for Table
    TableServiceClient tableServiceClient = new TableServiceClient(connectionString);
    

Användartilldelad hanterad identitet

Standardnamn för miljövariabel beskrivning Exempelvärde
AZURE_COSMOS_LISTCONNECTIONSTRINGURL URL:en för att hämta anslutningssträng https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<table-name>/listConnectionStrings?api-version=2021-04-15
AZURE_COSMOS_SCOPE Ditt omfång för hanterad identitet https://management.azure.com/.default
AZURE_COSMOS_CLIENTID Ditt klienthemlighets-ID <client-ID>
AZURE_COSMOS_RESOURCEENDPOINT Resursslutpunkten https://<table-name>.documents.azure.com:443/

Exempelkod

Se stegen och koden nedan för att ansluta till Azure Cosmos DB for Table med hjälp av en användartilldelad hanterad identitet.

  1. Installera beroenden.
    dotnet add package Azure.Data.Tables
    dotnet add package Azure.Identity
    
  2. Hämta en åtkomsttoken för den hanterade identiteten eller tjänstens huvudnamn med hjälp av klientbiblioteket Azure.Identity. Använd åtkomsttoken och AZURE_COSMOS_LISTCONNECTIONSTRINGURL för att hämta anslutningssträng. Hämta anslutningsinformationen från miljövariablerna som lagts till av Service Anslut eller och anslut till Azure Cosmos DB för Table. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
    using System;
    using System.Security.Authentication;
    using System.Net.Security;
    using System.Net.Http;
    using System.Security.Authentication;
    using System.Threading.Tasks;
    using Azure.Data.Tables;
    using Azure.Identity;
    
    var endpoint = Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT");
    var listConnectionStringUrl = Environment.GetEnvironmentVariable("AZURE_COSMOS_LISTCONNECTIONSTRINGURL");
    var scope = Environment.GetEnvironmentVariable("AZURE_COSMOS_SCOPE");
    
    // Uncomment the following lines according to the authentication type.
    // For system-assigned identity.
    // var tokenProvider = new DefaultAzureCredential();
    
    // For user-assigned identity.
    // var tokenProvider = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
    //     }
    // );
    
    // For service principal.
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_COSMOS_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTSECRET");
    // var tokenProvider = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    // Acquire the access token. 
    AccessToken accessToken = await tokenProvider.GetTokenAsync(
        new TokenRequestContext(scopes: new string[]{ scope }));
    
    // Get the connection string.
    var httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken.Token}");
    var response = await httpClient.POSTAsync(listConnectionStringUrl);
    var responseBody = await response.Content.ReadAsStringAsync();
    var connectionStrings = JsonConvert.DeserializeObject<Dictionary<string, List<Dictionary<string, string>>>(responseBody);
    var connectionString = connectionStrings["connectionStrings"].Find(connStr => connStr["description"] == "Primary Table Connection String")["connectionString"];
    
    // Connect to Azure Cosmos DB for Table
    TableServiceClient tableServiceClient = new TableServiceClient(connectionString);
    

Connection string

Standardnamn för miljövariabel beskrivning Exempelvärde
AZURE_COSMOS_CONNECTIONSTRING Azure Cosmos DB för Table anslutningssträng DefaultEndpointsProtocol=https;AccountName=<account-name>;AccountKey=<account-key>;TableEndpoint=https://<table-name>.table.cosmos.azure.com:443/;

Exempelkod

Se stegen och koden nedan för att ansluta till Azure Cosmos DB for Table med hjälp av en anslutningssträng.

  1. Installera beroende.

    dotnet add package Azure.Data.Tables
    
  2. Hämta anslutningssträng från miljövariabeln som lagts till av Service Anslut eller.

    using Azure.Data.Tables;
    using System; 
    
    TableServiceClient tableServiceClient = new TableServiceClient(Environment.GetEnvironmentVariable("AZURE_COSMOS_CONNECTIONSTRING"));
    

Tjänstens huvudnamn

Standardnamn för miljövariabel beskrivning Exempelvärde
AZURE_COSMOS_LISTCONNECTIONSTRINGURL URL:en för att hämta anslutningssträng https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<table-name>/listConnectionStrings?api-version=2021-04-15
AZURE_COSMOS_SCOPE Ditt omfång för hanterad identitet https://management.azure.com/.default
AZURE_COSMOS_CLIENTID Ditt klienthemlighets-ID <client-ID>
AZURE_COSMOS_CLIENTSECRET Din klienthemlighet <client-secret>
AZURE_COSMOS_TENANTID Ditt klientorganisations-ID <tenant-ID>
AZURE_COSMOS_RESOURCEENDPOINT Resursslutpunkten https://<table-name>.documents.azure.com:443/

Exempelkod

Se stegen och koden nedan för att ansluta till Azure Cosmos DB for Table med hjälp av tjänstens huvudnamn.

  1. Installera beroenden.
    dotnet add package Azure.Data.Tables
    dotnet add package Azure.Identity
    
  2. Hämta en åtkomsttoken för den hanterade identiteten eller tjänstens huvudnamn med hjälp av klientbiblioteket Azure.Identity. Använd åtkomsttoken och AZURE_COSMOS_LISTCONNECTIONSTRINGURL för att hämta anslutningssträng. Hämta anslutningsinformationen från miljövariablerna som lagts till av Service Anslut eller och anslut till Azure Cosmos DB för Table. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
    using System;
    using System.Security.Authentication;
    using System.Net.Security;
    using System.Net.Http;
    using System.Security.Authentication;
    using System.Threading.Tasks;
    using Azure.Data.Tables;
    using Azure.Identity;
    
    var endpoint = Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT");
    var listConnectionStringUrl = Environment.GetEnvironmentVariable("AZURE_COSMOS_LISTCONNECTIONSTRINGURL");
    var scope = Environment.GetEnvironmentVariable("AZURE_COSMOS_SCOPE");
    
    // Uncomment the following lines according to the authentication type.
    // For system-assigned identity.
    // var tokenProvider = new DefaultAzureCredential();
    
    // For user-assigned identity.
    // var tokenProvider = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
    //     }
    // );
    
    // For service principal.
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_COSMOS_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTSECRET");
    // var tokenProvider = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    // Acquire the access token. 
    AccessToken accessToken = await tokenProvider.GetTokenAsync(
        new TokenRequestContext(scopes: new string[]{ scope }));
    
    // Get the connection string.
    var httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken.Token}");
    var response = await httpClient.POSTAsync(listConnectionStringUrl);
    var responseBody = await response.Content.ReadAsStringAsync();
    var connectionStrings = JsonConvert.DeserializeObject<Dictionary<string, List<Dictionary<string, string>>>(responseBody);
    var connectionString = connectionStrings["connectionStrings"].Find(connStr => connStr["description"] == "Primary Table Connection String")["connectionString"];
    
    // Connect to Azure Cosmos DB for Table
    TableServiceClient tableServiceClient = new TableServiceClient(connectionString);
    

Nästa steg

Följ självstudierna nedan om du vill veta mer om Service Anslut or.