导出应用
Overview
您可以通过导出应用的配置文件来下载其目录。这允许您将应用的配置保存在源代码控制中,并在本地使用 App Services CLI 和您首选的文本编辑器。
导出的目录包含应用大多数组件的配置文件,包括数据源、函数、Atlas Triggers和其他服务。有关导出的应用内容的更多信息,请参阅应用配置。
开始之前
要在 Atlas 用户界面中导出应用,您需要满足以下条件:
具有项目所有者权限的MongoDB Atlas帐户。 要学习;了解如何注册免费帐户,请参阅 Atlas入门。
要在 CLI 中导出应用,您需要满足以下条件:
具有项目所有者权限的 MongoDB Atlas 帐户。要了解如何注册免费帐户,请参阅开始使用 Atlas。
MongoDB Atlas Admin API 公钥/私钥对。API 密钥必须具有项目所有者权限才能使用 App Services Admin API。
已安装 App Services CLI 副本,并将其添加到本地系统
PATH
中。要了解操作方法,请参阅安装 App Services CLI。您的应用程序的客户端App ID。 这是包含应用名称的唯一string ,例如
"myapp-abcde"
。 要学习;了解如何查找 App ID,请参阅获取应用元数据。
要使用 Admin API导出应用,您需要满足以下条件:
具有项目所有者权限的 MongoDB Atlas 帐户。要了解如何注册免费帐户,请参阅开始使用 Atlas。
MongoDB Atlas Admin API 公钥/私钥对。API 密钥必须具有项目所有者权限才能使用 App Services Admin API。
您的应用的内部ObjectId 十六进制string 以及包含您的应用的ID 项目的项目Atlas 。要学习;了解如何查找这些元数据,请参阅获取应用元数据。
步骤
运行 App Export 命令
pull
命令将应用程序的配置文件下载到本地目录。 您可以通过使用--remote
标志指定客户端应用程序 ID 来选择要导出的应用程序。
appservices pull --remote=<Client App ID>
默认情况下,该命令会将文件提取到当前工作目录中。 您可以配置命令以创建新目录,而不是通过使用--local
标志指定目录路径。
appservices pull --remote=<App ID> --local=<Output Directory Path>
提示
--local
指定的目录不能已存在,否则 CLI 会引发错误并且不会拉取配置文件。
该命令还支持其他标志,您可以选择包含这些标志来自定义您的应用程序。 下表列出了您可能会使用的常见标志:
| 如果指定,外部依赖项将作为 |
| 如果指定,托管的静态资产将导出到 |
对 MongoDB Atlas 用户进行身份验证
使用您的 MongoDB Atlas API 密钥对调用管理员用户身份验证端点:
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "username": "<Public API Key>", "apiKey": "<Private API Key>" }'
如果身份验证成功,响应正文将包含一个具有access_token
值的JSON对象:
{ "access_token": "<access_token>", "refresh_token": "<refresh_token>", "user_id": "<user_id>", "device_id": "<device_id>" }
access_token
授予对App Services Admin API的访问权限。 您必须将其作为持有者令牌包含在所有 Admin API请求的Authorization
标头中。
导出您的应用
要导出应用,请向导出应用端点发送请求。
确保包括您的 Admin API access_token
、包含您的应用的Atlas项目的 groupId
以及应用的内部 appId
十六进制string :
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/export \ -H 'Authorization: Bearer <access_token>' \ -H 'Content-Type: application/json' \ --output ./exported-app.zip
您可以通过将部署_id
指定为URL查询参数来导出特定部署的配置:
https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/export?deployment={deploymentId}
如果请求成功,端点将返回200
响应,其中包含应用程序当前配置文件的.zip
目录。
输出
导出的应用包含应用每个组件的配置文件。 有关各类配置文件的详细信息,请参阅应用配置。
导出的配置目录具有以下结构:
app/ ├── root_config.json ├── auth/ │ ├── providers.json │ └── custom_user_data.json ├── data_sources/ │ └── <service name>/ │ ├── config.json │ └── <database>/ │ └── <collection>/ │ ├── schema.json │ └── rules.json ├── environments/ │ ├── no-environment.json │ ├── development.json │ ├── testing.json │ ├── qa.json │ └── production.json ├── functions/ │ ├── config.json │ ├── <function>.js │ └── <directory>/ │ └── <function>.js ├── graphql/ │ ├── config.json │ └── custom_resolvers │ └── <resolver name>.json ├── hosting/ │ ├── config.json │ ├── metadata.json │ └── files/ │ └── <files to host> ├── http_endpoints/ │ ├── config.json │ ├── data_api_config.json │ └── [Deprecated] <service name>/ │ ├── config.json │ └── incoming_webhooks/ │ ├── config.json │ └── source.js ├── log_forwarders/ │ └── <name>.json ├── sync/ │ └── config.json ├── triggers/ │ └── <trigger name>.json └── values/ └── <value name>.json