Docs 菜单

更改部署模型

您可以更改现有应用的部署配置,以将其部署在新的模型、地区和/或云提供商中。 例如,您可以将应用从全球部署切换到特定的本地 Amazon Web Services 地区,或者将部署在美国东部的应用从 Amazon Web Services 切换到 Azure。有关所有可用选项的列表,请参阅部署模型和地区。

要移动现有应用,您需要开始部署迁移,该迁移会自动将应用的数据和配置移动到新配置。 迁移进程设计为尽可能无缝,但需要5到30分钟的停机时间。 您可以监控迁移状态,但在迁移完成之前不会处理任何请求。 有关详细信息,请参阅部署迁移进程。

重要

联系 MongoDB 支持部门

如果您计划更改生产应用程序的部署模型,我们建议您联系 MongoDB 技术支持。 要了解操作方法,请访问MongoDB 支持门户。

您可以随时开始部署迁移。单个应用一次只能进行一次迁移。如果尝试在另一个迁移正在进行时启动迁移,则新迁移不会运行,并且会失败并显示错误。

如果您从 Realm 软件开发工具包(Realm SDK)连接到应用,则必须将 SDK 更新到支持更改部署模型的版本。如果应用的 SDK 版本不支持更改部署模型,则需要重新安装应用。如果在升级之前更改部署模型,则 SDK 将无法连接,请求将失败。

最低 SDK 版本:

  • Realm C++ SDK v0.2.0

  • Realm Flutter SDK v1.2.0

  • Realm Kotlin SDK v1.10.0

  • Realm .NET SDK v11.1.0

  • Realm Node.js SDK v12.0.0(待发布)

  • Realm React Native SDK v12.0.0(待发布)

  • Realm Swift SDK v10.40.0

在更改部署模型之前,请注意以下事项:

  • 所有日志和草稿都将丢失。

  • 暂停的Atlas Triggers将重新启动。

  • 需要为新地区重新创建任何现有的私有端点。

  • Atlas Triggers 和 Device Sync 操作将在迁移期间暂停。

重要

部署迁移具有永久性

更改部署模型不是草稿。此更改保存后无法撤消。

您将需要以下内容来修改 Atlas 用户界面中应用的部署模型:

  • 具有项目所有者权限的 MongoDB Atlas 帐户。要了解如何注册免费帐户,请参阅开始使用 Atlas

要使用 Admin API修改应用程序的部署模型,您需要满足以下条件:

  • 具有项目所有者权限的 MongoDB Atlas 帐户。要了解如何注册免费帐户,请参阅开始使用 Atlas

  • MongoDB Atlas Admin API 公钥/私钥对。API 密钥必须具有项目所有者权限才能使用 App Services Admin API。

  • 您的应用的内部ObjectId 十六进制string 以及包含您的应用的ID 项目的项目Atlas 。要学习;了解如何查找这些元数据,请参阅获取应用元数据。

1

单击左侧导航菜单中的 App Settings 。 在设置页面上,找到Deployment Region部分并单击Edit按钮。

2

您可以将应用迁移到任何有效的部署配置。

首先,选择迁移到特定的 LOCAL地区或分布式在世界各地的GLOBAL部署。

如果您选择GLOBAL ,请选择全球区域之一来托管应用程序的配置数据。

如果您选择LOCAL ,请选择要部署到的特定云提供商和地区。 有关所有可用选项的列表,请参阅部署模型和地区。

3

指定所需的部署配置后,单击Continue 。 您应该会看到带有清单的确认提示。 查看并检查列表中的每个项目,以确认您了解迁移的影响。

查看清单后,点击Change region即可进行迁移。

4

在迁移过程中,用户界面会在页面顶部显示横幅,其中显示当前迁移状态。

5

某些功能和服务在迁移完成后将无法继续工作,必须重新配置。如果您使用这些功能,请按照以下清理步骤恢复功能:

功能
清理步骤

VPC 私有终结点是特定于地区的。迁移到新地区后,必须在新地区中创建新的 VPC 私有终结点并更新应用程序以使用新终结点。

如果您迁移到 Azure 或 GCP 中的全局部署或本地区域,则无法使用 VPC 私有终结点。

正在发送请求

迁移完成后,必须使用新 URL(如果适用)发送请求。

1

您可以将应用迁移到任何有效的部署配置。

首先,选择迁移到特定的LOCAL地区或分布在世界各地的GLOBAL部署。

如果您选择GLOBAL ,请选择全球区域之一来托管应用程序的配置数据。

{
"deployment_model": "GLOBAL",
"provider_region": "aws-us-east-1"
}

如果您选择LOCAL ,请选择要部署到的特定云提供商和地区。 有关所有可用选项的列表,请参阅部署模型和地区。

{
"deployment_model": "LOCAL",
"provider_region": "azure-westus"
}
2

要开始迁移,请在请求正文中使用要迁移到的部署模型和地区来调用创建部署迁移端点。

curl -X PUT \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/deployment_migration \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AccessToken>' \
-d '{
"deployment_model": "<DeploymentModel>",
"provider_region": "<RegionID>"
}'
3

要获取部署迁移的当前状态,请调用获取部署迁移端点。

curl -X GET \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/deployment_migration \
-H 'Authorization: Bearer <AccessToken>'
4

某些功能和服务在迁移完成后将无法继续工作,必须重新配置。如果您使用这些功能,请按照以下清理步骤恢复功能:

功能
清理步骤

VPC 私有终结点是特定于地区的。迁移到新地区后,必须在新地区中创建新的 VPC 私有终结点并更新应用程序以使用新终结点。

如果您迁移到 Azure 或 GCP 中的全局部署或本地区域,则无法使用 VPC 私有终结点。

正在发送请求

迁移完成后,必须使用新 URL(如果适用)发送请求。

部署迁移会在一系列阶段中将应用的数据和配置移动到一个或多个新区域。在每个阶段,进程将应用的一部分迁移到新模型,并清除之前的模型中的任何工件。

部署迁移按顺序经历以下阶段:

  1. "started":迁移已开始

  2. "downtime":迁移期间应用不可用

  3. "enabling_event_subscriptions":应用的触发器和 Device Sync 转换器已启用

  4. "cleanup":正在清理部署工件

  5. 迁移已完成,可能处于以下两种状态之一:

    • "successful":迁移已成功完成

    • "failed":迁移失败

迁移过程不会影响存储在 MongoDB Atlas 集群中的任何应用程序数据。

迁移过程会迁移应用的以下组件:

  • 用户账户

  • 应用配置文件

  • Triggers

  • API 服务

  • Device Sync 转换器

迁移过程不会迁移以下数据:

  • 应用程序日志

  • 部署草稿

  • 存储在 MongoDB Atlas 集群中的数据