Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure functions 使用Azure应用程序配置中设置的Azure持久功能TaskHub名称_Azure Functions_Azure Durable Functions_Azure App Configuration - Fatal编程技术网

Azure functions 使用Azure应用程序配置中设置的Azure持久功能TaskHub名称

Azure functions 使用Azure应用程序配置中设置的Azure持久功能TaskHub名称,azure-functions,azure-durable-functions,azure-app-configuration,Azure Functions,Azure Durable Functions,Azure App Configuration,是否可以从Azure应用程序配置服务中存储的值设置Azure持久功能的TaskHub名称?我的host.json文件是: { "version": "2.0", "extensions": { "durableTask": { "hubName": "%TaskHubName%" } } } 我正

是否可以从Azure应用程序配置服务中存储的值设置Azure持久功能的TaskHub名称?我的
host.json
文件是:

{
    "version": "2.0",
    "extensions": {
        "durableTask": {
            "hubName": "%TaskHubName%"
        }
    }
}
我正在我的编排客户端中尝试使用
活页夹

[FunctionName("Test_HttpStart")]
public static async Task<HttpResponseMessage> HttpStart(
    [HttpTrigger(AuthorizationLevel.Function, "get")] HttpRequestMessage req,
    IBinder binder)
{
    var starter = await binder.BindAsync<IDurableOrchestrationClient>(
        new DurableClientAttribute { TaskHub = Configuration["TaskHubName"] });

但是当我从
local.settings.json
中删除它并从Azure应用程序配置中检索此值时:

Configuration = new ConfigurationBuilder()
    .AddAzureAppConfiguration(options =>
    {
        _ = options.Connect(Environment.GetEnvironmentVariable("app-configuration-connection-string"))
            .Select(@"TaskHubName");
    })
    .AddEnvironmentVariables()
    .Build();
我收到错误消息:

Microsoft.Azure.WebJobs.Extensions.DurableTask:任务中心名称“%TaskHubName%”应仅包含字母数字字符,以字母开头,长度介于3和45之间。Microsoft.WindowsAzure.Storage:容器名称无效。有关有效容器命名的详细信息,请查看MSDN


因此,即使我可以看到Azure应用程序配置中的值被拉下来并存在于应用程序的配置中,但它看起来并没有被使用。是否可以使用Azure App Configuration中的值作为持久功能的TaskHub名称?

运行时绑定应该可以工作,但错误可能来自启动序列,该序列从host.json中获取值,该值用于其他功能,如

不幸的是,现在还没有办法解决这个问题


不过,您可以投票支持此方案。

谢谢您提供的信息。我会将你的回答标记为已回答,直到这成为可能。
Configuration = new ConfigurationBuilder()
    .AddAzureAppConfiguration(options =>
    {
        _ = options.Connect(Environment.GetEnvironmentVariable("app-configuration-connection-string"))
            .Select(@"TaskHubName");
    })
    .AddEnvironmentVariables()
    .Build();