1

我有一个 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

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

我尝试在开发环境的设置中添加一个键值对: CONFIGURATION DEV 无济于事。

4

1 回答 1

3

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

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

显然,您可以为 Dev 与 Test Vs Prod 环境设置不同的值,只要它们位于单独的函数应用程序或插槽中。

于 2018-08-05T18:12:11.110 回答