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

更新应用

在此页面上

  • Overview
  • 更新现有应用
  • 部署草稿

您可以通过更改其底层配置,然后部署这些更改来更新现有应用。您可以通过多种方法执行此操作:

  • App Services Admin 用户界面:内置于 MongoDB Atlas 中的 Web 应用程序。它包括一个图形界面,可用于您想要在应用中配置的任何内容。

  • App Services CLI:可用于在本地配置和部署应用的命令行工具。 您可以直接使用应用的底层配置文件。

  • Admin API:可用于以编程方式配置和部署应用的 REST API。Admin API 请求读取和写入应用的底层配置文件。

  • 自动 GitHub 部署:将应用配置与 GitHub 存储库同步的 GitHub 集成。您可以使用 GitHub 管理应用的配置文件,并通过将更改推送到存储库来部署应用。

要在 Atlas 用户界面中更新应用,您需要满足以下条件:

  • 具有项目所有者权限的MongoDB Atlas帐户。 要学习;了解如何注册免费帐户,请参阅 Atlas入门。

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

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

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

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

要使用 Admin API更新应用,您需要满足以下条件:

要根据Github存储库中的配置文件更新应用,必须为应用启用自动Github部署

1

首先,您可以通过 App Services 用户界面添加、修改或删除你希望包含在部署中的内容。如果已启用草稿,则更改将自动保存为草稿。

提示

另请参阅:

注意

您只能通过 App Services 用户界面或 Admin API 创建草稿更改。使用 Github 或 App Services CLI 所做的任何更改都独立于草稿更改进行部署。为避免可能出现的冲突或不一致,最好一次在一个地方进行更改。

2

您可以在部署应用程序之前查看对应用程序的所有草稿更改。

单击左侧导航菜单中的 Deployment ,导航到应用程序的部署历史记录表。 该表的第一行表示自上次部署以来所做的所有草稿更改。

点击第一行的Review Draft and Deploy按钮,查看表示您所做的草稿更改的底层应用配置文件的差异。

注意

由于合并冲突,您可能需要下载更改的草稿,或者将草稿保存在用户界面之外。 您可以在Review Draft and Deploy模式中通过点击右上角的Export State来执行此操作。 您可以使用下载内容来部署 App Services 中的更改,或作为在用户界面中重新应用更改时的参考。

3

查看草稿更改并确认要部署这些更改后,点击Deploy (部署)。 App Services 部署应用程序的新版本,其中包括草稿更改。 客户端应用程序将自动使用最新版本,因此请确保在必要时更新客户端代码以使用新版本。

1

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

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

获取应用配置文件的本地副本。要获取最新版本的应用,请运行以下命令:

appservices pull --remote="<Your App ID>"

您也可以从用户界面或使用 Admin API 导出应用程序配置文件的副本。要了解如何操作,请参阅导出应用

3

添加、删除和修改应用程序各个组件的配置文件

4

通过将更新的配置文件推送到远程应用来部署更改。

appservices push --remote="<Your App ID>"
1

草稿表示一群组应用程序更改,您可以将其作为一个单元进行部署或丢弃。 如果不创建草稿,则会自动单独部署更新。

要创建草稿,请将不带正文的POST请求发送到创建新的部署草稿端点:

curl -X POST 'https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/drafts' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <access_token>'

重要

每位用户一份草稿

每个用户一次只能通过用户界面或 Admin API创建一个草稿。 如果已经有草稿,则可以通过向丢弃部署草稿端点发送DELETE请求来丢弃与其关联的更改:

curl -X DELETE 'https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/drafts/{draftId}' \
-H 'Authorization: Bearer <access_token>'
2

您可以通过调用每个操作的 Admin API端点来配置应用并添加、修改或删除组件。 有关示例和详细参考信息,请参阅Atlas App Services Admin API。

如果您没有创建草稿,则每个成功的 Admin API请求都会立即将关联的更新部署到应用程序。

如果您创建了草稿,则每个成功的 Admin API请求都会将相关更新添加到草稿中。 发送针对要包含在草稿中的所有更改的请求。

3

如果您创建了草稿,则可以通过向部署草稿端点发送不带正文的POST请求来部署草稿中的所有更改:

curl -X POST \
'https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/drafts/{draftId}/deployment' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <access_token>' \

启用自动Github部署后,您的应用将始终使用链接存储库中最近提交的配置文件。 有关如何组织和定义配置文件的详细信息,请参阅应用配置。

通过在本地添加、修改和删除配置文件来更新应用程序。

当您准备好部署更改时,请提交配置文件,然后将其推送到Github :

git add -A
git commit -m "<commit message>"
git push origin <branch name>

推送后, Github集成会根据最新提交中的配置文件自动部署应用的更新版本。

部署草稿是对应用的一组或多个更新,您可以将其作为单个组应用或丢弃。当更改包含交互的服务或函数时,部署草稿非常有用。

App Services UI 默认使用部署草稿。启用后,您在 Atlas App Services 用户界面中对 App 配置所做的任何更改都会添加到您手动部署的草稿中。如果您希望在用户界面中保存时立即部署,您可以禁用用户界面草稿

App Services CLI 和GitHub 部署都会自动为您创建和部署草稿。 当您向部署分支运行 CLI推送命令或git push时,CLI 或 GitHub 应用会根据当前部署的配置创建本地配置文件的差异。 然后,它根据差异创建并部署草稿。

App Services Admin API 允许您手动创建和部署草稿。 要了解如何操作,请参阅部署变更组。

避免多个用户同时在用户界面或 API 草稿中做出相互冲突的更改。如果多个并发草稿包含相互冲突的更改,则您将无法部署其中一个或多个草稿。

例如,如果您通过 API 部署更改,但现有用户界面草稿存在冲突更改,则用户界面草稿将失效,并且您将无法部署它。

要从冲突中恢复,您可以从Deployment页面下载用户界面草稿的配置文件。 您可以使用这些内容作为参考,在用户界面中重新应用更改,或直接使用 CLI 或 Admin API 部署更改。

如果您希望在用户界面中保存时立即部署,则可以禁用用户界面草稿。此设置不会阻止您使用 Admin API 手动创建草稿。

要直接从用户界面禁用用户界面草稿,请执行以下操作:

  1. 单击左侧导航菜单中的 Deployment

  2. 单击 Configuration 标签页

  3. Disable Drafts in Atlas App Services标题下,单击Disable Drafts ,然后在模式窗口中确认您的决定。

要使用 Admin API禁用用户界面草稿,请向配置部署端点发送请求,并将ui_drafts_disabled设立为true

curl -X PATCH https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/deploy/config \
-H 'Authorization: Bearer <access_token>' \
-H 'Content-Type: application/json' \
-d '{
"ui_drafts_disabled": true,
"automatic_deployment": { "enabled": false, "installationIds": [], "lastModified": 0 }
}'

后退

获取应用元数据