如何使用Azure事件网格传递给GCP的事件

时间:2019-04-05 10:39:02

标签: azure google-cloud-platform google-cloud-pubsub azure-eventgrid

基本上我从几个Azure主题中了解的内容如下:
1)Azure Event Hub-最初接收数据并将其转换为事件
2)Service Bus-充当队列
3)Azure Event Grid-将在hub中转换的事件转移到此处。

所以连接如下:

Hub -> Service Bus -> Event Grid -> Pub Sub -> Storage

我理解这个概念。我的问题是我希望将数据从事件网格推送到GCP(订阅/主题)。那么如何使用PUSH方法来建立它呢?
我需要精确地发展什么。如何从grid to pubsub/subscriptions推送内容。我发现this链接将数据发布到事件网格but I want to push data from the event grid to gcp中。谁能向我解释我要去哪里错或者应该从什么开始。我对此并不陌生,并且非常困惑,因此在这里我只需要一点指导即可。

我有以下疑问:
1)事件网格侦听器是否可以使用任何直接订户选项?我的意思是我可以直接将我的Google存储帐户与此监听器相关联,因此,每当触发事件时,它将直接推送到我的GCP帐户(由于访问问题正在进行中,我现在没有Azure帐户,所以我看不见的原因就是我在这里问的原因)
2)假设我的数据中有20 columns,但是我只希望将16 columns推送到GCP中,所以在将数据从event grid/event hub发送到pub/sub时是否可以进行任何自定义
3)如果我按照以下答案中提供的链接编写自定义连接器代码,那么我该如何运行它?我的意思是我可以在云上部署这些脚本,以便在触发事件时自动触发它们。
4)我可以在这种情况下实现webhooks吗? (作为连接器的替代)。如果是,那我该怎么做,我需要在哪一边创建它?
5)另外,我阅读了一些文章,并从一些人那里得知他们在整个过程中都经历了数据丢失。因此,这里有什么可能性以及如何避免

2 个答案:

答案 0 :(得分:0)

  

任何人都可以向我解释我要去哪里错或者应该从什么开始。

就在这里:

  

所以连接如下:
  Hub -> Service Bus -> Event Grid -> Pub Sub -> Storage

尽管可能是这样,但听起来很像是您在看一种(非常)特定的场景,其中数据以这种精确的方式流动。

Azure事件中心,Azure服务总线和Azure事件网格 可以一起使用,但也可以彼此完全分开使用。

事件网格
事件网格的目的是启用反应式编程。当您想对(状态)更改做出反应时使用此功能。

事件中心
事件中心使大数据管道变得容易。当您需要遥测和分布式数据流时,请使用它。

服务总线
服务总线的目的是启用高价值企业消息传递。当您要执行订单处理和财务交易之类的操作时,请使用此选项。

  

在某些情况下,您可以并排使用服务来扮演不同的角色。例如,一个电子商务站点可以使用Service Bus处理订单,Event Hubs可以捕获站点遥测,Event Grid可以响应事件(例如物品已装运)。

     

在其他情况下,将它们链接在一起以形成事件和数据管道。您使用事件网格来响应其他服务中的事件。有关将事件网格与事件中心一起使用以将数据迁移到数据仓库的示例,请参阅将大数据流式传输到数据仓库。

摘自非常有趣且重要的文档文章Choose between Azure messaging services - Event Grid, Event Hubs, and Service Bus

编辑

  

我的问题是我希望将数据从事件网格推送到GCP(订阅/主题)。那么如何使用PUSH方法来建立它呢?

可能最简单的解决方案是让事件网格事件触发Webhook(可能运行Azure FunctionGoogle Cloud Function),从而将事件/消息放入GCP主题。

Publishing messages的文献资料非常丰富。有关如何使用REST调用,命令行,C#,Go,JAVA,NodeJS,PHP,Python和Ruby进行操作的示例。

编辑2
您需要做的是创建一个Event Grid Subscription来侦听和处理事件网格事件。
以下是一个示例屏幕截图,它说明了如何监听特定存储帐户的事件并在发生此类事件时调用WebHook:
Event Grid Subscription

请注意“端点详细信息”:例如,您可以在其中指定每次触发事件时调用Webhook。

答案 1 :(得分:0)

传输EventHub生成的事件的最简单方法可能是按照here中所述在Node.js(您在评论中提到)中创建EventHub事件接收器,该接收器接收事件并将其发布到Cloud Pub / sub,如in the Cloud Pub/Sub publisher documentation for Node.js所述。