是否可以根据 appsetting.json 中的值在 Azure Web 作业的初始加载期间设置“QueueTrigger”值?

问题描述

标准 Azure 存储队列触发线……

public async void ProcessQueueMessage([QueueTrigger("queue-abc")] string message,ILogger logger)

问题: 我想在 Azure Web 作业的初始加载期间根据 appsetting.json 中的值设置“QueueTrigger”值 (queue-abc)。

我使用 .Net Core 3.1 编写

这可能吗?

在回答后添加https://docs.microsoft.com/en-us/azure/app-service/webjobs-sdk-how-to#custom-binding-expressions

解决方法

如果您想使用 appsettings.json 中的设置(或来自函数应用的应用程序设置),您可以在触发器属性中使用用百分号括起来的设置名称。

例如:

appsettings.json

{
  "Values": {
    "QUEUENAME": "SomeQueueName"
  }
}

Azure 函数

[FunctionName("QueueTrigger")]
public static void Run(
    [QueueTrigger("%QUEUENAME%")]string myQueueItem,ILogger log)
{
    log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");
}