此页显示了支持的身份验证方法和客户端,并演示了可用于使用服务连接器从 Azure 计算服务连接 MongoDB Atlas 群集的示例代码。 你仍可以使用其他编程语言连接到 MongoDB Atlas 群集,而无需使用服务连接器。 此页面还显示你在创建服务连接时获得的默认环境变量名称和值。
受支持的计算服务
服务连接器可用于将以下计算服务连接到 MongoDB Atlas 群集:
- Azure 应用服务
- Azure 容器应用 (Azure Container Apps)
- Azure Functions(Azure 功能服务)
- Azure Kubernetes 服务 (AKS)
受支持的身份验证类型和客户端类型
下表显示了使用服务连接器将计算服务连接到 MongoDB Atlas 群集时支持的身份验证方法和客户端的组合。 “是”表示支持该组合,“否”表示不支持该组合。
客户端类型 |
系统分配的托管标识 |
用户分配的管理标识 |
机密/连接字符串 |
服务主体 |
。网 |
否 |
否 |
是的 |
否 |
Go (pg) |
否 |
否 |
是的 |
否 |
Java (JDBC) |
否 |
否 |
是的 |
否 |
Java - Spring Boot (JDBC) |
否 |
否 |
是的 |
否 |
Node.js (pg) |
否 |
否 |
是的 |
否 |
PHP (原生) |
否 |
否 |
是的 |
否 |
Python (psycopg2) |
否 |
否 |
是的 |
否 |
Python-Django |
否 |
否 |
是的 |
否 |
Ruby (ruby-pg) |
否 |
否 |
是的 |
否 |
没有 |
否 |
否 |
是的 |
否 |
默认环境变量名称或应用程序属性和示例代码
根据连接的身份验证类型和客户端类型,参考下表中的连接详细信息和示例代码,将计算服务连接到 MongoDB Atlas 群集。 有关命名约定的详细信息,请参阅服务连接器内部一文。
连接字符串
警告
Microsoft 建议使用最安全的可用身份验证流。 本过程中介绍的身份验证流程需要非常高的信任度,并携带其他流中不存在的风险。 仅当其他更安全的流(如托管标识)不可行时,才应使用此流。
默认环境变量名称 |
DESCRIPTION |
示例值 |
MONGODBATLAS_CLUSTER_CONNECTIONSTRING |
.NET MongoDB Atlas 连接字符串 |
mongodb+srv://<database-username>:<database-password>@<cluster-URL>/?retryWrites=true&w=majority&appName=Cluster0 |
默认环境变量名称 |
DESCRIPTION |
示例值 |
MONGODBATLAS_CLUSTER_CONNECTIONSTRING |
JDBC MongoDB Atlas 连接字符串 |
jdbc:mongodb+srv://<database-username>:<database-password>@<cluster-URL>/?retryWrites=true&w=majority&appName=Cluster0 |
默认环境变量名称 |
DESCRIPTION |
示例值 |
MONGODBATLAS_CLUSTER_CONNECTIONSTRING |
Python MongoDB Atlas 连接字符串 |
mongodb+srv://<database-username>:<database-password>@<cluster-URL>/?retryWrites=true&w=majority&appName=Cluster0 |
默认环境变量名称 |
DESCRIPTION |
示例值 |
MONGODBATLAS_CLUSTER_CONNECTIONSTRING |
Django MongoDB Atlas 连接字符串 |
mongodb+srv://<database-username>:<database-password>@<cluster-URL>/?retryWrites=true&w=majority&appName=Cluster0 |
默认环境变量名称 |
DESCRIPTION |
示例值 |
MONGODBATLAS_CLUSTER_CONNECTIONSTRING |
Go MongoDB Atlas 连接字符串 |
mongodb+srv://<database-username>:<database-password>@<cluster-URL>/?retryWrites=true&w=majority&appName=Cluster0 |
默认环境变量名称 |
DESCRIPTION |
示例值 |
MONGODBATLAS_CLUSTER_CONNECTIONSTRING |
NodeJS MongoDB Atlas 连接字符串 |
mongodb+srv://<database-username>:<database-password>@<cluster-URL>/?retryWrites=true&w=majority&appName=Cluster0 |
默认环境变量名称 |
DESCRIPTION |
示例值 |
MONGODBATLAS_CLUSTER_CONNECTIONSTRING |
PHP 本机 MongoDB Atlas 连接字符串 |
mongodb+srv://<database-username>:<database-password>@<cluster-URL>/?retryWrites=true&w=majority&appName=Cluster0 |
默认环境变量名称 |
DESCRIPTION |
示例值 |
MONGODBATLAS_CLUSTER_CONNECTIONSTRING |
Ruby MongoDB Atlas 连接字符串 |
mongodb+srv:/<database-username>:<database-password>@<cluster-URL>/?retryWrites=true&w=majority&appName=Cluster0 |
默认环境变量名称 |
DESCRIPTION |
示例值 |
MONGODBATLAS_CLUSTER_CONNECTIONSTRING |
MongoDB Atlas 连接字符串 |
mongodb+srv://<database-username>:<database-password>@<cluster-URL>/?retryWrites=true&w=majority&appName=Cluster0 |
示例代码
请参阅下面的步骤和代码,以使用连接字符串连接到 MongoDB Atlas 群集。
安装依赖项。
dotnet add package MongoDb.Driver
从服务连接器添加的环境变量中获取连接字符串,并连接到 MongoDB Atlas。
using MongoDB.Driver;
var connectionString = Environment.GetEnvironmentVariable("MONGODBATLAS_CLUSTER_CONNECTIONSTRING");
var client = new MongoClient(connectionString);
在 pom.xml 文件中添加以下依赖项:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.4.2</version>
</dependency>
从服务连接器添加的环境变量中获取连接字符串,并连接到 MongoDB Atlas。
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("MONGODBATLAS_CLUSTER_CONNECTIONSTRING");
MongoClientURI uri = new MongoClientURI(connectionString);
MongoClient mongoClient = null;
try {
mongoClient = new MongoClient(uri);
} finally {
if (mongoClient != null) {
mongoClient.close();
}
}
安装依赖项。
pip install pymongo
从服务连接器添加的环境变量中获取连接字符串,并连接到 MongoDB Atlas。
import os
import pymongo
conn_str = os.environ.get("MONGODBATLAS_CLUSTER_CONNECTIONSTRING")
client = pymongo.MongoClient(conn_str)
- 安装依赖项。
go get go.mongodb.org/mongo-driver/mongo
- 从服务连接器添加的环境变量中获取连接字符串,并连接到 MongoDB Atlas。
import (
"context"
"fmt"
"log"
"os"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
defer cancel()
mongoDBConnectionString = os.Getenv("MONGODBATLAS_CLUSTER_CONNECTIONSTRING")
clientOptions := options.Client().ApplyURI(mongoDBConnectionString).SetDirect(true)
c, err := mongo.Connect(ctx, clientOptions)
if err != nil {
log.Fatalf("unable to initialize connection %v", err)
}
err = c.Ping(ctx, nil)
if err != nil {
log.Fatalf("unable to connect %v", err)
}
- 安装依赖项。
npm install mongodb
- 从服务连接器添加的环境变量中获取连接字符串,并连接到 MongoDB Atlas。
const { MongoClient, ObjectId } = require('mongodb');
const url = process.env.MONGODBATLAS_CLUSTER_CONNECTIONSTRING;
const client = new MongoClient(url);
对于其他语言,可以使用 MongoDB 资源终结点和其他属性,这些属性由 Service Connector 设置为环境变量,以连接到 MongoDB Atlas。 有关环境变量的详细信息,请参阅 将 MongoDB 与服务连接器集成。
后续步骤
参考下面列出的教程来详细了解服务连接器。