Freigeben über


Integrieren von Azure Cosmos DB for Gremlin mit Service Connector

Diese Seite zeigt unterstützte Authentifizierungsmethoden und Clients und zeigt Beispielcode, den Sie verwenden können, um Azure Cosmos DB für Apache Gremlin mit anderen Clouddiensten mithilfe von Service Verbinden or zu verbinden. Möglicherweise können Sie weiterhin eine Verbindung mit Azure Cosmos DB für Gremlin in anderen Programmiersprachen herstellen, ohne Service Verbinden or zu verwenden. Auf dieser Seite werden auch die Namen und Werte der Standardumgebungsvariablen angezeigt, die Sie erhalten, wenn Sie die Dienstverbindung erstellen.

Unterstützte Computedienste

Der Dienst Verbinden or kann verwendet werden, um die folgenden Computedienste mit Azure Cosmos DB für Apache Gremlin zu verbinden:

  • Azure App Service
  • Azure-Funktionen
  • Azure Container Apps
  • Azure Spring Apps

Unterstützte Authentifizierungstypen und Clienttypen

Die folgende Tabelle zeigt, welche Kombinationen von Clienttypen und Authentifizierungsmethoden für die Verbindung Ihres Computediensts mit Azure Cosmos DB für Apache Gremlin mit Service Verbinden or unterstützt werden. Ein "Ja" gibt an, dass die Kombination unterstützt wird, während ein "Nein" angibt, dass sie nicht unterstützt wird.

Clienttyp Systemseitig zugewiesene verwaltete Identität Benutzerseitig zugewiesene verwaltete Identität Geheimnis/Verbindungszeichenfolge Dienstprinzipal
.NET Ja Ja Ja Ja
Java Ja Ja Ja Ja
Node.js Ja Ja Ja Ja
PHP Ja Ja Ja Ja
Python Ja Ja Ja Ja
Go Ja Ja Ja Ja
Keine Ja Ja Ja Ja

Diese Tabelle gibt an, dass alle Kombinationen von Clienttypen und Authentifizierungsmethoden in der Tabelle unterstützt werden. Alle Clienttypen können jede der Authentifizierungsmethoden verwenden, um mithilfe von Service Verbinden or eine Verbindung mit Azure Cosmos DB für Apache Gremlin herzustellen.

Standardumgebungsvariablennamen oder Anwendungseigenschaften und Beispielcode

Verwenden Sie die folgenden Verbindungsdetails, um Ihre Computedienste mit Azure Cosmos DB für Apache Gremlin zu verbinden. Ersetzen Sie den Platzhaltertext <Azure-Cosmos-DB-account>, <database>, <collection or graphs>, <username>, <password>, <resource-group-name>, <subscription-ID>, <client-ID>, <client-secret> und <tenant-id> in allen Beispielen unten durch Ihre eigenen Informationen. Weitere Informationen zu Benennungskonventionen finden Sie im Artikel "Service Verbinden or internals".

Systemseitig zugewiesene verwaltete Identität

Standardname der Umgebungsvariablen Beschreibung Beispielswert
AZURE_COSMOS_LISTKEYURL Die URL zum Abrufen der Verbindungszeichenfolge https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<Azure-Cosmos-DB-account>/listKeys?api-version=2021-04-15
AZURE_COSMOS_SCOPE Ihr verwalteter Identitätsumfang https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT Ihr Ressourcenendpunkt https://<Azure-Cosmos-DB-account>.documents.azure.com:443/
AZURE_COSMOS_HOSTNAME Ihr Unique Resource Identifier (UFI) für Gremlin <Azure-Cosmos-DB-account>.gremlin.cosmos.azure.com
AZURE_COSMOS_PORT Verbindungsport 443
AZURE_COSMOS_USERNAME Ihr Benutzername /dbs/<database>/colls/<collection or graphs>

Beispielcode

