Configuration Azure持久功能应用程序设置

Configuration Azure持久功能应用程序设置,configuration,application-settings,azure-durable-functions,Configuration,Application Settings,Azure Durable Functions,我正在尝试创建一个azure持久功能,但是很难找到关于这个主题的一些普通指南。我已经设置了DI,我试图读取函数的设置,但它崩溃了 我在VS2019中设置了一个Azure功能项目,并添加了一个持久的Orchestrator功能模板。我从类中删除了所有“静态”引用,在我将configurationbuilder添加到启动文件中之前,所有引用似乎都可以正常工作 有谁能向我解释一下这应该如何工作,或者给我一些指导,从哪里可以找到持久功能配置的一些解释?host.json、local.settings.j

我正在尝试创建一个azure持久功能,但是很难找到关于这个主题的一些普通指南。我已经设置了DI,我试图读取函数的设置,但它崩溃了

我在VS2019中设置了一个Azure功能项目,并添加了一个持久的Orchestrator功能模板。我从类中删除了所有“静态”引用,在我将configurationbuilder添加到启动文件中之前,所有引用似乎都可以正常工作

有谁能向我解释一下这应该如何工作,或者给我一些指导,从哪里可以找到持久功能配置的一些解释?host.json、local.settings.json中应该包含什么内容,以及在门户上发布时如何更改

我的情况就是这样。启动文件如下所示

{
  "version": "2.0"
}
使用Microsoft.Azure.Functions.Extensions.DependencyInjection; 使用Microsoft.Extensions.Configuration

[assembly: FunctionsStartup(typeof(DurableFunctions.Startup))]
namespace DurableFunctions
{
    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            var settings = new ConfigurationBuilder()
                .AddEnvironmentVariables()
                .Build();
        }
    }
}
json是这样的

{
  "version": "2.0"
}
local.settings.json

{
    "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet"
    }
}
启动调试器时出现的错误是

这是输出:

[11/8/2019 10:29:04 AM] A host error has occurred during startup operation '8b80bc94-2b98-408b-895f-c5697430acfd'.
[11/8/2019 10:29:04 AM] Microsoft.Azure.WebJobs.Extensions.DurableTask: Value cannot be null.
[11/8/2019 10:29:04 AM] Parameter name: hostConfiguration.
Value cannot be null.
Parameter name: provider

您希望替代函数启动类()中的ConfigureAppConfiguration方法

下面的示例通过添加用户机密进一步介绍了文档中提供的示例

public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
{
    FunctionsHostBuilderContext context = builder.GetContext();

    builder.ConfigurationBuilder
        .SetBasePath(context.ApplicationRootPath)
        .AddJsonFile("appsettings.json", optional: true, reloadOnChange: false)
        .AddJsonFile($"appsettings.{context.EnvironmentName}.json", optional: true, reloadOnChange: false)
        .AddUserSecrets(Assembly.GetExecutingAssembly(), true, true)
        .AddEnvironmentVariables();
}
默认情况下,配置文件(如appsettings.json)不会自动复制到Azure函数输出文件夹。请务必查看文档()以了解对.csproj文件的修改。还请注意,由于该方法附加现有提供程序的方式,因此必须始终以.AddEnvironmentVariables()结尾


有关Azure函数中配置的更深入讨论,请访问

是否可以共享Azure函数代码?您的函数代码似乎正在尝试访问未在local.settings.json文件中设置的配置值。