Overview
您可以通过重复使用应用的配置文件和手动移植密钥来制作现有应用的副本。
如果出现以下情况,您可能需要复制应用程序:
您可以使用功能分支进行开发。为每个功能分支使用唯一的应用副本,以避免冲突。
您针对应用的工作版本运行测试。你可以复制每次测试运行的应用,以确保一致的启动状态。
您可以使用本地部署模型将同一应用部署到跨区域的集群。 您可以复制应用以在本地提供服务多个地区提供服务。
开始之前
要在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进行更改。
创建新的应用程序
创建一个新的空白应用。 选择一个名称,并将部署模型和地区设置为您希望复制的应用使用的模型和地区。 有关更多信息,请参阅创建应用。
例子
# Create the new App appservices app create \ --name "myapp-copy" \ --deployment-model "LOCAL" \ --provider-region "aws-us-west-2"
将密钥迁移到新应用程序
应用的配置文件不包含任何密钥的名称或值。
您必须有权访问原始应用的现有密钥值,并将它们手动添加到新应用中。如果您的应用没有任何密钥,您可以跳过此步骤。
要添加原始应用程序中的密钥,请执行以下操作:
按照视图密钥文档从导出的应用中获取所有密钥的名称。
将所有密钥的名称保存到安全位置。该列表不会包含实际的密钥值,但将密钥名称列表添加到新应用中会很有用。
查找每个原始应用的密钥值。
将每个密钥分别添加到新应用中。 要学习;了解如何操作,请参阅定义密钥。
重要
在复制配置文件之前添加密钥
某些App Services功能要求您先定义一个或多个密钥,然后才能定义和使用该功能。 示例,OAuth身份验证提供程序需要包含clientSecret
值的密钥。
如果您推送引用未定义密钥的配置文件,则部署将失败。
复制配置文件
将原始应用配置文件的最新版本拉取到本地文件系统。 要学习;了解如何操作,请参阅导出应用。
例子
# 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
创建新的应用程序
创建一个新的空白应用。 选择与原始应用相同的名称,设立部署模型和地区设置为您希望复制的应用使用的模型和地区。 有关更多信息,请参阅创建应用。
创建后,将新应用的配置文件保存到上一步中创建的目录(如果尚未创建)。
例子
# 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 ..
设置自动Github部署
在新应用中,设立并启用自动Github部署。 确保点为新应用而不是原始应用创建的存储库、分支和目录。
将密钥迁移到新应用程序
应用的配置文件不包含任何密钥的名称或值。
您必须有权访问原始应用的现有密钥值,并将它们手动添加到新应用中。如果您的应用没有任何密钥,您可以跳过此步骤。
要添加原始应用程序中的密钥,请执行以下操作:
按照视图密钥文档从导出的应用中获取所有密钥的名称。
将所有密钥的名称保存到安全位置。该列表不会包含实际的密钥值,但将密钥名称列表添加到新应用中会很有用。
查找每个原始应用的密钥值。
将每个密钥分别添加到新应用中。 要学习;了解如何操作,请参阅定义密钥。
重要
在复制配置文件之前添加密钥
某些App Services功能要求您先定义一个或多个密钥,然后才能定义和使用该功能。 示例,OAuth身份验证提供程序需要包含clientSecret
值的密钥。
如果您推送引用未定义密钥的配置文件,则部署将失败。