azure-functions - 如何使用 Azure Function 应用筛选服务总线事件?
问题描述
如何使用 Azure Function 应用筛选服务总线事件?如果我有一个“事件”主题,并且我将 10 个不同的事件发布到一个主题。如何让天蓝色函数过滤事件。Azure Function Apps 服务是否允许在使用 Function Apps 时进行筛选?
解决方案
队列和订阅触发 azure Functions;它们并非旨在过滤掉消息。如果您的主题接收到两个事件,EventA
并且EventB
只有一个订阅触发了该函数,则这两种事件类型都将由该函数处理。“过滤”消息并执行正确的逻辑将是您的功能代码责任。该过滤可以通过查看客户标头(属性)或解析有效负载(消息正文)来完成。
另一种方法是让服务总线上的专用订阅接收每种消息类型,并具有两个功能,每个事件类型一个。这意味着在 ServiceBus 中创建两个订阅,一个用于EventA
,另一个用于EventB
,然后为每种事件类型部署两个函数。这样,您可以让每个函数的逻辑只关注一种事件类型,而不必“过滤”掉任何东西。
另一种方法是使用可以为您执行此操作的消息传递中间件。这样你就可以有一个函数来处理两种或更多的消息类型,但保持你的代码干净并且有一个单一的职责——处理一个特定的消息类型。您可以使用 MassTransit 或NServiceBus来完成此操作。
推荐阅读
- amazon-web-services - 授予对第三方 lambda 函数的访问权限以写入我的 Redshift
- django - TypeError: 'int' object is not iterable serializer Django Serializer 用于一对多
- javascript - 进入窗口时使用 ScrollMagic 自动播放 SVG
- mongodb - 使用 Spring Data 将 Kotlin 内联类存储到 MongoDB
- python - cx_Oracle DatabaseError: ORA-01652: 无法在表空间 TEMP 中将临时段扩展 128
- amazon-web-services - Amazon Elastic Inference 非常低的使用率仍然很高的成本
- amazon-s3 - 如何使用 AWS Athena 读取加密的 delta 格式的 s3 数据集?
- vba - 如何使用 Selenium VBA 在 iframe 中的用户名字段中发送文本
- node.js - 创建 React 应用程序,中止安装
- azure - Azure B2C 自定义登录页面在 IE11 中不起作用