【发布时间】:2021-08-06 14:32:35
【问题描述】:
我在 Azure 上部署了一个 node.js 应用程序作为“myClient”应用服务,以及几个包含特定于其运行时环境的值的配置文件:
- appconfig.json 用于在 localhost 上进行调试(不适用于 Azure)。
- appconfig.production.json 用于在应用服务生产槽“myClient”中运行。
- appconfig.development.json 用于在应用服务开发槽“myClient/development”中运行。
myClient 应用包含一个“environment.prod.ts”文件:
export const environment = {
production: true,
hmr: false,
appConfig: 'appconfig.development.json'
};
应用程序是从 DOS shell 使用“npm run publish”发布的。 我可以将包上传到“myClient/development”插槽,它运行良好,没有任何问题。
当我想为“myClient”生产槽创建一个包时,我对“environment.prod.ts”文件进行以下更改并再次发布。
appConfig: 'appconfig.production.json'
已发布的包已上传到 Azure 生产槽,运行良好,没有任何问题。
这是这种方法的问题:
- 必须修改源代码以指定环境。
- 发布需要 25-30 分钟。
- 无法在 Azure 中使用交换槽功能。
如果我可以访问应用程序设置(类似于 ASPNETCORE_ENVIRONMENT),我可以根据该插槽的环境选择正确的配置文件(在代码中),然后使用 Swap 从开发部署到生产。
我已经搜索了互联网(包括这个网站),看看是否有办法从节点应用程序访问应用服务应用程序设置,但没有找到任何描述如何完成此操作的文章。
是否可以使用 javascript 从节点应用程序引用 Azure 配置应用程序设置?
是否有替代过程来修改每个环境的源代码和发布?
【问题讨论】:
标签: javascript node.js azure environment-variables