In den schritten und code below to connect to Azure Cosmos DB for Gremlin using a system-assigned managed identity.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Gremlin.Net
    dotnet add package Azure.Identity
    
  2. Rufen Sie ein Zugriffstoken für die verwaltete Identität oder den Dienstprinzipal mithilfe der Clientbibliothek Azure.Identity ab. Verwenden Sie das Zugriffstoken, und AZURE_COSMOS_LISTKEYURL rufen Sie das Kennwort ab. Rufen Sie die Verbindungsinformationen aus den von Service Verbinden or hinzugefügten Umgebungsvariablen ab und stellen Sie eine Verbindung mit Azure Cosmos DB für Apache Gremlin her. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten.

    using System;
    using System.Security.Authentication;
    using System.Net.Security;
    using System.Net.Http;
    using System.Security.Authentication;
    using System.Threading.Tasks;
    using System;
    using Gremlin.Net.Driver;
    using Azure.Identity;
    
    var gremlinEndpoint = Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT");
    var userName = Environment.GetEnvironmentVariable("AZURE_COSMOS_USERNAME");
    var gremlinPort = Int32.Parse(Environment.GetEnvironmentVariable("AZURE_COSMOS_PORT"));
    var listKeyUrl = Environment.GetEnvironmentVariable("AZURE_COSMOS_LISTKEYURL");
    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 password.
    var httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken.Token}");
    var response = await httpClient.POSTAsync(listKeyUrl);
    var responseBody = await response.Content.ReadAsStringAsync();
    var keys = JsonConvert.DeserializeObject<Dictionary<string, string>>(responseBody);
    var password = keys["primaryMasterKey"];
    
    // Connect to Azure Cosmos DB for Apache Gremlin
    var server = new GremlinServer(
        hostname: gremlinEndpoint,
        port: gremlinPort,
        username: userName,
        password: password,
        enableSsl: true
    );
    
    using var client = new GremlinClient(
        gremlinServer: server,
        messageSerializer: new Gremlin.Net.Structure.IO.GraphSON.GraphSON2MessageSerializer()
    );        
    
    

Benutzerseitig zugewiesene verwaltete Identität

Standardname der Umgebungsvariablen Beschreibung Beispielswert
AZURE_COSMOS_LISTKEYURL Die URL zum Abrufen der Verbindungszeichenfolge https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<Azure-Cosmos-DB-account>/listKeys?api-version=2021-04-15
AZURE_COSMOS_SCOPE Ihr verwalteter Identitätsumfang https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT Ihr Ressourcenendpunkt https://<Azure-Cosmos-DB-account>.documents.azure.com:443/
AZURE_COSMOS_HOSTNAME Ihr Unique Resource Identifier (UFI) für Gremlin <Azure-Cosmos-DB-account>.gremlin.cosmos.azure.com
AZURE_COSMOS_PORT Verbindungsport 443
AZURE_COSMOS_USERNAME Ihr Benutzername /dbs/<database>/colls/<collection or graphs>
AZURE_CLIENTID Ihre Client-ID <client_ID>

Beispielcode

In den schritten und code unten finden Sie Informationen zum Herstellen einer Verbindung mit Azure Cosmos DB für Gremlin mithilfe einer vom Benutzer zugewiesenen verwalteten Identität.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Gremlin.Net
    dotnet add package Azure.Identity
    
  2. Rufen Sie ein Zugriffstoken für die verwaltete Identität oder den Dienstprinzipal mithilfe der Clientbibliothek Azure.Identity ab. Verwenden Sie das Zugriffstoken, und AZURE_COSMOS_LISTKEYURL rufen Sie das Kennwort ab. Rufen Sie die Verbindungsinformationen aus den von Service Verbinden or hinzugefügten Umgebungsvariablen ab und stellen Sie eine Verbindung mit Azure Cosmos DB für Apache Gremlin her. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten.

    using System;
    using System.Security.Authentication;
    using System.Net.Security;
    using System.Net.Http;
    using System.Security.Authentication;
    using System.Threading.Tasks;
    using System;
    using Gremlin.Net.Driver;
    using Azure.Identity;
    
    var gremlinEndpoint = Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT");
    var userName = Environment.GetEnvironmentVariable("AZURE_COSMOS_USERNAME");
    var gremlinPort = Int32.Parse(Environment.GetEnvironmentVariable("AZURE_COSMOS_PORT"));
    var listKeyUrl = Environment.GetEnvironmentVariable("AZURE_COSMOS_LISTKEYURL");
    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 password.
    var httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken.Token}");
    var response = await httpClient.POSTAsync(listKeyUrl);
    var responseBody = await response.Content.ReadAsStringAsync();
    var keys = JsonConvert.DeserializeObject<Dictionary<string, string>>(responseBody);
    var password = keys["primaryMasterKey"];
    
    // Connect to Azure Cosmos DB for Apache Gremlin
    var server = new GremlinServer(
        hostname: gremlinEndpoint,
        port: gremlinPort,
        username: userName,
        password: password,
        enableSsl: true
    );
    
    using var client = new GremlinClient(
        gremlinServer: server,
        messageSerializer: new Gremlin.Net.Structure.IO.GraphSON.GraphSON2MessageSerializer()
    );        
    
    

Verbindungszeichenfolge

Standardname der Umgebungsvariablen Beschreibung Beispielswert
AZURE_COSMOS_HOSTNAME Ihr Unique Resource Identifier (UFI) für Gremlin <Azure-Cosmos-DB-account>.gremlin.cosmos.azure.com
AZURE_COSMOS_PORT Verbindungsport 443
AZURE_COSMOS_USERNAME Ihr Benutzername /dbs/<database>/colls/<collection or graphs>
AZURE_COSMOS_PASSWORD Ihr Kennwort <password>

