Azure v1 ServiceBusTrigger函数未提取消息

时间:2018-10-24 09:51:16

标签: c# azure azureservicebus azure-servicebus-queues

我有几个Azure函数将消息推送到ServiceBus中,其配置如下:

[FunctionName("UpsertEntity")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = "v1/Entity/Upsert")]HttpRequestMessage req, 
    [ServiceBus("archive", AccessRights.Manage, Connection = "ArchiveQueueConnectionString")] IAsyncCollector<ArchiveMessage> archiveAsyncCollector,
    [ServiceBus("crm", AccessRights.Manage, Connection = "CRMQueueConnectionString")] IAsyncCollector<BrokeredMessage> crmAsyncCollector, 
    TraceWriter log)

...

await archiveAsyncCollector.AddAsync(new ArchiveMessage(ConfigKeys.UpsertEntityMessageLabel, DateTime.UtcNow) { Content = jsonContent });
await crmAsyncCollector.AddAsync(new BrokeredMessage(entity) { Label = ConfigKeys.UpsertEntityMessageLabel });

我可以看到消息确实发布到了ServiceBus上没有问题。 然后,我有两个应该处理它们的函数,但它们似乎从未触发过。该函数定义为:

[FunctionName("ProcessMessage")]
public static void Run([ServiceBusTrigger("crm", AccessRights.Manage, Connection = "CRMQueueConnectionString")]BrokeredMessage message, TraceWriter log)

[FunctionName("ArchiveMessage")]
public async static void Run([ServiceBusTrigger("archive", AccessRights.Manage, Connection = "ArchiveQueueConnectionString")] Messages.ArchiveMessage archiveMessage,
    //[Table("MessageArchive")] CloudTable outputTable, TraceWriter log)
    TraceWriter log)

似乎都没有被触发,日志也为空,甚至没有异常。

我已经仔细检查了连接字符串是否有效。

可能要想到的一件事是,是否不是某些程序集不匹配,我将功能定位为v1并使用Microsoft.Azure.WebJobs.ServiceBusv2.2.0

知道我在做什么错吗?

1 个答案:

答案 0 :(得分:0)

所以对于像我这样愚蠢的人:

仔细检查host.json中的白名单,并确保所有功能都列在其中。