管理多个环境的设置?

Azure Function Apps 允许您拥有一个设置文件,例如 local.settings.json.


然后,您可以像这样使用这些设置:


[FunctionName("CustomSettings")]

public static Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "GET")]HttpRequestMessage req, TraceWriter log)

{

    log.Info("101 Azure Function Demo - Accessing Environment variables");

    var customSetting =  Environment.GetEnvironmentVariable("CustomSetting", EnvironmentVariableTarget.Process);

    return Task.FromResult(req.CreateResponse(HttpStatusCode.OK, new { setting= customSetting }));

}

这很好。然而,当需要管理多个环境的设置时,挑战变得明显,类似于配置转换。


我们如何跨多个环境管理应用程序设置?


例如,如果我从 dev 部署到 main,我如何检索 main 环境的设置?


大话西游666
浏览 204回答 1
1回答

料青山看我应如是

GetEnvironmentVariable足以检索Valueslocal.settings.json 中的设置以及 Azure 上的应用程序设置。我们只需要确保已在本地或 Azure 门户上配置这些设置。一般可能有两种配置:我们不想将开发配置与生产环境混合使用一种常见且简单的方法是访问门户来编辑应用程序设置。对于 VS 部署,我们可以在部署期间管理应用程序设置。如果我们想在部署前修改设置,只需在编辑应用程序设置后选择create profile而不是publish发布。如果我们选择像 VSTS 这样的持续交付,我们还可以使用Azure CLI或构建和发布管道中的相关扩展来管理应用程序设置。如果我们必须经常更改设置,也建议使用ARM 模板。我们希望将本地开发设置同步到生产环境使用Azure 功能核心工具。安装后,在 cmd(或 powershell、bash 等)中导航到您的函数应用目录(local.settings.json 所在的位置)。使用以下命令将应用设置从 Azure 获取到 local.setting.json 并将这些设置发布到 Azure。(请注意,fetch-app-settings 还会检索 Azure 上的连接设置,但仅发布更新应用程序设置。)func&nbsp;azure&nbsp;functionapp&nbsp;fetch-app-settings&nbsp;<functionappname> func&nbsp;azure&nbsp;functionapp&nbsp;publish&nbsp;<functionappname>&nbsp;--publish-settings-only如果我们想在 VSTS 中使用这个 cli,请注意local.setting.json需要提交到存储库(通过编辑 gitignore),因为通常不是。我们应该先设置一个 npm 任务来安装函数 cli,因为默认情况下它没有安装在基础设施上,然后添加另一个任务来运行命令。对于VS Code用户,只需单击一下即可。使用 cli 和 VS Code 时要注意覆盖提示,确保开发设置不会覆盖其他环境中有用的设置。解释编辑门户应用程序设置确实是手动的,但对于那些在线开发或不需要经常修改设置的人来说,在门户上修改是一个合理的选择。某些应用程序设置仅在 Azure 上有用。同样,并非local.setting.json 中的每个值都在 Azure 上有效。因此,按照设计 Azure 不会将这两个部分设置合并在一起。当然,GetEnvironmentVariable一旦正确设置,我们的自定义设置就可以在本地和 Azure环境中读取。
打开App,查看更多内容
随时随地看视频慕课网APP