【问题标题】:Programmatically add application setting to azure functions以编程方式将应用程序设置添加到 azure 函数
【发布时间】:2019-09-13 02:48:09
【问题描述】:
我需要以编程方式将新的应用程序设置添加到 azure 函数,而无需在每次引入新设置时从 azure 门户手动添加。是否有任何 nuget 包或一些工具可以用来自动执行此操作?
我们的想法是,当我们从一个环境部署到另一个环境时,可以自动执行此过程,而无需手动执行此操作。
提前致谢。
【问题讨论】:
标签:
azure
.net-core
azure-functions
automated-deployment
azure-application-settings
【解决方案1】:
使用包含在包Microsoft.Extensions.Configuration 中的.Net 核心配置管理样式。 local.settings.json 文件不会发布到 Azure,而是 Azure 将从与函数关联的应用程序设置中获取设置。
在您的函数中添加Microsoft.Azure.WebJobs.ExecutionContext 上下文类型的参数,然后您可以在其中构建IConfigurationRoot 提供程序:示例:
[FunctionName("Stackoverflow")]
public static async Task Run([TimerTrigger("0 */15 * * * *")]TimerInfo myTimer,
TraceWriter log, ExecutionContext context,
CancellationToken ctx)
{
var config = new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
// This abstracts away the .json and app settings duality
var myValue = config["MyKey"];
}
部署到 Azure 后,您可以更改功能应用程序设置上的设置值。
【解决方案2】:
听起来您只是想要一个工具来添加或更新应用程序设置,而无需通过门户手动执行?我推荐azure cli 作为一个不错的选择。通过ARM template 也可以。我们经常看到用户将这些选项与 Azure DevOps 等工具结合使用来自动化和管理多个环境。