连接到Edge Server - 预览
在此页面上
Edge Server实例配置完成并运行后,您可以从客户端应用程序连接到该实例。
您可以通过三种方式从客户端连接到Edge Server实例:
Atlas Device SDK : Device Sync自动跨设备同步数据以及与Edge Server同步数据。
MongoDB驱动程序和工具:使用支持的CRUD MongoDBAPI 子集执行 操作。
MongoDB Compass :探索同步到Edge Server实例的文档,并对这些文档进行更新。
从 连接到Edge ServerAtlas Device SDK
要从Edge Server Atlas Device SDK客户端连接到 实例,您的应用必须:
将应用配置上的同步 URL 设置为您在边缘服务器
edge_config.json
baseURL
字段中设置的可公开访问的 DNS 地址。如果未启用 TLS,请通过端口 80 使用 HTTP。
提示
当您的边缘服务器部署处于开发阶段时,为简单起见,我们建议通过端口 80 使用 HTTP 进行连接。 在投入生产之前,您可以与产品或客户代表协调,使用自签名证书配置 HTTPS。
有关自定义应用配置的信息,请参阅首选 SDK 的文档:
C++ SDK: 连接到App Services - C++ SDK
Flutter SDK:连接到App Services - Flutter SDK
Java SDK:连接到 Atlas App Services 后端 - Java SDK
Kotlin SDK:连接到 Atlas App Services - Kotlin SDK
.NET SDK:连接到 Atlas App Services 后端 - .NET SDK
Node.js SDK:连接到Atlas App Services后端 - Node.js SDK
React Native SDK:连接到Atlas App Services App - React Native SDK
Swift SDK:连接到 Atlas App Services 后端 - Swift SDK
支持的身份验证提供程序
在与 SDK 连接时, Edge Server目前支持以下身份验证提供者子集:
在边缘服务器之间漫游
SDK 客户端可以在Edge Server实例之间漫游,或者在Edge Server实例和Atlas之间漫游。
漫游需要更改客户端应用配置中的基本URL 。 有关详细信息,请参阅上面链接的 SDK 文档。
当 SDK 用户漫游时,客户端应用必须在连接到新服务器时执行客户端重置。 有关客户端重置的更多信息,请参阅客户端重置。
漫游用户和匿名身份验证
在Edge Server实例之间或Edge Server实例和Atlas之间漫游时,匿名用户不会跨服务器持久存在。 Atlas 为客户端连接到的每个服务器创建一个新的匿名用户,并且不会在服务器之间持久保存本地数据。
对于所有其他受支持的身份验证提供程序,用户会持久存在并可以跨服务器访问权限预期数据。
示例:SwiftUI 模板应用
要使用模板应用快速进行概念证明,您可以对 Swift 模板应用 进行如下修改 连接到Edge Server 实例:
配置服务器连接
在 Swift 模板应用的atlasConfig
中,将值设置为:
键 | 值 |
---|---|
baseUrl | Edge Server实例主机的可公开访问的 DNS。 这是 http:// ,如果启用了 TLS,则为 ,后跟https:// IPEdge Server容器配置中公开的 地址。 |
appId | 已启用边缘服务器的 App Services App 的应用程序 ID。有关查找应用程序 ID的更多信息,请参阅查找您的应用程序 ID。 |
调整应用传输安全设置(可选)
如果您的应用使用 TLS,则可以忽略此步骤。 如果您正在开发边缘服务器应用程序,并且在开发过程中未启用 TLS,则必须完成此步骤。
对于 iOS,Apple 默认禁用不安全连接。 您必须为可公开访问的 DNS 添加例外,以允许客户端应用程序连接到它。
选择应用目标,然后Go到 Signing & Capabilities标签页。 按+ Capability按钮,然后搜索App Transport Security Settings
。 将其添加到您的应用中。
为可公开访问的 DNS 添加例外域。 这应该只是字符串域,类似于: ec2-13-58-70-88.us-east-2.compute.amazonaws.com
。
这会在您的项目中创建一个Info.plist
文件。 Go 到此 文件 进行以下调整。
将此String
键更改为Dictionary
。 再添加两个键:
键 | 类型 | 值 |
---|---|---|
NSIncludesSubdomains | 布尔 | YES |
NSExceptionAllowsInsecureHTTPLoads | 布尔 | YES |
这会使您的 iOS 客户端连接到不安全的 HTTP DNS。
您的Info.plist
文件应类似于以下内容:
调整日志级别(可选)
如果您想获取有关与边缘服务器通信状态的其他详细信息,可以调整日志级别。
在App
文件中,您可以添加.onAppear
区块来设置日志级别。 在此区块中添加日志级别行以获取其他信息:
var body: some Scene { WindowGroup { ContentView(app: app) .environmentObject(errorHandler) .alert(Text("Error"), isPresented: .constant(errorHandler.error != nil)) { Button("OK", role: .cancel) { errorHandler.error = nil } } message: { Text(errorHandler.error?.localizedDescription ?? "") } .onAppear { Logger.shared.level = .trace } } }
有关设置日志级别的更多信息,请参阅日志记录 - Swift SDK。
运行应用
现在您可以构建并运行应用。 登录,该应用会连接到Edge Server实例。 当您创建新项目时,这些项目会与实例同步。 然后,该实例与Atlas App Services App 同步。
您可以从托管检查Edge Server实例的状态。 在客户端运行时,您可以在实例状态中看到"num_local_clients": 1
。 您还可以看到同步状态中反映的错误消息。
下次Edge Server实例与您的App Services App同步后,您可以看到同步的更改反映在链接的Atlas集合中。
重要
如果您以前使用 Device Sync 直接从客户端连接到 App Services App,则可能需要清除模拟器或设备上的状态。 重置缓存使客户端能够连接到Edge Server实例。
在控制台应用程序中,删除mongodb-realm
目录。 如果您使用的是 iOS 或 Android 模拟器或设备,请卸载并重新安装该应用。
使用Edge Server MongoDB驱动程序和工具连接到
您可以使用标准 MongoDB 驱动程序和工具连接到边缘服务器。 客户端使用专门的 MongoDB URI 连接字符串连接到边缘服务器并发送请求。
传输协议服务器接受这些传入连接。 您可以使用MongoDB URI 连接到托管。
此 URI 可能因身份验证类型而异。 从广义上讲,它类似于以下形式:
mongodb://<username>:<password>@<hostname>:<port>?authMechanism=PLAIN
元素 | 说明 |
---|---|
<username> | Atlas user的用户名。 对于电子邮件/密码用户,这可能类似于 first.last@example.com 。 如果此用户名包含@ 符号,则必须对@ 符号进行转义。 例如, john.doe@example.com 变为john.doe%40example.com 。 |
<password> | Atlas user的密码。 这可能看起来与 myPassword123456 类似。 |
<hostname> | Edge Server托管的公共 DNS。 在本地开发中,这可能是 localhost 。 否则,它可能看起来类似于ec2-13-58-70-88.us-east-2.compute.amazonaws.com 。 有关详细信息,请参阅安装和配置Edge Server实例。 |
<port> | Edge Server传输协议侦听端口。 默认端口为 27021 。 有关详细信息,请参阅安装和配置Edge Server实例。 |
authMechanism=PLAIN | 身份验证机制。 目前,唯一支持的值为 PLAIN 。 |
例子
EC 上托管的 实例的传输协议连接 URIEdge Server Amazon2可能如下所示:
mongodb://example-user:my-password@ec2-13-58-70-88.us-east-2.compute.amazonaws.com:27021?authMechanism=PLAIN
匿名连接
您可以启用匿名连接,并在不指定用户名或密码的情况下进行连接。 默认情况下,此选项处于禁用状态。
重要
在生产环境中禁用匿名连接
启用匿名连接可以绕过身份验证流程,从而简化开发过程。 这仅用于帮助开发;不要在生产环境中绕过身份验证流程。
使用相关标志配置Edge Server
要启用匿名连接,请启动Edge Server ,并将 --insecure-disable-auth
标志设立为 true
。 这样您就可以在不指定用户名和密码的情况下进行连接。
默认情况下,此设置为false
。 将此项设置为true
可以使连接绕过身份验证。
有关使用 edgectl
配置和启动Edge Server实例的详细信息,请参阅安装和配置Edge Server实例。
支持的 MongoDB API
Edge Server目前支持MongoDB API 的子集。 有关支持的 API 的信息,请参阅Edge Server MongoDB API支持 - 预览。
连接MongoDB Compass
您可以通过 使用Edge Server MongoDBURIMongoDB Compass 连接到 实例。Compass使您能够浏览同步到Edge Server实例的文档,并对这些文档进行更新。
限制
Edge Server对Compass的支持是有限的。 您可以将其用于:
浏览Edge Server实例中的数据库、集合和文档。
CRUD对 实例中的文档执行基本Edge Server 操作。
Edge Server目前不支持与Compass进行聚合。