Integrace služby Azure Cosmos DB for Table se službou Připojení or

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

Podporované výpočetní služby

Služba Připojení or se dá použít k připojení následujících výpočetních služeb ke službě Azure Cosmos DB for Table:

  • 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í jsou podporované pro připojení výpočetní služby ke službě Azure Cosmos DB for Table pomocí služby Připojení or. "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
Node.js Ano Ano Ano Yes
Python Ano Ano Ano Yes
Přejít 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 k připojení ke službě Azure Cosmos DB for Table pomocí služby Připojení or použít libovolnou metodu 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 Table. V každém příkladu níže nahraďte zástupné texty <account-name>, <table-name>, <account-key>, <resource-group-name><subscription-ID>, , <client-ID>, , , <client-secret>vlastními <tenant-id> informacemi. Další informace o konvencích vytváření názvů najdete v článku o interních informacích o službě Připojení.

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

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/<table-name>/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://<table-name>.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 Table pomocí spravované identity přiřazené systémem.

  1. Nainstalujte závislosti.
    dotnet add package Azure.Data.Tables
    dotnet add package Azure.Identity
    
  2. Získejte přístupový token pro spravovanou identitu nebo instanční objekt pomocí klientské knihovny Azure.Identity. Použijte přístupový token a AZURE_COSMOS_LISTCONNECTIONSTRINGURL získejte připojovací řetězec. Získejte informace o připojení z proměnných prostředí přidaných službou Service Připojení or a připojte se ke službě Azure Cosmos DB for Table. 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 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);
    

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

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/<table-name>/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_RESOURCEENDPOINT Váš koncový bod prostředku https://<table-name>.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 Table pomocí spravované identity přiřazené uživatelem.

  1. Nainstalujte závislosti.
    dotnet add package Azure.Data.Tables
    dotnet add package Azure.Identity
    
  2. Získejte přístupový token pro spravovanou identitu nebo instanční objekt pomocí klientské knihovny Azure.Identity. Použijte přístupový token a AZURE_COSMOS_LISTCONNECTIONSTRINGURL získejte připojovací řetězec. Získejte informace o připojení z proměnných prostředí přidaných službou Service Připojení or a připojte se ke službě Azure Cosmos DB for Table. 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 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

Výchozí název proměnné prostředí Popis Příklad hodnoty
AZURE_COSMOS_CONNECTIONSTRING Azure Cosmos DB for Table připojovací řetězec DefaultEndpointsProtocol=https;AccountName=<account-name>;AccountKey=<account-key>;TableEndpoint=https://<table-name>.table.cosmos.azure.com:443/;

Ukázkový kód

Informace o připojení ke službě Azure Cosmos DB for Table pomocí připojovací řetězec najdete v následujících krocích a kódu.

  1. Nainstalujte závislost.

    dotnet add package Azure.Data.Tables
    
  2. Získejte připojovací řetězec z proměnné prostředí přidané službou Service Připojení or.

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

Instanční objekt

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/<table-name>/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://<table-name>.documents.azure.com:443/

Ukázkový kód

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

  1. Nainstalujte závislosti.
    dotnet add package Azure.Data.Tables
    dotnet add package Azure.Identity
    
  2. Získejte přístupový token pro spravovanou identitu nebo instanční objekt pomocí klientské knihovny Azure.Identity. Použijte přístupový token a AZURE_COSMOS_LISTCONNECTIONSTRINGURL získejte připojovací řetězec. Získejte informace o připojení z proměnných prostředí přidaných službou Service Připojení or a připojte se ke službě Azure Cosmos DB for Table. 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 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);
    

Další kroky

Další informace o službě service Připojení or najdete v následujících kurzech.