1

我已經寫了C#程序發送消息到Azure服務總線隊列,這是行之有效的。現在我需要通過服務總線隊列接收的消息通過Azure函數傳遞到數據湖,但據我研究,Azure函數不支持數據湖的綁定/觸發器。有沒有辦法將服務總線隊列消息觸發到Azure Data Lake? 在此先感謝。如何將Azure服務總線隊列中的消息觸發到Azure Data Lake?

+0

Azure Logic Apps目前在預覽中有Azure Data Lake連接器。你有沒有看過那個? –

+0

@StevenVanEycken不,我剛剛檢查過它,但通常會問它是否提供對服務總線隊列的支持?是否有任何有用的文檔或教程,你知道與它有關,然後善意分享它的鏈接。 –

+0

Logic Apps還提供了一個連接器來在Azure Service Bus上執行操作。有關這些連接器的文檔可以在https://docs.microsoft.com/en-us/azure/connectors/connectors-create-api-servicebus上找到。您可以創建一個由您的隊列中的新消息觸發的邏輯應用程序。 Azure Data Lake Connector的文檔似乎尚不可用。 –

回答

2

您可以在功能代碼中設置Azure功能ServiceBusTrigger並使用Azure Data Lake .Net SDK。遵循使用外部Nuget包的說明here。如果邏輯應用程序連接器可用,那麼使用它可能會更容易,因爲它將負責使用AAD進行身份驗證,而不是直接使用SDK。

1

我已經成功地將服務總線隊列中的數據提交給數據湖,我們的想法是使用具有Function類的webjobs,每當我們的服務總線隊列接收到任何數據時都會觸發它。功能的主要方法包括如下代碼:

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上的web應用,然後創建webjobs,然後簡單地發佈你的代碼。有關詳細幫助,您可以提出更多問題。

相關問題