更新应用
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更新应用,您需要满足以下条件:
具有项目所有者权限的 MongoDB Atlas 帐户。要了解如何注册免费帐户,请参阅开始使用 Atlas。
MongoDB Atlas Admin API 公钥/私钥对。API 密钥必须具有项目所有者权限才能使用 App Services Admin API。
要根据Github存储库中的配置文件更新应用,必须为应用启用自动Github部署。
步骤
查看草稿更改
您可以在部署应用程序之前查看对应用程序的所有草稿更改。
单击左侧导航菜单中的 Deployment ,导航到应用程序的部署历史记录表。 该表的第一行表示自上次部署以来所做的所有草稿更改。
点击第一行的Review Draft and Deploy按钮,查看表示您所做的草稿更改的底层应用配置文件的差异。
注意
由于合并冲突,您可能需要下载更改的草稿,或者将草稿保存在用户界面之外。 您可以在Review Draft and Deploy模式中通过点击右上角的Export State来执行此操作。 您可以使用下载内容来部署 App Services 中的更改,或作为在用户界面中重新应用更改时的参考。
创建新草稿(可选)
草稿表示一群组应用程序更改,您可以将其作为一个单元进行部署或丢弃。 如果不创建草稿,则会自动单独部署更新。
要创建草稿,请将不带正文的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>'
对应用程序进行更改
您可以通过调用每个操作的 Admin API端点来配置应用并添加、修改或删除组件。 有关示例和详细参考信息,请参阅Atlas App Services Admin API。
如果您没有创建草稿,则每个成功的 Admin API请求都会立即将关联的更新部署到应用程序。
如果您创建了草稿,则每个成功的 Admin API请求都会将相关更新添加到草稿中。 发送针对要包含在草稿中的所有更改的请求。
部署草稿
如果您创建了草稿,则可以通过向部署草稿端点发送不带正文的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 手动创建草稿。
要直接从用户界面禁用用户界面草稿,请执行以下操作:
单击左侧导航菜单中的 Deployment
单击 Configuration 标签页
在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 } }'