Azure WebJobs SDK - 在 AWS 队列上创建触发器?

Azure WebJobs SDK - Create trigger on AWS Queue?

我正在构建一个 Azure WebJob (C#),它轮询 Amazon SQS 队列以获取新消息并卸载到 Azure 事件中心。我有一个创建长轮询连接(10 秒)、处理多条消息并成功发送到事件中心的概念验证。

我正在尝试确定如何将 WebJob 设置为 运行 连续。我正在考虑创建一个每 10 秒触发一次的 TimerTrigger。但是,在查看 WebJobs SDK 之后,我更愿意创建一个自定义事件触发器,当 SQS 队列中有新消息时它会收到通知。这是可能的还是我应该坚持使用定时器触发器?

我已经成功地将默认事件触发器与服务总线和 Azure 队列一起使用,但这是我第一次尝试从 AWS 创建触发器。

I'd prefer to create a custom event trigger that gets notified when there is a new message in the SQS queue. Is this possible or should I stick to the timer trigger?

是的,但是会有很多工作要做。在此之前,您可以通过查看 Azure WebJobs SDK - Queues Listeners 的源代码了解 Azure Queue Trigger 的工作原理。

Azure WebJobs SDK - Queues Listeners

简而言之,队列的监听是基于定时器和长轮询的。为了简化您的工作,您可以坚持使用计时器触发器并在向 AWS SQS 发送请求时使用长轮询。通过使用长轮询,它会等待一段时间直到找到一条消息。

Amazon SQS Long Polling

编写自定义绑定不仅会使您的使用更自然(当然是在创建自定义绑定的所有工作完成后),而且还允许其他人使用您的绑定 :) 我们有一个 wiki 页面 Binding Extensions Overview on how to get started writing custom bindings, along with links to sample bindings and starter projects. The general binding pipeline is described in The Binding Process

您还可以查看任何其他绑定的源代码,了解它们的工作原理,调试它们等。许多绑定都位于 azure-webjobs-sdk-extensions repo, so you can see their inner workings there. Other core bindings live in azure-webjobs-sdk.

我个人 喜欢 看到这个 Amazon Queue 绑定被写入 - 你应该试一试!欢迎在我们的扩展库 here 中与我们联系,任何 questions/issues.