[英]Azure function - multiple files coming in storage blob at the same time: how to make them be processed sequentially
[英]Azure Function fires multiple times for the same Blob storage event
我的 Python Azure Function 配置文件 ( function.json
) 定義了一個 Blob 存儲觸發器。
當 Azure Function 喚醒時(即實時指標中顯示的服務器在休眠一段時間后變為在線),它會處理所有現有的 blob,而不管哪些 blob 已經生成了觸發事件。
我注意到azure-webjobs-hosts/blobreceipts
文件夾中填充了sandboxhost637nnn
文件夾。 每個 Azure Function 喚醒事件都會創建一個新的sandboxhost文件夾。 這樣函數就忘記了以前處理過的 blob(沒有找到舊的收據)。 在過去(2019 年 12 月),我記得包含所有收據的唯一webjobs-hosts文件夾在調用過程中持續存在。
解釋為什么會這樣:
無論您的環境如何,blob 觸發器在設計上都會通過在 azure-webjobs-hosts 容器中維護 blob 收據來跟蹤新的和更新的 blob。 這些收據通過它們的**eTags**
與 Functions 運行時的**host ID**
相關聯。
當您的函數喚醒時,它會導致您的**host ID and the eTag->host ID correlations**
將不再適用,然后導致新主機重新處理所有現有的 blob ——你觀察到的行為。
建議改為使用事件網格觸發器或為你的函數應用使用 Azure 應用服務基礎計划,這將更加昂貴。
附加參考:
https://github.com/Azure/azure-webjobs-sdk/issues/1327
希望能幫助到你。
我不確定你怎么了。 但是現在應該不會再出現這個問題了。
這是一個老問題。 並且 sdk 有更新。
BlobTriggers 現在只會被處理一次,看看這個:
可能是您的問題是新問題。 但是您需要提供您使用的日志和SDK。 那么我們可以幫助您解決這個問題。 如果您稍后更新,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.