java - 使用 Java/Spring 连接到 Azure 事件网格和服务总线
问题描述
我有一个场景,只要 Azure 服务总线的队列/主题中有消息, Azure ServiceBus就会将事件发送到事件网格。那么如何在 Java/Spring 中与 Event Grid 建立连接以接收事件以及与 Service Bus 建立连接以提取消息。在 Java/Spring 中要进行哪些配置以建立与事件网格和 Azure 服务总线的连接?此外,必须在应用程序端(application.yml 或属性文件)进行哪些配置才能包含连接字符串等内容?
解决方案
Azure 服务总线到事件网格的集成
服务总线现在可以在队列中有消息时向事件网格发出事件,或者在没有接收者的情况下订阅。您可以为服务总线命名空间创建事件网格订阅,侦听这些事件,然后通过启动接收器对事件做出反应。
要启用该功能,您需要以下项目:
- 具有至少一个服务总线队列的服务总线高级命名空间或具有至少一个订阅的服务总线主题。
- 对服务总线命名空间的贡献者访问。导航到 Azure 门户中的服务总线命名空间,然后选择访问控制 (IAM),然后选择角色分配选项卡。验证您是否具有对该命名空间的贡献者访问权限。
- 此外,您需要服务总线命名空间的事件网格订阅。此订阅接收来自事件网格的通知,表明有消息要提取。典型的订阅者可能是 Azure 应用服务的逻辑应用功能、Azure Functions 或联系 Web 应用的 webhook。然后订阅者处理消息。
查看此Microsoft 文档以获取更多信息。
选中此项以使用 Azure Function 连接两者。
检查此文档以使用Logic App连接两者。
Azure CLI:
namespaceid=$(az resource show --namespace Microsoft.ServiceBus --resource-type namespaces --name "<service bus namespace>" --resource-group "<resource group that contains the service bus namespace>" --query id --output tsv
az eventgrid event-subscription create --resource-id $namespaceid --name "<YOUR EVENT GRID SUBSCRIPTION NAME>" --endpoint "<your_endpoint_url>" --subject-ends-with "<YOUR SERVICE BUS SUBSCRIPTION NAME>"
电源外壳:
$namespaceID = (Get-AzServiceBusNamespace -ResourceGroupName "<YOUR RESOURCE GROUP NAME>" -NamespaceName "<YOUR NAMESPACE NAME>").Id
New-AzEVentGridSubscription -EventSubscriptionName "<YOUR EVENT GRID SUBSCRIPTION NAME>" -ResourceId $namespaceID -Endpoint "<YOUR ENDPOINT URL>” -SubjectEndsWith "<YOUR SERVICE BUS SUBSCRIPTION NAME>"
推荐阅读
- android - 如何在文本中间实现带有图标的文本?
- python - 使用 Python(骰子生成器)为 GUI 制作动画
- python - 在 python 中使用 mysql.connector 时出现 cursor.execute 错误
- package - btergm 包中的 gof 函数给出了大于 1 的精度召回的 AUC 值
- oracle - 如何编写用于在表中创建新拆分分区的 plsql 代码?
- swiftui - 如何着色/删除 SwiftUI 列表中最后一行和倒数第二行之间的分隔符?
- java - 如何在Java中找到给定字符串的第一个唯一字符的索引?
- android - FirestoreRecyclerAdapter getItemCount() 总是返回 0
- google-tag-manager - GTM“dataLayer.push”是从 FrondEnd Developer 更新数据层的唯一方法吗?
- asp.net-core - Razor @page 路由到不同的页面