创建带扩展的模板配置
Atlas App Services 支持替换操作符 (%()
),该操作符可动态解析 配置文件%%environment
中的 等 JSON 扩展。当您使用包含扩展的配置文件创建新应用时(使用App Services CLI或通过GitHub ),App Services 会自动解析扩展并使用解析的配置文件来创建应用。
使用替换操作符的配置文件是模板。 从模板创建应用后,该应用会使用反映创建应用时解析值的配置文件副本。 您可以使用同一模板创建多个具有不同配置的应用。
重要
替换操作符目前仅支持具有字符串值的配置字段。不能对布尔值、数字、对象或数组值使用扩展。
例如,您可以使用扩展来模板化clusterName
字段:
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "%(%%environment.values.clusterName)", "readPreference": "primaryPreferred", "wireProtocolEnabled": false } }
但是您不能使用扩展来模板化wireProtocolEnabled
字段,因为它具有布尔值:
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "Cluster0", "readPreference": "primaryPreferred", "wireProtocolEnabled": %(%%environment.values.wireProtocolEnabled) } }
定义模板
定义扩展替换
您可以使用%()
替换操作符和%%environment
扩展引用配置文件中的任何环境值。 为要模板化的每个配置文件定义扩展。
例子
mongodb-atlas
数据源的以下模板配置文件使用扩展根据环境动态解析clusterName
:
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "%(%%environment.values.clusterName)", "readPreference": "primaryPreferred", "wireProtocolEnabled": true } }
开发工作流程
您可以对任何应用使用配置扩展,但最有用的案例是使用存储在 GitHub 等外部版本控制系统中的源代码文件来开发生产应用程序的团队。 您可以创建独立的应用程序来开发功能或测试更改,并使用扩展功能根据应用程序的环境自定义应用程序。
创建通用模板的副本,并将环境设置为
development
。 如果您使用的是 Git,请在 GitHub 上创建新分支并签出本地副本。进行更改并根据开发应用程序在本地进行测试。 您对应用程序所做的任何更改都不会影响生产应用程序,但除非您配置替代方案,否则它们仍然可以读取和写入生产数据源和服务。
提交更改并将其合并回生产环境。 您可以设置 CI/CD 管道(该管道本身可以在
test
环境中创建应用程序)来验证更改并将其合并到生产分支中。合并更改后,您可以安全地删除开发应用程序并清理任何其他相关服务。