获取相同的 Azure Function Queue Trigger 代码以根据应用程序设置定位 2 个不同的队列

Get same Azure Function Queue Trigger code to target 2 different queues based on app settings

我有一个 azure 函数,我想将其作为目标 2 个不同的队列。
我真的不想有 2 个单独的存储库来管理并试图使它们保持相同。为了测试我的功能,我一直在使用预编译器语句,并认为我可以像这样简单地扩展它:

public static class ProdIndividualParse
{
#if DEBUG
    [FunctionName("TESTIndividualParse")]
    [Timeout("60:00:00")]
    public async static Task Run([QueueTrigger("parse-to-cosmos", Connection = "QueueAddress")]string myQueueItem, TraceWriter log)

#elif RELEASE
     [FunctionName("PRODIndividualParse")]
    [Timeout("10:00:00")]
    public async static Task Run([QueueTrigger("prod-cosmos-parse", Connection = "QueueAddress")]string myQueueItem, TraceWriter log)

#elif DEV
     [FunctionName("DEVIndividualParse")]
    [Timeout("10:00:00")]
    public async static Task Run([QueueTrigger("dev-cosmos-parse", Connection = "QueueAddress")]string myQueueItem, TraceWriter log)

#endif

(不知道如何使用“#”符号正确格式化)

我试过在开发环境的设置中添加键值对: 配置开发无济于事。

队列名称可以从应用程序设置中获取。添加一个名为 e.g. 的设置myqueuename 然后将函数定义为

[FunctionName("IndividualParse")]
[Timeout("10:00:00")]
public async static Task Run([QueueTrigger("%myqueuename%", Connection = "QueueAddress")] 
    string myQueueItem, TraceWriter log)

显然,您可以为 Dev vs Test Vs Prod 环境设置不同的值,只要它们位于不同的 Function Apps 或插槽中即可。