我有一个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
(不知道如何用'#'号正确格式化)
我尝试将键值对添加到开发环境的设置中: 配置开发无济于事。
答案 0 :(得分:3)
队列名称可以从“应用程序设置”中获取。添加名为例如的设置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 App或插槽中即可。