以编程方式将应用程序设置添加到Azure功能

时间:2019-09-13 02:48:09

标签: azure .net-core azure-functions automated-deployment azure-application-settings

我需要以编程方式将新的应用程序设置添加到azure功能,而不必每次引入新设置时都从azure门户手动添加它。是否有任何nuget软件包或一些我可以用来使其自动化的工具?

这个想法是,当我们从一个环境部署到另一个环境以自动化此过程而不必手动执行此操作时。

谢谢。

2 个答案:

答案 0 :(得分: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之后,您可以在“应用程序设置”功能上更改设置的值。

enter image description here

答案 1 :(得分:0)

听起来像您只需要一种工具即可添加或更新应用程序设置,而无需通过门户手动进行操作?我建议将azure cli作为一个不错的选择。通过ARM template也可以。我们经常看到用户与Azure DevOps之类的工具一起使用这些选项来自动化和管理多个环境。