Integrieren von Azure Cosmos DB for MongoDB mit Service Connector
Artikel
Diese Seite zeigt unterstützte Authentifizierungsmethoden und Clients und zeigt Beispielcode, den Sie verwenden können, um die Azure Cosmos DB für MongoDB mit anderen Clouddiensten mithilfe von Service Verbinden or zu verbinden. Möglicherweise können Sie weiterhin eine Verbindung mit Azure Cosmos DB für MongoDB in anderen Programmiersprachen herstellen, ohne Service Verbinden or zu verwenden. Auf dieser Seite werden auch die Namen und Werte der Standardumgebungsvariablen (oder die Spring Boot-Konfiguration) 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 MongoDB 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 MongoDB mithilfe von 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
Java - Spring Boot
Nein
Nein
Ja
Nein
Node.js
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, mit Ausnahme des Clienttyps "Java - Spring Boot", der nur die Methode "Secret/Verbindungszeichenfolge" unterstützt. Alle anderen Clienttypen können jede der Authentifizierungsmethoden verwenden, um mithilfe von Service Verbinden or eine Verbindung mit Azure Cosmos DB für MongoDB herzustellen.
Standardumgebungsvariablennamen oder Anwendungseigenschaften und Beispielcode
Verwenden Sie die nachstehenden Verbindungsdetails, um Computedienste mit Azure Cosmos DB zu verbinden. Auf dieser Seite werden auch Die Namen und Werte der Standardumgebungsvariablen (oder spring Boot-Konfiguration) angezeigt, die Sie beim Erstellen der Dienstverbindung erhalten, sowie Beispielcode. Ersetzen Sie den Platzhaltertext <mongo-db-admin-user>, <password>, <Azure-Cosmos-DB-API-for-MongoDB-account>, <subscription-ID>, <resource-group-name>, <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".
Lesen Sie die schritte und den folgenden Code, um mithilfe einer vom System zugewiesenen verwalteten Identität eine Verbindung mit Azure Cosmos DB für MongoDB herzustellen.
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_LISTCONNECTIONSTRINGURL rufen Sie die Verbindungszeichenfolge 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 MongoDB 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.Security.Cryptography.X509Certificates;
using System.Threading.Tasks;
using MongoDB.Driver;
using Azure.Identity;
using System.Text.Json;
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 = JsonSerializer.Deserialize<Dictionary<string, List<Dictionary<string, string>>>>(responseBody);
string connectionString = connectionStrings["connectionStrings"][0]["connectionString"];
// Connect to Azure Cosmos DB for MongoDB
var client = new MongoClient(connectionString);
Fügen Sie der Datei pom.xml die folgenden Abhängigkeiten hinzu:
Rufen Sie ein Zugriffstoken für die verwaltete Identität oder den Dienstprinzipal mithilfe von azure-identity. Verwenden Sie das Zugriffstoken, und AZURE_COSMOS_LISTCONNECTIONSTRINGURL rufen Sie die Verbindungszeichenfolge 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 MongoDB 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.
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import javax.net.ssl.*;
import java.net.InetSocketAddress;
import com.azure.identity.*;
import com.azure.core.credentital.*;
import java.net.http.*;
import java.net.URI;
String endpoint = System.getenv("AZURE_COSMOS_RESOURCEENDPOINT");
String listConnectionStringUrl = System.getenv("AZURE_COSMOS_LISTCONNECTIONSTRINGURL");
String scope = System.getenv("AZURE_COSMOS_SCOPE");
// Uncomment the following lines according to the authentication type.
// 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 connection string.
HttpClient client = HttpClient.newBuilder().build();
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(listConnectionStringUrl))
.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());
List<Map<String, String>> connectionStrings = responseBody.get("connectionStrings");
String connectionString = connectionStrings.get(0).get("connectionString");
// Connect to Azure Cosmos DB for MongoDB
MongoClientURI uri = new MongoClientURI(connectionString);
MongoClient mongoClient = new MongoClient(uri);
Der Authentifizierungstyp wird für spring boot nicht unterstützt.
Installieren Sie Abhängigkeiten.
pip install pymongo
pip install azure-identity
Rufen Sie im Code zugriffstoken über azure-identity, und verwenden Sie es, um die Verbindungszeichenfolge zu erwerben. 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 MongoDB 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.
import os
import pymongo
import requests
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
endpoint = os.getenv('AZURE_COSMOS_RESOURCEENDPOINT')
listConnectionStringUrl = os.getenv('AZURE_COSMOS_LISTCONNECTIONSTRINGURL')
scope = os.getenv('AZURE_COSMOS_SCOPE')
# Uncomment the following lines according to the authentication type.
# 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 connection string
session = requests.Session()
token = cred.get_token(scope)
response = session.post(listConnectionStringUrl, headers={"Authorization": "Bearer {}".format(token.token)})
keys_dict = response.json()
conn_str = keys_dict["connectionStrings"][0]["connectionString"]
# Connect to Azure Cosmos DB for MongoDB
client = pymongo.MongoClient(conn_str)
Installieren Sie Abhängigkeiten.
go get go.mongodb.org/mongo-driver/mongo
go get "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
go get "github.com/Azure/azure-sdk-for-go/sdk/azcore"
Rufen Sie im Code zugriffstoken über azidentity, und verwenden Sie es, um die Verbindungszeichenfolge zu erwerben. 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 MongoDB 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.
Rufen Sie im Code das Zugriffstoken über @azure/identity, und verwenden Sie es, um die Verbindungszeichenfolge zu erwerben. 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 MongoDB 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.
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
const { MongoClient, ObjectId } = require('mongodb');
const axios = require('axios');
let endpoint = process.env.AZURE_COSMOS_RESOURCEENDPOINT;
let listConnectionStringUrl = process.env.AZURE_COSMOS_LISTCONNECTIONSTRINGURL;
let scope = process.env.AZURE_COSMOS_SCOPE;
// Uncomment the following lines according to the authentication type.
// 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 connection string.
const config = {
method: 'post',
url: listConnectionStringUrl,
headers: {
'Authorization': `Bearer ${accessToken.token}`
}
};
const response = await axios(config);
const keysDict = response.data;
const connectionString = keysDict['connectionStrings'][0]['connectionString'];
const client = new MongoClient(connectionString);
Für andere Sprachen können Sie den MongoDB-Ressourcenendpunkt und andere Eigenschaften verwenden, die Service Verbinden or auf die Umgebungsvariablen festlegt, um eine Verbindung mit Azure Cosmos DB für MongoDB herzustellen. Details zu Umgebungsvariablen finden Sie unter Integrieren von Azure Cosmos DB für MongoDB mit Service Verbinden or.
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_LISTCONNECTIONSTRINGURL rufen Sie die Verbindungszeichenfolge 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 MongoDB 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.Security.Cryptography.X509Certificates;
using System.Threading.Tasks;
using MongoDB.Driver;
using Azure.Identity;
using System.Text.Json;
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 = JsonSerializer.Deserialize<Dictionary<string, List<Dictionary<string, string>>>>(responseBody);
string connectionString = connectionStrings["connectionStrings"][0]["connectionString"];
// Connect to Azure Cosmos DB for MongoDB
var client = new MongoClient(connectionString);
Fügen Sie der Datei pom.xml die folgenden Abhängigkeiten hinzu:
Rufen Sie ein Zugriffstoken für die verwaltete Identität oder den Dienstprinzipal mithilfe von azure-identity. Verwenden Sie das Zugriffstoken, und AZURE_COSMOS_LISTCONNECTIONSTRINGURL rufen Sie die Verbindungszeichenfolge 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 MongoDB 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.
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import javax.net.ssl.*;
import java.net.InetSocketAddress;
import com.azure.identity.*;
import com.azure.core.credentital.*;
import java.net.http.*;
import java.net.URI;
String endpoint = System.getenv("AZURE_COSMOS_RESOURCEENDPOINT");
String listConnectionStringUrl = System.getenv("AZURE_COSMOS_LISTCONNECTIONSTRINGURL");
String scope = System.getenv("AZURE_COSMOS_SCOPE");
// Uncomment the following lines according to the authentication type.
// 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 connection string.
HttpClient client = HttpClient.newBuilder().build();
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(listConnectionStringUrl))
.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());
List<Map<String, String>> connectionStrings = responseBody.get("connectionStrings");
String connectionString = connectionStrings.get(0).get("connectionString");
// Connect to Azure Cosmos DB for MongoDB
MongoClientURI uri = new MongoClientURI(connectionString);
MongoClient mongoClient = new MongoClient(uri);
Der Authentifizierungstyp wird für spring boot nicht unterstützt.
Installieren Sie Abhängigkeiten.
pip install pymongo
pip install azure-identity
Rufen Sie im Code zugriffstoken über azure-identity, und verwenden Sie es, um die Verbindungszeichenfolge zu erwerben. 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 MongoDB 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.
import os
import pymongo
import requests
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
endpoint = os.getenv('AZURE_COSMOS_RESOURCEENDPOINT')
listConnectionStringUrl = os.getenv('AZURE_COSMOS_LISTCONNECTIONSTRINGURL')
scope = os.getenv('AZURE_COSMOS_SCOPE')
# Uncomment the following lines according to the authentication type.
# 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 connection string
session = requests.Session()
token = cred.get_token(scope)
response = session.post(listConnectionStringUrl, headers={"Authorization": "Bearer {}".format(token.token)})
keys_dict = response.json()
conn_str = keys_dict["connectionStrings"][0]["connectionString"]
# Connect to Azure Cosmos DB for MongoDB
client = pymongo.MongoClient(conn_str)
Installieren Sie Abhängigkeiten.
go get go.mongodb.org/mongo-driver/mongo
go get "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
go get "github.com/Azure/azure-sdk-for-go/sdk/azcore"
Rufen Sie im Code zugriffstoken über azidentity, und verwenden Sie es, um die Verbindungszeichenfolge zu erwerben. 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 MongoDB 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.
Rufen Sie im Code das Zugriffstoken über @azure/identity, und verwenden Sie es, um die Verbindungszeichenfolge zu erwerben. 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 MongoDB 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.
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
const { MongoClient, ObjectId } = require('mongodb');
const axios = require('axios');
let endpoint = process.env.AZURE_COSMOS_RESOURCEENDPOINT;
let listConnectionStringUrl = process.env.AZURE_COSMOS_LISTCONNECTIONSTRINGURL;
let scope = process.env.AZURE_COSMOS_SCOPE;
// Uncomment the following lines according to the authentication type.
// 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 connection string.
const config = {
method: 'post',
url: listConnectionStringUrl,
headers: {
'Authorization': `Bearer ${accessToken.token}`
}
};
const response = await axios(config);
const keysDict = response.data;
const connectionString = keysDict['connectionStrings'][0]['connectionString'];
const client = new MongoClient(connectionString);
Für andere Sprachen können Sie den MongoDB-Ressourcenendpunkt und andere Eigenschaften verwenden, die Service Verbinden or auf die Umgebungsvariablen festlegt, um eine Verbindung mit Azure Cosmos DB für MongoDB herzustellen. Details zu Umgebungsvariablen finden Sie unter Integrieren von Azure Cosmos DB für MongoDB mit Service Verbinden or.
Rufen Sie die Verbindungszeichenfolge von Service Verbinden or hinzugefügte Umgebungsvariable ab, und stellen Sie eine Verbindung mit Azure Cosmos DB für MongoDB her.
using MongoDB.Driver;
var connectionString = Environment.GetEnvironmentVariable("AZURE_COSMOS_CONNECTIONSTRING");
var client = new MongoClient(connectionString);
Fügen Sie die folgende Abhängigkeit in Ihrer pom.xml-Datei hinzu:
Rufen Sie die Verbindungszeichenfolge von Service Verbinden or hinzugefügte Umgebungsvariable ab, und stellen Sie eine Verbindung mit Azure Cosmos DB für MongoDB her.
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
String connectionString = System.getenv("AZURE_COSMOS_CONNECTIONSTRING");
MongoClientURI uri = new MongoClientURI(connectionString);
MongoClient mongoClient = null;
try {
mongoClient = new MongoClient(uri);
} finally {
if (mongoClient != null) {
mongoClient.close();
}
}
Informationen zur Verwendung von Spring Data mit Azure Cosmos DB für die MongoDB-API zum Einrichten Ihrer Spring-Anwendung finden Sie unter Verwendung von Spring Data. Die Konfigurationseigenschaften spring.data.mongodb.database und spring.data.mongodb.uri werden auf Spring Apps by Service Verbinden or festgelegt.
Installieren Sie Abhängigkeiten.
pip install pymongo
Rufen Sie die Verbindungszeichenfolge von Service Verbinden or hinzugefügte Umgebungsvariable ab, und stellen Sie eine Verbindung mit Azure Cosmos DB für MongoDB her.
import os
import pymongo
conn_str = os.environ.get("AZURE_COSMOS_CONNECTIONSTRING")
client = pymongo.MongoClient(conn_str)
Installieren Sie Abhängigkeiten.
go get go.mongodb.org/mongo-driver/mongo
Rufen Sie die Verbindungszeichenfolge von Service Verbinden or hinzugefügte Umgebungsvariable ab, und stellen Sie eine Verbindung mit Azure Cosmos DB für MongoDB her.
Rufen Sie die Verbindungszeichenfolge von Service Verbinden or hinzugefügte Umgebungsvariable ab, und stellen Sie eine Verbindung mit Azure Cosmos DB für MongoDB her.
Für andere Sprachen können Sie den MongoDB-Ressourcenendpunkt und andere Eigenschaften verwenden, die Service Verbinden or auf die Umgebungsvariablen festlegt, um eine Verbindung mit Azure Cosmos DB für MongoDB herzustellen. Details zu Umgebungsvariablen finden Sie unter Integrieren von Azure Cosmos DB für MongoDB mit Service Verbinden or.
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_LISTCONNECTIONSTRINGURL rufen Sie die Verbindungszeichenfolge 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 MongoDB 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.Security.Cryptography.X509Certificates;
using System.Threading.Tasks;
using MongoDB.Driver;
using Azure.Identity;
using System.Text.Json;
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 = JsonSerializer.Deserialize<Dictionary<string, List<Dictionary<string, string>>>>(responseBody);
string connectionString = connectionStrings["connectionStrings"][0]["connectionString"];
// Connect to Azure Cosmos DB for MongoDB
var client = new MongoClient(connectionString);
Fügen Sie der Datei pom.xml die folgenden Abhängigkeiten hinzu:
Rufen Sie ein Zugriffstoken für die verwaltete Identität oder den Dienstprinzipal mithilfe von azure-identity. Verwenden Sie das Zugriffstoken, und AZURE_COSMOS_LISTCONNECTIONSTRINGURL rufen Sie die Verbindungszeichenfolge 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 MongoDB 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.
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import javax.net.ssl.*;
import java.net.InetSocketAddress;
import com.azure.identity.*;
import com.azure.core.credentital.*;
import java.net.http.*;
import java.net.URI;
String endpoint = System.getenv("AZURE_COSMOS_RESOURCEENDPOINT");
String listConnectionStringUrl = System.getenv("AZURE_COSMOS_LISTCONNECTIONSTRINGURL");
String scope = System.getenv("AZURE_COSMOS_SCOPE");
// Uncomment the following lines according to the authentication type.
// 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 connection string.
HttpClient client = HttpClient.newBuilder().build();
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(listConnectionStringUrl))
.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());
List<Map<String, String>> connectionStrings = responseBody.get("connectionStrings");
String connectionString = connectionStrings.get(0).get("connectionString");
// Connect to Azure Cosmos DB for MongoDB
MongoClientURI uri = new MongoClientURI(connectionString);
MongoClient mongoClient = new MongoClient(uri);
Der Authentifizierungstyp wird für spring boot nicht unterstützt.
Installieren Sie Abhängigkeiten.
pip install pymongo
pip install azure-identity
Rufen Sie im Code zugriffstoken über azure-identity, und verwenden Sie es, um die Verbindungszeichenfolge zu erwerben. 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 MongoDB 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.
import os
import pymongo
import requests
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
endpoint = os.getenv('AZURE_COSMOS_RESOURCEENDPOINT')
listConnectionStringUrl = os.getenv('AZURE_COSMOS_LISTCONNECTIONSTRINGURL')
scope = os.getenv('AZURE_COSMOS_SCOPE')
# Uncomment the following lines according to the authentication type.
# 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 connection string
session = requests.Session()
token = cred.get_token(scope)
response = session.post(listConnectionStringUrl, headers={"Authorization": "Bearer {}".format(token.token)})
keys_dict = response.json()
conn_str = keys_dict["connectionStrings"][0]["connectionString"]
# Connect to Azure Cosmos DB for MongoDB
client = pymongo.MongoClient(conn_str)
Installieren Sie Abhängigkeiten.
go get go.mongodb.org/mongo-driver/mongo
go get "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
go get "github.com/Azure/azure-sdk-for-go/sdk/azcore"
Rufen Sie im Code zugriffstoken über azidentity, und verwenden Sie es, um die Verbindungszeichenfolge zu erwerben. 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 MongoDB 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.
Rufen Sie im Code das Zugriffstoken über @azure/identity, und verwenden Sie es, um die Verbindungszeichenfolge zu erwerben. 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 MongoDB 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.
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
const { MongoClient, ObjectId } = require('mongodb');
const axios = require('axios');
let endpoint = process.env.AZURE_COSMOS_RESOURCEENDPOINT;
let listConnectionStringUrl = process.env.AZURE_COSMOS_LISTCONNECTIONSTRINGURL;
let scope = process.env.AZURE_COSMOS_SCOPE;
// Uncomment the following lines according to the authentication type.
// 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 connection string.
const config = {
method: 'post',
url: listConnectionStringUrl,
headers: {
'Authorization': `Bearer ${accessToken.token}`
}
};
const response = await axios(config);
const keysDict = response.data;
const connectionString = keysDict['connectionStrings'][0]['connectionString'];
const client = new MongoClient(connectionString);
Für andere Sprachen können Sie den MongoDB-Ressourcenendpunkt und andere Eigenschaften verwenden, die Service Verbinden or auf die Umgebungsvariablen festlegt, um eine Verbindung mit Azure Cosmos DB für MongoDB herzustellen. Details zu Umgebungsvariablen finden Sie unter Integrieren von Azure Cosmos DB für MongoDB mit Service Verbinden or.
Nächste Schritte
Befolgen Sie die unten aufgeführten Tutorials, um mehr über Service Connector zu erfahren.