我编写了一个C#程序,它向Azure服务总线队列发送一条消息,这很好用。现在我需要通过Azure函数将服务总线队列中收到的消息传递给数据湖,但据我所知,Azure功能并不支持数据湖的绑定/触发器。有没有办法触发Azure数据湖的服务总线队列消息? 提前谢谢。
答案 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,然后只需发布您的代码。有关详细帮助,您可以提出更多问题。