從 Azure Functions 中的端點獲取內容時,我曾經能夠在本地保存內容,然后在將其傳遞到 Azure Functions 中的輸出之前處理這些內容。
現在我有這個設定:

1:當我呼叫端點時會發生什么
2:我的功能代碼
3:我對函式的呼叫
4:C:\Local\Temp函式被呼叫后的內容
根據我的函式代碼 (2),該檔案C:\local\Temp\cspcustomer.parquet應該存在,但是在嘗試讀取該檔案時,我顯然遇到了錯誤。
此外,當查看C:\local\TempKudu (4)中的實際內容時,該檔案實際上并不存在。
我的問題是,我的檔案在哪里,以便我可以繼續我的作業?
uj5u.com熱心網友回復:
Azure 函式應用具有不同的檔案系統存盤位置。那些是
D:\本地
這是本地臨時存盤,您無法共享此存盤中的任何檔案。臨時存盤意味著,一旦您從虛擬機中洗掉 Azure 功能,此存盤就會消失。您最多可以在此處存盤 500MB 的資料。
如果你的Azure 函式不得不說 3 個實體,那么這些實體中的每一個實際上都會在自己的虛擬機上運行,最終,每個實體都會擁有自己的D:\local存盤,最多500MB。
D:\首頁
此存盤為共享存盤。沒有限制,您的所有Azure Function應用程式實體都可以訪問此存盤。在這種存盤情況下,如果您將洗掉 Azure 函式應用程式或將其移動到其他位置,則存盤不會像D:\local那樣消失。存盤將保持原樣。
您可以使用主目錄而不是本地。

我可以看到主目錄中可用的鑲木地板檔案

參考這里
uj5u.com熱心網友回復:
找不到的檔案是 Import-Parquet 中的 dll 檔案之一,而不是代碼創建的臨時檔案。正如@DelliganeshS-MT 指出的那樣,溫度存在于運行代碼的容器中。
這個問題仍然存在:為什么自定義 C# 在 Windows 和 Linux 上都運行良好(在 Github Actions 中測驗)不能在 Azure Functions 中運行?
該模塊PSParquet位于 PowerShell 庫中。如果有人知道導致這種情況的原因,我會很樂意相應地調整代碼。
我很確定這不是某種 dll 地獄。我非常懷疑Parquet.dll并且IronSnappy.dll已經在 Azure Functions 中使用,這可能會導致這樣的錯誤,如下所述:https : //docs.microsoft.com/en-us/powershell/scripting/dev-cross-plat/resolving -dependency-conflicts?view=powershell-7.2
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/399971.html
下一篇:啟動行程-RedirectStandardInput$null-FilePathpowershell.exe-ArgumentList"myprogram.exearg1arg2"
