是否可以根据 Azure 应用配置服务中存储的值设置 Azure 持久函数的 TaskHub 名称?我的host.json
文件是:
{
"version": "2.0",
"extensions": {
"durableTask": {
"hubName": "%TaskHubName%"
}
}
}
我正在尝试binder
在我的 Orchestration 客户端中使用:
[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"] });
这在我TaskHubName
定义时有效local.settings.json
:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"TaskHubName": "TestTaskHubName"
}
但是,当我从 Azure 应用程序配置中删除它local.settings.json
并取而代之的是检索此值时:
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 App Configuration 中的值被下拉并存在于应用程序的配置中,但它看起来并没有被使用。是否可以使用 Azure App Configuration 中的值作为 Durable Function 的 TaskHub 名称?