Docs 菜单
Docs 主页
/ /
Atlas App Services
/

复制应用

在此页面上

  • 概述
  • 开始之前
  • 步骤

您可以通过重复使用应用的配置文件和手动移植密钥来制作现有应用的副本。

如果出现以下情况,您可能需要复制应用程序:

  • 您可以使用功能分支进行开发。为每个功能分支使用唯一的应用副本,以避免冲突。

  • 您针对应用的工作版本运行测试。你可以复制每次测试运行的应用,以确保一致的启动状态。

  • 您可以使用本地部署模型将同一应用程序部署到跨区域的集群。您可以复制应用以在本地为多个地区提供服务。

要在 CLI 中复制应用,您需要满足以下条件:

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

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

  • 已安装 App Services CLI 副本,并将其添加到本地系统 PATH 中。要了解操作方法,请参阅安装 App Services CLI

要根据 GitHub 存储库中的配置文件复制应用,必须为应用启用自动 GitHub 部署

警告

如果已启用“自动 GitHub 部署”,则请勿使用 App Services CLI 推送对应用的更改。有关更多信息,请参阅避免从 CLI 进行更改。

1

使用 MongoDB Atlas Admin API 密钥登录到 CLI:

appservices login --api-key="<my api key>" --private-api-key="<my private api key>"
2

创建一个新的空白应用。 选择一个名称,并将部署模型和地区设置为您希望复制的应用使用的模型和地区。 有关更多信息,请参阅创建应用。

例子

# Create the new App
appservices app create \
--name "myapp-copy" \
--deployment-model "LOCAL" \
--provider-region "aws-us-west-2"
3

应用的配置文件不包含任何密钥的名称或值。

您必须有权访问原始应用的现有密钥值,并将它们手动添加到新应用中。如果您的应用没有任何密钥,您可以跳过此步骤。

要添加原始应用程序中的密钥,请执行以下操作:

  1. 按照视图密钥文档从导出的应用中获取所有密钥的名称。

  2. 将所有密钥的名称保存到安全位置。该列表不会包含实际的密钥值,但将密钥名称列表添加到新应用中会很有用。

  3. 查找每个原始应用的密钥值。

  4. 将每个密钥分别添加到新应用中。要了解如何操作,请参阅定义密钥。

重要

在复制配置文件之前添加密钥

某些 App Services 功能要求您先定义一个或多个密钥,然后才能定义和使用该功能。例如,OAuth 身份验证提供程序需要包含clientSecret值的密钥。

如果您推送引用未定义密钥的配置文件,则部署将失败。

4

将原始应用配置文件的最新版本拉取到本地文件系统。要了解如何操作,请参阅导出应用。

例子

# Pull the config files for an existing App
appservices pull --remote="myapp-abcde"

将原始应用中的所有配置文件( root_config.json除外)复制到新应用的配置目录中。您应该使用新应用的root_config.json并覆盖所有其他配置文件。

例子

# Copy all configuration files except for root_config.json
cp -r myapp myapp-temp
rm myapp-temp/root_config.json
cp -r myapp-temp/* myapp-copy
rm -rf myapp-temp
5

推送从原始应用中复制的配置文件。新应用将使用复制的配置文件自动更新和部署。

例子

# Navigate back to the new App
cd myapp-copy
# Push the copied configuration files to App Services
appservices push
1

创建一个新目录来存储复制的应用的配置文件。您可以为复制的应用创建新的存储库,或使用分支或子目录将两个应用的配置保留在同一存储库中。

例子

# Create a new directory for the copied App
mkdir myapp-copy
2

创建一个新的空白应用。选择与原始应用相同的名称,并将部署模型和地区设置为您希望复制的应用使用的模型和地区。有关更多信息,请参阅创建应用。

创建后,将新应用的配置文件保存到上一步中创建的目录(如果尚未创建)。

例子

# Navigate to the new App's directory
cd myapp-copy
# Create the new App. The create command saves the new
# App's configuration file directory in the current directory
appservices app create \
--name "myapp-copy" \
--deployment-model "LOCAL" \
--provider-region "aws-us-west-2"
cp -r myapp-copy/* .
rm -rf myapp-copy
# Navigate back to the root of the repo
cd ..
3

在新应用中,设置并启用自动 Github 部署。确保点向为新应用而不是原始应用创建的存储库、分支和目录。

4

应用的配置文件不包含任何密钥的名称或值。

您必须有权访问原始应用的现有密钥值,并将它们手动添加到新应用中。如果您的应用没有任何密钥,您可以跳过此步骤。

要添加原始应用程序中的密钥,请执行以下操作:

  1. 按照视图密钥文档从导出的应用中获取所有密钥的名称。

  2. 将所有密钥的名称保存到安全位置。该列表不会包含实际的密钥值,但将密钥名称列表添加到新应用中会很有用。

  3. 查找每个原始应用的密钥值。

  4. 将每个密钥分别添加到新应用中。要了解如何操作,请参阅定义密钥。

重要

在复制配置文件之前添加密钥

某些 App Services 功能要求您先定义一个或多个密钥,然后才能定义和使用该功能。例如,OAuth 身份验证提供程序需要包含clientSecret值的密钥。

如果您推送引用未定义密钥的配置文件,则部署将失败。

5

将原始应用中的所有配置文件( root_config.json除外)复制到新应用的配置目录中。您应该使用新应用的root_config.json并覆盖所有其他配置文件。

例子

# Copy all configuration files except for root_config.json
cp -r myapp myapp-temp
rm myapp-temp/root_config.json
cp -r myapp-temp/* myapp-copy
rm -rf myapp-temp
6

提交复制的应用程序配置文件,然后将其推送到 GitHub。新应用将使用复制的配置文件自动更新和部署。

例子

# Navigate back to the new App
cd myapp-copy
# Push the copied configuration files to GitHub
git add -A
git commit -m "Copy configuration from myapp"
git push origin main

后退

更新应用

来年

删除应用