1

我已經編寫了一個Azure函數並將其連接到IoT Hub的消息傳遞端點以觸發所有傳入消息的函數。該功能的目的是對先前在蜂窩傳輸之前使用GZIP進行壓縮的消息進行解壓縮。Azure功能 - 未處理消息而沒有輸出結果會發生什麼?

目前我們有設備傳輸到雲未壓縮,我們正在尋求增加壓縮,以減少傳輸成本。我們目前還使用Stream Analytics來分析Stream中的消息並將它們輸出到各種中心,Blob,表格等。因此,一旦消息被壓縮,我們將不再能夠使用Stream Analytics進行指導基於消息值。

我已經開發了我的函數來解壓縮消息並將結果輸出到事件中心進行進一步處理。

我的問題是:如果我不輸出內容,修改後的消息會在隊列中存在,直到它被另一個應用程序攝取爲止?或者如果我不輸出結果,我的更改會消失。如果未壓縮的消息能夠在隊列中生存,那麼我仍然可以使用流分析,因爲我目前已將其配置爲運行。

+0

我不完全知道它如何與事件中心一起工作,但是對於Azure隊列,它的工作原理是這樣的:它嘗試處理消息,如果功能沒有錯誤,則消息被刪除,如果功能出錯,它將重試最多5次,並且它們將消息移動到毒性隊列 – 4c74356b41

+0

IoT Hub消息不應該從那裏消失,類似到事件中心。他們應該留在他們的分區,直到達到保留時間。 – juunas

回答

2

看來你問的是,如果Event Hub(你正在推送未壓縮的消息的那個人)會在消息沒有被馬上消費的情況下保留消息。答案是肯定的。事件中心有一個保留策略,您可以在Azure門戶中進行配置。此外,您可以查看Event Hub archiving功能,該功能允許將消息自動推送到BLOB存儲。一旦你的未壓縮的消息在事件中心,那麼你仍然可以像以前一樣使用流分析進行處理。

您可能還想查看Azure IoT Hub routing,它使用消息屬性將它們發送到不同的自定義設置點,而無需破解消息的正文。這將允許你做路由而不必解壓縮消息(如果你的場景允許使用消息屬性)

+0

因此,如果我在函數中接收到消息,然後解壓縮消息,然後完成執行,它應該保持未壓縮狀態,然後該流將處理將內容輸出到其各個位置? –

相關問題