如何从Azure Service总线队列触发消息到Azure Data Lake?

时间:2017-06-12 07:33:10

标签: azure azure-webjobs azure-functions azure-data-lake azure-servicebus-queues

我编写了一个C#程序,它向Azure服务总线队列发送一条消息,这很好用。现在我需要通过Azure函数将服务总线队列中收到的消息传递给数据湖,但据我所知,Azure功能并不支持数据湖的绑定/触发器。有没有办法触发Azure数据湖的服务总线队列消息? 提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以在功能代码中设置Azure功能ServiceBusTrigger并使用Azure Data Lake .Net SDK。按照说明here使用外部Nuget包。使用逻辑应用程序连接器可能更容易,因为它可以用AAD进行身份验证,而不是直接使用SDK。

答案 1 :(得分:1)

我已经成功地将数据从服务总线队列提交到数据湖,其想法是使用webjobs,当我们的服务总线队列收到任何数据时,它会触发一个Function类。函数的main方法包含以下代码:

 JobHostConfiguration config = new JobHostConfiguration();
 config.UseServiceBus();
 JobHost host = new JobHost(config);
 DataLakeClass.Authentication(); // this is basically a function where my client got authenticated and further able to create csv file at data lake and append data to it.
 host.RunAndBlock();

注意:对于webjobs,您需要在Azure上创建webapp,然后创建webjobs,然后只需发布您的代码。有关详细帮助,您可以提出更多问题。