簡體   English   中英

如何從 Azure Functions 中的存儲容器讀取多個文件

[英]How to read multiple files from a storage container in Azure Functions

我有一個 Azure Functions 應用程序 (Python),我必須在其中讀取存儲在 Azure 存儲帳戶 (StorageV2) 中的多個 CSV 文件來驗證它們。

但是,此文件夾中的文件名和 CSV 文件數量會隨着時間而變化。 該應用程序使用 HTTP 綁定觸發,最好動態檢查文件夾的內容,然后按順序處理文件夾中的所有 CSV 文件。

從文檔來看,Azure Functions 似乎對輸入和輸出使用綁定,但是,示例僅顯示(多個)指向單個文件的輸入綁定,而不是任何類型的文件夾/容器。 因為我事先不知道文件的數量和文件名,這將很難實現。

例如:function.json

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "name": "inputcsv",
      "type": "blob",
      "dataType": "binary",
      "path": "samplesCSVs/{singleCSVfile}",
      "connection": "MyStorageConnectionAppSetting",
      "direction": "in"
    },
    {
      "type": "http",
      "direction": "out",
      "name": "$return"
    }
  ]
  "scriptFile": "__init__.py"
}

是否可以在此處指向文件夾? 或者以另一種方式動態讀取存儲帳戶中的文件?

我能想到的唯一另一種選擇是簡單地提前壓縮所有 CSV 文件,這樣我就可以使用一個輸入綁定到這個壓縮文件,然后將它們解壓到一個臨時文件夾中來處理它們,但這會降低效率。

資料來源:

https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-input?tabs=python

https://docs.microsoft.com/en-us/azure/azure-functions/functions-add-output-binding-storage-queue-vs-code?tabs=in-process&pivots=programming-language-python

使用 Azure Blob 觸發器,您只能一對一匹配,新 Blob 的更改或創建將觸發函數的執行。

您可以在容器級別使用事件網格和篩選事件,並使用 Azure 函數來處理該特定事件:

https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-event-overview

我似乎對 Azure Functions 的工作方式有誤解。 因為它仍然是 Python 代碼,而且 Azure 有一個 Python SDK 可用於連接到存儲帳戶和操作文件,所以這是實現我試圖完成的任務的最佳方式。

Azure Functions 的輸入/輸出綁定似乎僅在使用特定觸發器時才有幫助,但這不是我的問題所必需的。

感謝 zolty13 為我指明了正確的方向。

來源:

https://docs.microsoft.com/en-us/python/api/overview/azure/storage-blob-readme?view=azure-python

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM