配置应用环境
Overview
应用环境是一种组织开发工作流程和有效重复使用代码的方法。您可以使用应用环境定义不同的多个版本的全局配置值,然后通过更改应用的当前环境在它们之间切换。
App Services 支持一组内置环境名称,每个名称代表开发工作流程的一个阶段:
""
"development"
"testing"
"qa"
"production"
环境值
对于每个环境,您都可以定义一组环境值,当该环境处于活动状态时,您的应用程序可以使用这些值。
例如,您可以对 API 的 baseUrl
配置使用不同的值,具体取决于您要开发新功能还是部署到生产环境。
环境的值存储为单个 JSON 对象。可以将字段名称和相应的值设置为您想要的任何内容。
您可以按字段名称访问当前环境中的值:
在函数中使用 context.environment。
在规则表达式中使用
%%environment
。在应用的配置文件中使用模板化配置。
如何使用环境
每个环境标签都代表开发过程的特定阶段。您可以为每个环境定义一个单独的应用,其中每个应用使用同一组配置文件,但具有不同的环境标签。要了解如何操作,请参阅复制应用。
例如,一个典型的开发过程可能有三个开发阶段: development
、 testing
和 production
。您可以为每个阶段使用一个单独的应用,并为每个应用使用不同的环境值。
您还可以使用独特的应用程序来测试各个功能分支。例如,您可能拥有一个核心 development
应用,开发者为其功能分支创建了分支。当功能分支进入测试阶段时,可以改用核心 testing
应用。
要学习;了解如何将环境整合到 CI/CD 工作流程中,请参阅设置 CI/CD 管道。 有关管理实际应用程序的测试、部署和其他任务的完整示例,请参阅:如何使用Github Actions 为App Services应用构建 CI/CD 管道。
开始之前
要在 Atlas 用户界面中定义应用环境,您需要满足以下条件:
具有项目所有者权限的 MongoDB Atlas 帐户。要了解如何注册免费帐户,请参阅开始使用 Atlas。
要在CLI中定义应用环境,您需要满足以下条件:
具有项目所有者权限的 MongoDB Atlas 帐户。要了解如何注册免费帐户,请参阅开始使用 Atlas。
MongoDB Atlas Admin API 公钥/私钥对。API 密钥必须具有项目所有者权限才能使用 App Services Admin API。
已安装并添加到本地系统
PATH
的 App Services CLI 副本。要了解如何操作,请参阅安装 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 。要学习;了解如何查找这些元数据,请参阅获取应用元数据。
步骤
拉取最新版本的应用程序
获取应用配置文件的本地副本。要获取最新版本的应用,请运行以下命令:
appservices pull --remote="<Your App ID>"
您也可以从用户界面或使用 Admin API 导出应用程序配置文件的副本。要了解如何操作,请参阅导出应用。
定义一个或多个环境
/environments
目录包含每个支持的环境标签的.json
文件。 每个文件都定义了相应环境的所有环境值。
App Services支持以下环境标签:
""
"development"
"testing"
"qa"
"production"
打开要使用的每个环境的文件。 在每个文件中,向values
子文档添加一个条目,将值的名称映射到该环境中的值。
例子
以下配置定义了production
和development
环境中的baseUrl
环境值。
{ "values": { "baseUrl": "https://example.com" } }
{ "values": { "baseUrl": "https://dev.example.com" } }
对 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
标头中。
定义环境值
您可以通过调用“创建环境值”端点为应用定义环境值。 每个环境值都有一个名称和一个values
对象,该对象将环境标签映射到环境中的值。
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/environment_values/{environmentValueId} \ -H 'Authorization: Bearer <access_token>' \ -d '{ "name": "myEnvironmentValue", "values": { "none": "alpha", "development": "beta", "testing": "gamma", "qa": "delta", "production": "epsilon" } }'
设置您的应用环境
您可以通过调用“设置应用程序环境”端点来设立应用程序的环境标签。
curl -X PUT \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/environment \ -H 'Authorization: Bearer <access_token>' \ -d '{ "environment": "production" }'