De Azure Cosmos DB voor Gremlin integreren met Service Connector
Artikel
Op deze pagina ziet u ondersteunde verificatiemethoden en -clients en ziet u voorbeeldcode die u kunt gebruiken om Azure Cosmos DB voor Apache Gremlin te verbinden met andere cloudservices met behulp van Service Connector. Mogelijk kunt u nog steeds verbinding maken met Azure Cosmos DB voor Gremlin in andere programmeertalen zonder serviceconnector te gebruiken. Op deze pagina worden ook de standaardnamen en waarden van omgevingsvariabelen weergegeven die u krijgt wanneer u de serviceverbinding maakt.
Ondersteunde rekenservices
Serviceconnector kan worden gebruikt om de volgende rekenservices te verbinden met Azure Cosmos DB voor Apache Gremlin:
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 voor Apache Gremlin met behulp van serviceconnector. 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
Node.js
Ja
Ja
Ja
Ja
PHP
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 voor Apache Gremlin 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 voor Apache Gremlin. Vervang voor elk voorbeeld hieronder de tijdelijke aanduidingen <Azure-Cosmos-DB-account>, , <database>, <collection or graphs>, <username>, <password><resource-group-name>, <subscription-ID>, <client-ID>, en<client-secret><tenant-id> door uw eigen gegevens. Raadpleeg het artikel Over interne serviceconnector voor meer informatie over naamconventies .
Raadpleeg de stappen en code hieronder om verbinding te maken met Azure Cosmos DB voor Gremlin met behulp van een door het systeem toegewezen beheerde identiteit.
Haal een toegangstoken op voor de beheerde identiteit of service-principal met behulp van de clientbibliotheek Azure.Identity. Gebruik het toegangstoken en AZURE_COSMOS_LISTKEYURL haal het wachtwoord op. Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
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 corresponding to the authentication type you want to use.
// 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()
);
Voeg de volgende afhankelijkheden toe aan uw pom.xml-bestand :
Haal een toegangstoken op voor de beheerde identiteit of service-principal met behulp van azure-identity. Gebruik het toegangstoken en AZURE_COSMOS_LISTKEYURL haal het wachtwoord op. Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
import org.apache.tinkerpop.gremlin.driver.Client;
import org.apache.tinkerpop.gremlin.driver.Cluster;
import javax.net.ssl.*;
import java.net.InetSocketAddress;
import com.azure.identity.*;
import com.azure.core.credential.*;
import java.net.http.*;
import java.net.URI;
int gremlinPort = Integer.parseInt(System.getenv("AZURE_COSMOS_PORT"));
String username = System.getenv("AZURE_COSMOS_USERNAME");
String gremlinEndpoint = System.getenv("AZURE_COSMOS_RESOURCEENDPOINT");
String listKeyUrl = System.getenv("AZURE_COSMOS_LISTKEYURL");
String scope = System.getenv("AZURE_COSMOS_SCOPE");
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system managed identity.
// DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder().build();
// For user assigned managed identity.
// DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder()
// .managedIdentityClientId(System.getenv("AZURE_COSMOS_CLIENTID"))
// .build();
// For service principal.
// ClientSecretCredential defaultCredential = new ClientSecretCredentialBuilder()
// .clientId(System.getenv("AZURE_COSMOS_CLIENTID"))
// .clientSecret(System.getenv("AZURE_COSMOS_CLIENTSECRET"))
// .tenantId(System.getenv("AZURE_COSMOS_TENANTID"))
// .build();
// Get the access token.
AccessToken accessToken = defaultCredential.getToken(new TokenRequestContext().addScopes(new String[]{ scope })).block();
String token = accessToken.getToken();
// Get the password.
HttpClient client = HttpClient.newBuilder().build();
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(listKeyUrl))
.header("Authorization", "Bearer " + token)
.POST()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
JSONParser parser = new JSONParser();
JSONObject responseBody = parser.parse(response.body());
String gremlinPassword = responseBody.get("primaryMasterKey");
// Connect to Azure Cosmos DB for Apache Gremlin
Cluster cluster;
Client client;
cluster = Cluster.addContactPoint(gremlinEndpoint).port(gremlinPort).credentials(username, password).create();
Installeer afhankelijkheden.
pip install gremlinpython
Gebruik azure-identity dit om te verifiëren met de beheerde identiteit of service-principal en verzend een aanvraag om het wachtwoord op te AZURE_COSMOS_LISTKEYURL halen. Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
from gremlin_python.driver import client, serializer
import requests
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
username = os.getenv('AZURE_COSMOS_USERNAME')
endpoint = os.getenv('AZURE_COSMOS_RESOURCEENDPOINT')
port = os.getenv('AZURE_COSMOS_PORT')
listKeyUrl = os.getenv('AZURE_COSMOS_LISTKEYURL')
scope = os.getenv('AZURE_COSMOS_SCOPE')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity
# cred = ManagedIdentityCredential()
# For user-assigned managed identity
# managed_identity_client_id = os.getenv('AZURE_COSMOS_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# For service principal
# tenant_id = os.getenv('AZURE_COSMOS_TENANTID')
# client_id = os.getenv('AZURE_COSMOS_CLIENTID')
# client_secret = os.getenv('AZURE_COSMOS_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
# Get the password
session = requests.Session()
token = cred.get_token(scope)
response = session.post(listKeyUrl, headers={"Authorization": "Bearer {}".format(token.token)})
keys_dict = response.json()
password = keys_dict['primaryMasterKey']
# Connect to Azure Cosmos DB for Apache Gremlin.
client = client.Client(
url=endpoint,
traversal_source="g",
username=username,
password=password,
message_serializer=serializer.GraphSONSerializersV2d0(),
)
Installeer afhankelijkheden.
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
go get github.com/go-gremlin/gremlin
Haal in code het toegangstoken op met behulp van azidentityhet toegangstoken en gebruik het vervolgens om het wachtwoord te verkrijgen. Haal verbindingsgegevens op uit de omgevingsvariabele die is toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
Haal in code het toegangstoken op met behulp van @azure/identityhet toegangstoken en gebruik het vervolgens om het wachtwoord te verkrijgen. Haal verbindingsgegevens op uit de omgevingsvariabele die is toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
import gremlin from 'gremlin'
const axios = require('axios');
let username = process.env.AZURE_COSMOS_USERNAME;
let endpoint = process.env.AZURE_COSMOS_RESOURCEENDPOINT;
let port = process.env.AZURE_COSMOS_PORT;
let listKeyUrl = process.env.AZURE_COSMOS_LISTKEYURL;
let scope = process.env.AZURE_COSMOS_SCOPE;
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned identity.
// const credential = new DefaultAzureCredential();
// For user-assigned identity.
// const clientId = process.env.AZURE_COSMOS_CLIENTID;
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: clientId
// });
// For service principal.
// const tenantId = process.env.AZURE_COSMOS_TENANTID;
// const clientId = process.env.AZURE_COSMOS_CLIENTID;
// const clientSecret = process.env.AZURE_COSMOS_CLIENTSECRET;
// Acquire the access token.
var accessToken = await credential.getToken(scope);
// Get the password.
const config = {
method: 'post',
url: listKeyUrl,
headers: {
'Authorization': `Bearer ${accessToken.token}`
}
};
const response = await axios(config);
const keysDict = response.data;
const password = keysDict['primaryMasterKey'];
const credentials = new gremlin.driver.auth.PlainTextSaslAuthenticator(
username,
password
)
const client = new gremlin.driver.Client(
endpoint,
{
credentials,
traversalsource: 'g',
rejectUnauthorized: true,
mimeType: 'application/vnd.gremlin-v2.0+json'
}
)
client.open()
Haal een toegangstoken op met een beheerde identiteit of een service-principal om de primaire sleutel van Azure Cosmos DB voor Gremlin te verkrijgen door REST API aan te roepen op AZURE_COSMOS_LISTKEYURL.
Voor andere talen kunt u het Apache Gremlin-eindpunt en andere eigenschappen gebruiken die serviceconnector instelt op de omgevingsvariabelen om verbinding te maken met Azure Cosmos DB voor Apache Gremlin-resource. Zie Azure Cosmos DB integreren voor Apache Gremlin met serviceconnector voor meer informatie over omgevingsvariabelen.
Raadpleeg de stappen en code hieronder om verbinding te maken met Azure Cosmos DB voor Gremlin met behulp van een door de gebruiker toegewezen beheerde identiteit.
Haal een toegangstoken op voor de beheerde identiteit of service-principal met behulp van de clientbibliotheek Azure.Identity. Gebruik het toegangstoken en AZURE_COSMOS_LISTKEYURL haal het wachtwoord op. Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
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 corresponding to the authentication type you want to use.
// 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()
);
Voeg de volgende afhankelijkheden toe aan uw pom.xml-bestand :
Haal een toegangstoken op voor de beheerde identiteit of service-principal met behulp van azure-identity. Gebruik het toegangstoken en AZURE_COSMOS_LISTKEYURL haal het wachtwoord op. Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
import org.apache.tinkerpop.gremlin.driver.Client;
import org.apache.tinkerpop.gremlin.driver.Cluster;
import javax.net.ssl.*;
import java.net.InetSocketAddress;
import com.azure.identity.*;
import com.azure.core.credential.*;
import java.net.http.*;
import java.net.URI;
int gremlinPort = Integer.parseInt(System.getenv("AZURE_COSMOS_PORT"));
String username = System.getenv("AZURE_COSMOS_USERNAME");
String gremlinEndpoint = System.getenv("AZURE_COSMOS_RESOURCEENDPOINT");
String listKeyUrl = System.getenv("AZURE_COSMOS_LISTKEYURL");
String scope = System.getenv("AZURE_COSMOS_SCOPE");
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system managed identity.
// DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder().build();
// For user assigned managed identity.
// DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder()
// .managedIdentityClientId(System.getenv("AZURE_COSMOS_CLIENTID"))
// .build();
// For service principal.
// ClientSecretCredential defaultCredential = new ClientSecretCredentialBuilder()
// .clientId(System.getenv("AZURE_COSMOS_CLIENTID"))
// .clientSecret(System.getenv("AZURE_COSMOS_CLIENTSECRET"))
// .tenantId(System.getenv("AZURE_COSMOS_TENANTID"))
// .build();
// Get the access token.
AccessToken accessToken = defaultCredential.getToken(new TokenRequestContext().addScopes(new String[]{ scope })).block();
String token = accessToken.getToken();
// Get the password.
HttpClient client = HttpClient.newBuilder().build();
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(listKeyUrl))
.header("Authorization", "Bearer " + token)
.POST()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
JSONParser parser = new JSONParser();
JSONObject responseBody = parser.parse(response.body());
String gremlinPassword = responseBody.get("primaryMasterKey");
// Connect to Azure Cosmos DB for Apache Gremlin
Cluster cluster;
Client client;
cluster = Cluster.addContactPoint(gremlinEndpoint).port(gremlinPort).credentials(username, password).create();
Installeer afhankelijkheden.
pip install gremlinpython
Gebruik azure-identity dit om te verifiëren met de beheerde identiteit of service-principal en verzend een aanvraag om het wachtwoord op te AZURE_COSMOS_LISTKEYURL halen. Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
from gremlin_python.driver import client, serializer
import requests
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
username = os.getenv('AZURE_COSMOS_USERNAME')
endpoint = os.getenv('AZURE_COSMOS_RESOURCEENDPOINT')
port = os.getenv('AZURE_COSMOS_PORT')
listKeyUrl = os.getenv('AZURE_COSMOS_LISTKEYURL')
scope = os.getenv('AZURE_COSMOS_SCOPE')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity
# cred = ManagedIdentityCredential()
# For user-assigned managed identity
# managed_identity_client_id = os.getenv('AZURE_COSMOS_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# For service principal
# tenant_id = os.getenv('AZURE_COSMOS_TENANTID')
# client_id = os.getenv('AZURE_COSMOS_CLIENTID')
# client_secret = os.getenv('AZURE_COSMOS_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
# Get the password
session = requests.Session()
token = cred.get_token(scope)
response = session.post(listKeyUrl, headers={"Authorization": "Bearer {}".format(token.token)})
keys_dict = response.json()
password = keys_dict['primaryMasterKey']
# Connect to Azure Cosmos DB for Apache Gremlin.
client = client.Client(
url=endpoint,
traversal_source="g",
username=username,
password=password,
message_serializer=serializer.GraphSONSerializersV2d0(),
)
Installeer afhankelijkheden.
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
go get github.com/go-gremlin/gremlin
Haal in code het toegangstoken op met behulp van azidentityhet toegangstoken en gebruik het vervolgens om het wachtwoord te verkrijgen. Haal verbindingsgegevens op uit de omgevingsvariabele die is toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
Haal in code het toegangstoken op met behulp van @azure/identityhet toegangstoken en gebruik het vervolgens om het wachtwoord te verkrijgen. Haal verbindingsgegevens op uit de omgevingsvariabele die is toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
import gremlin from 'gremlin'
const axios = require('axios');
let username = process.env.AZURE_COSMOS_USERNAME;
let endpoint = process.env.AZURE_COSMOS_RESOURCEENDPOINT;
let port = process.env.AZURE_COSMOS_PORT;
let listKeyUrl = process.env.AZURE_COSMOS_LISTKEYURL;
let scope = process.env.AZURE_COSMOS_SCOPE;
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned identity.
// const credential = new DefaultAzureCredential();
// For user-assigned identity.
// const clientId = process.env.AZURE_COSMOS_CLIENTID;
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: clientId
// });
// For service principal.
// const tenantId = process.env.AZURE_COSMOS_TENANTID;
// const clientId = process.env.AZURE_COSMOS_CLIENTID;
// const clientSecret = process.env.AZURE_COSMOS_CLIENTSECRET;
// Acquire the access token.
var accessToken = await credential.getToken(scope);
// Get the password.
const config = {
method: 'post',
url: listKeyUrl,
headers: {
'Authorization': `Bearer ${accessToken.token}`
}
};
const response = await axios(config);
const keysDict = response.data;
const password = keysDict['primaryMasterKey'];
const credentials = new gremlin.driver.auth.PlainTextSaslAuthenticator(
username,
password
)
const client = new gremlin.driver.Client(
endpoint,
{
credentials,
traversalsource: 'g',
rejectUnauthorized: true,
mimeType: 'application/vnd.gremlin-v2.0+json'
}
)
client.open()
Haal een toegangstoken op met een beheerde identiteit of een service-principal om de primaire sleutel van Azure Cosmos DB voor Gremlin te verkrijgen door REST API aan te roepen op AZURE_COSMOS_LISTKEYURL.
Voor andere talen kunt u het Apache Gremlin-eindpunt en andere eigenschappen gebruiken die serviceconnector instelt op de omgevingsvariabelen om verbinding te maken met Azure Cosmos DB voor Apache Gremlin-resource. Zie Azure Cosmos DB integreren voor Apache Gremlin met serviceconnector voor meer informatie over omgevingsvariabelen.
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.
Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin.
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()
);
Voeg de volgende afhankelijkheid toe aan uw pom.xml-bestand :
Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin.
Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin.
import os
from gremlin_python.driver import client, serializer
username = os.getenv('AZURE_COSMOS_USERNAME')
password = os.getenv('AZURE_COSMOS_PASSWORD')
endpoint = os.getenv('AZURE_COSMOS_RESOURCEENDPOINT')
port = os.getenv('AZURE_COSMOS_PORT')
client = client.Client(
url=endpoint,
traversal_source="g",
username=username,
password=password,
message_serializer=serializer.GraphSONSerializersV2d0(),
)
Afhankelijkheid installeren.
go get github.com/go-gremlin/gremlin
Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin.
Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin.
Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin.
Voor andere talen kunt u het Apache Gremlin-eindpunt en andere eigenschappen gebruiken die serviceconnector instelt op de omgevingsvariabelen om verbinding te maken met Azure Cosmos DB voor Apache Gremlin-resource. Zie Azure Cosmos DB integreren voor Apache Gremlin met serviceconnector voor meer informatie over omgevingsvariabelen.
Haal een toegangstoken op voor de beheerde identiteit of service-principal met behulp van de clientbibliotheek Azure.Identity. Gebruik het toegangstoken en AZURE_COSMOS_LISTKEYURL haal het wachtwoord op. Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
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 corresponding to the authentication type you want to use.
// 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()
);
Voeg de volgende afhankelijkheden toe aan uw pom.xml-bestand :
Haal een toegangstoken op voor de beheerde identiteit of service-principal met behulp van azure-identity. Gebruik het toegangstoken en AZURE_COSMOS_LISTKEYURL haal het wachtwoord op. Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
import org.apache.tinkerpop.gremlin.driver.Client;
import org.apache.tinkerpop.gremlin.driver.Cluster;
import javax.net.ssl.*;
import java.net.InetSocketAddress;
import com.azure.identity.*;
import com.azure.core.credential.*;
import java.net.http.*;
import java.net.URI;
int gremlinPort = Integer.parseInt(System.getenv("AZURE_COSMOS_PORT"));
String username = System.getenv("AZURE_COSMOS_USERNAME");
String gremlinEndpoint = System.getenv("AZURE_COSMOS_RESOURCEENDPOINT");
String listKeyUrl = System.getenv("AZURE_COSMOS_LISTKEYURL");
String scope = System.getenv("AZURE_COSMOS_SCOPE");
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system managed identity.
// DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder().build();
// For user assigned managed identity.
// DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder()
// .managedIdentityClientId(System.getenv("AZURE_COSMOS_CLIENTID"))
// .build();
// For service principal.
// ClientSecretCredential defaultCredential = new ClientSecretCredentialBuilder()
// .clientId(System.getenv("AZURE_COSMOS_CLIENTID"))
// .clientSecret(System.getenv("AZURE_COSMOS_CLIENTSECRET"))
// .tenantId(System.getenv("AZURE_COSMOS_TENANTID"))
// .build();
// Get the access token.
AccessToken accessToken = defaultCredential.getToken(new TokenRequestContext().addScopes(new String[]{ scope })).block();
String token = accessToken.getToken();
// Get the password.
HttpClient client = HttpClient.newBuilder().build();
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(listKeyUrl))
.header("Authorization", "Bearer " + token)
.POST()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
JSONParser parser = new JSONParser();
JSONObject responseBody = parser.parse(response.body());
String gremlinPassword = responseBody.get("primaryMasterKey");
// Connect to Azure Cosmos DB for Apache Gremlin
Cluster cluster;
Client client;
cluster = Cluster.addContactPoint(gremlinEndpoint).port(gremlinPort).credentials(username, password).create();
Installeer afhankelijkheden.
pip install gremlinpython
Gebruik azure-identity dit om te verifiëren met de beheerde identiteit of service-principal en verzend een aanvraag om het wachtwoord op te AZURE_COSMOS_LISTKEYURL halen. Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
from gremlin_python.driver import client, serializer
import requests
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
username = os.getenv('AZURE_COSMOS_USERNAME')
endpoint = os.getenv('AZURE_COSMOS_RESOURCEENDPOINT')
port = os.getenv('AZURE_COSMOS_PORT')
listKeyUrl = os.getenv('AZURE_COSMOS_LISTKEYURL')
scope = os.getenv('AZURE_COSMOS_SCOPE')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity
# cred = ManagedIdentityCredential()
# For user-assigned managed identity
# managed_identity_client_id = os.getenv('AZURE_COSMOS_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# For service principal
# tenant_id = os.getenv('AZURE_COSMOS_TENANTID')
# client_id = os.getenv('AZURE_COSMOS_CLIENTID')
# client_secret = os.getenv('AZURE_COSMOS_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
# Get the password
session = requests.Session()
token = cred.get_token(scope)
response = session.post(listKeyUrl, headers={"Authorization": "Bearer {}".format(token.token)})
keys_dict = response.json()
password = keys_dict['primaryMasterKey']
# Connect to Azure Cosmos DB for Apache Gremlin.
client = client.Client(
url=endpoint,
traversal_source="g",
username=username,
password=password,
message_serializer=serializer.GraphSONSerializersV2d0(),
)
Installeer afhankelijkheden.
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
go get github.com/go-gremlin/gremlin
Haal in code het toegangstoken op met behulp van azidentityhet toegangstoken en gebruik het vervolgens om het wachtwoord te verkrijgen. Haal verbindingsgegevens op uit de omgevingsvariabele die is toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
Haal in code het toegangstoken op met behulp van @azure/identityhet toegangstoken en gebruik het vervolgens om het wachtwoord te verkrijgen. Haal verbindingsgegevens op uit de omgevingsvariabele die is toegevoegd door Service Connector en maak verbinding met Azure Cosmos DB voor Apache Gremlin. Als u de onderstaande code gebruikt, moet u het gedeelte van het codefragment verwijderen voor het verificatietype dat u wilt gebruiken.
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
import gremlin from 'gremlin'
const axios = require('axios');
let username = process.env.AZURE_COSMOS_USERNAME;
let endpoint = process.env.AZURE_COSMOS_RESOURCEENDPOINT;
let port = process.env.AZURE_COSMOS_PORT;
let listKeyUrl = process.env.AZURE_COSMOS_LISTKEYURL;
let scope = process.env.AZURE_COSMOS_SCOPE;
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned identity.
// const credential = new DefaultAzureCredential();
// For user-assigned identity.
// const clientId = process.env.AZURE_COSMOS_CLIENTID;
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: clientId
// });
// For service principal.
// const tenantId = process.env.AZURE_COSMOS_TENANTID;
// const clientId = process.env.AZURE_COSMOS_CLIENTID;
// const clientSecret = process.env.AZURE_COSMOS_CLIENTSECRET;
// Acquire the access token.
var accessToken = await credential.getToken(scope);
// Get the password.
const config = {
method: 'post',
url: listKeyUrl,
headers: {
'Authorization': `Bearer ${accessToken.token}`
}
};
const response = await axios(config);
const keysDict = response.data;
const password = keysDict['primaryMasterKey'];
const credentials = new gremlin.driver.auth.PlainTextSaslAuthenticator(
username,
password
)
const client = new gremlin.driver.Client(
endpoint,
{
credentials,
traversalsource: 'g',
rejectUnauthorized: true,
mimeType: 'application/vnd.gremlin-v2.0+json'
}
)
client.open()
Haal een toegangstoken op met een beheerde identiteit of een service-principal om de primaire sleutel van Azure Cosmos DB voor Gremlin te verkrijgen door REST API aan te roepen op AZURE_COSMOS_LISTKEYURL.
Voor andere talen kunt u het Apache Gremlin-eindpunt en andere eigenschappen gebruiken die serviceconnector instelt op de omgevingsvariabelen om verbinding te maken met Azure Cosmos DB voor Apache Gremlin-resource. Zie Azure Cosmos DB integreren voor Apache Gremlin met serviceconnector voor meer informatie over omgevingsvariabelen.
Volgende stappen
Volg de onderstaande zelfstudies voor meer informatie over Service Connector.