获取相同的 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 或插槽中即可。
我有一个 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 或插槽中即可。