Beispielcode

Lesen Sie die schritte und den folgenden Code, um mithilfe eines Verbindungszeichenfolge eine Verbindung mit Azure Cosmos DB für Gremlin herzustellen.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Gremlin.Net
    
  2. Rufen Sie die Verbindungsinformationen aus den von Service Verbinden or hinzugefügten Umgebungsvariablen ab und stellen Sie eine Verbindung mit Azure Cosmos DB für Apache Gremlin her.

    using System;
    using Gremlin.Net.Driver;
    
    var gremlinEndpoint = Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT");
    var userName = Environment.GetEnvironmentVariable("AZURE_COSMOS_USERNAME");
    var password = Environment.GetEnvironmentVariable("AZURE_COSMOS_PASSWORD");
    var gremlinPort = Int32.Parse(Environment.GetEnvironmentVariable("AZURE_COSMOS_PORT"));
    
    var server = new GremlinServer(
        hostname: gremlinEndpoint,
        port: gremlinPort,
        username: userName,
        password: password,
        enableSsl: true
    );
    
    using var client = new GremlinClient(
        gremlinServer: server,
        messageSerializer: new Gremlin.Net.Structure.IO.GraphSON.GraphSON2MessageSerializer()
    );
    

Dienstprinzipal

Standardname der Umgebungsvariablen Beschreibung Beispielswert
AZURE_COSMOS_LISTKEYURL Die URL zum Abrufen der Verbindungszeichenfolge https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<Azure-Cosmos-DB-account>/listKeys?api-version=2021-04-15
AZURE_COSMOS_SCOPE Ihr verwalteter Identitätsumfang https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT Ihr Ressourcenendpunkt https://<Azure-Cosmos-DB-account>.documents.azure.com:443/
AZURE_COSMOS_HOSTNAME Ihr Unique Resource Identifier (UFI) für Gremlin <Azure-Cosmos-DB-account>.gremlin.cosmos.azure.com
AZURE_COSMOS_PORT Gremlin-Verbindungsport 10350
AZURE_COSMOS_USERNAME Ihr Benutzername </dbs/<database>/colls/<collection or graphs>
AZURE_COSMOS_CLIENTID Ihre Client-ID <client-ID>
AZURE_COSMOS_CLIENTSECRET Ihr geheimer Clientschlüssel <client-secret>
AZURE_COSMOS_TENANTID Ihre Mandanten-ID <tenant-ID>

Beispielcode

In den schritten und code below to connect to Azure Cosmos DB for Gremlin using a service principal.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Gremlin.Net
    dotnet add package Azure.Identity
    
  2. Rufen Sie ein Zugriffstoken für die verwaltete Identität oder den Dienstprinzipal mithilfe der Clientbibliothek Azure.Identity ab. Verwenden Sie das Zugriffstoken, und AZURE_COSMOS_LISTKEYURL rufen Sie das Kennwort ab. Rufen Sie die Verbindungsinformationen aus den von Service Verbinden or hinzugefügten Umgebungsvariablen ab und stellen Sie eine Verbindung mit Azure Cosmos DB für Apache Gremlin her. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten.

    using System;
    using System.Security.Authentication;
    using System.Net.Security;
    using System.Net.Http;
    using System.Security.Authentication;
    using System.Threading.Tasks;
    using System;
    using Gremlin.Net.Driver;
    using Azure.Identity;
    
    var gremlinEndpoint = Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT");
    var userName = Environment.GetEnvironmentVariable("AZURE_COSMOS_USERNAME");
    var gremlinPort = Int32.Parse(Environment.GetEnvironmentVariable("AZURE_COSMOS_PORT"));
    var listKeyUrl = Environment.GetEnvironmentVariable("AZURE_COSMOS_LISTKEYURL");
    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 password.
    var httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken.Token}");
    var response = await httpClient.POSTAsync(listKeyUrl);
    var responseBody = await response.Content.ReadAsStringAsync();
    var keys = JsonConvert.DeserializeObject<Dictionary<string, string>>(responseBody);
    var password = keys["primaryMasterKey"];
    
    // Connect to Azure Cosmos DB for Apache Gremlin
    var server = new GremlinServer(
        hostname: gremlinEndpoint,
        port: gremlinPort,
        username: userName,
        password: password,
        enableSsl: true
    );
    
    using var client = new GremlinClient(
        gremlinServer: server,
        messageSerializer: new Gremlin.Net.Structure.IO.GraphSON.GraphSON2MessageSerializer()
    );        
    
    

Nächste Schritte

Befolgen Sie die unten aufgeführten Tutorials, um mehr über Service Connector zu erfahren.