針對 Azure 執行時間升級期間的常見問題進行疑難解答
本文說明如何解決函式應用程式語言或運行時間版本更新期間可能發生的一些常見問題,例如無法連線到運行時間,以及找不到模組。
如果您收到電子郵件「建議採取動作:更新您的 Azure Functions 應用程式以使用 .NET 6」的電子郵件,應採取的動作。
Microsoft .NET Core 3.1 的支援已於 2022 年 12 月 3 日結束。 Azure Functions 運行時間 v3 是以 .NET core 3.1 為基礎。 我們建議您將 函式應用程式 更新為運行時間 4.x 版,其使用 .NET 6 並具有長期支援。 在 2022 年 12 月 3 日之後,您的應用程式不符合新功能、安全性修補程式、效能優化或支持資格,直到您將它們升級至 Functions 運行時間 4.x 版為止。
運行時間 v3 上的 Functions 應用程式將繼續執行,而且您的應用程式不會受到影響。 您可以在此日期之後將程式代碼部署至這些 Functions 應用程式。 但是,我們可能會移除您使用常見路徑建立以 Functions 運行時間 v3 為目標的應用程式的能力。
如需詳細資訊和移轉指引,請參閱:
驗證函式應用程式的運行時間 v4 相容性
- 在 Azure 入口網站中,瀏覽至您的函數應用程式。 選取 [診斷並解決問題],以開啟 [Azure Functions 診斷]。 在 [搜尋] 列中,輸入更新函數應用程式語言或執行階段版本,以便直接執行。 診斷報告包含更新指引。 驗證完成之後,請依照建議進行並解決您應用程式中的任何問題。
- 我們也會提供升級前驗證程式,可協助您識別將函數應用程式移轉至 4.x 時的潛在問題。 從相同的診斷搜尋列,輸入 Functions 4.x 升級前驗證程式,以便直接執行。 驗證完成之後,請依照建議進行並解決您應用程式中的任何問題。
- 強烈建議您將本機專案環境升級至 4.x 版。 使用 Azure Functions Core Tools 4.x 版在本機完整測試應用程式。
- 請考慮使用預備位置,在新的執行階段版本上測試及驗證 Azure 中的應用程式後,再部署至生產位置。 請記得針對透過位置移轉設定
WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS=0
。
變更 Windows 的 Functions 運行時間版本
- 將 FUNCTIONS_EXTENSION_VERSION,這是 [Azure 入口網站 組態] 窗格中的應用程式設定為
~4
。 如需詳細資訊,請參閱 變更運行時間版本。 - 將月臺
netFrameworkVersion
設定設為以 .NET 6 為目標。netFrameworkVersion
是 SiteConfig 設定,而不是應用程式設定。 Azure 入口網站 中沒有直接提供。 但您可以使用 Azure 資源總管或 Azure CLI/PowerShell 來設定它。
如需詳細資訊,請參閱 Functions 執行階段版本。
變更 Linux 的 Functions 運行時間版本
- 將 [FUNCTIONS_EXTENSION_VERSION],這是 [Azure 入口網站 組態] 窗格中的應用程式設定為
~4
。 如需詳細資訊,請參閱 變更運行時間版本。 - 根據所使用的語言,使用命令列介面 (CLI) 會設定
LinuxFxVersion
為<Language>|<LanguageVersion>
。 如需詳細資訊,請參閱 使用LinuxFxVersion for Linux Function Apps。 例如,若要更新為 .NET 6,您可以將 設定LinuxFxVersion
dotnet|6.0
為 和 。~4
FUNCTIONS_EXTENSION_VERSION
如需詳細資訊,請參閱 Functions 執行階段版本。
依運行時間版本取得支援的語言清單
請參閱運行時間版本支援的語言清單。
更新程式代碼之後,更新函式應用程式的語言版本設定
- PowerShell:在 Azure 入口網站 中,設定
PowerShell Core version
。 如需詳細資訊,請參閱 變更PowerShell版本。 - Python:將
linuxFxVersion
設定為python|3.x
。 如需詳細資訊,請參閱變更 Python 版本。 - Java:使用
-DjavaVersion
將語言版本指定為 11 或 17。 如需詳細資訊,請參閱指定部署版本。 - Node,JavaScript:針對 Windows,將
WEBSITE_NODE_DEFAULT_VERSION
應用程式設定~16
設為 。 針對 Linux,請使用 CLI 將linuxFxVersion
設定為node|16
。 如需詳細資訊,請參閱 設定節點版本。
Azure Functions Proxy 使用量
在 4.x 版中再次提供對 Proxy 的支援,讓您可以成功地將函數應用程式升級至最新的執行階段版本。 不過,建議您儘快切換到整合函式應用程式與 Azure API 管理。 API 管理 可讓您利用一組更完整的功能來定義、保護、管理及獲利以函式為基礎的 API。 如需詳細資訊,請參閱如何移轉至 APIM,以及使用 Visual Studio 將 Functions 與 APIM 整合。
取得使用運行時間 1.x、2.x 或 3.x 版的所有 Azure Functions 應用程式清單
- 在 Azure 入口網站中,瀏覽至您的函數應用程式。
- 選取 [診斷並解決問題],以開啟 [Azure Functions 診斷]。
- 在 [搜尋] 列中,輸入更新函數應用程式語言或執行階段版本,以便直接執行。
- 在診斷報告中,向下卷動並選取 [列出所有函數應用程式>檢視詳細數據]。
- 設定搜尋篩選,然後選取 [ 顯示 ] 以取得目前訂用帳戶中的函式應用程式清單。
或者,您可以使用 App Service REST API 呼叫 (GetConfiguration) 來判斷這一點。 LinuxFxVersion
並提供 WindowsFxVersion
版本資訊。
將 .NET Framework 4.6.1 應用程式從 Functions 運行時間 v1 移至 v4
.NET Framework 4.6.1 已的生命週期即將結束,因此應用程式應該升級為 .NET Framework 4.8。 在 Functions v4 中,您可以在跨處理序模式中執行 .NET Framework 4.8 應用程式。 如需詳細資訊,請參閱隔離程序指南。
已移轉的函式應用程式未啟動或有一些運行時間問題
- 針對 .NET 應用程式,請記得先將程式代碼更新為 .NET 6,再建置和部署。
- 在 Azure 入口網站 中,仔細檢查應用程式的運行時間版本。
- 針對 Windows 應用程式,您也必須使用 CLI 或 PowerShell 來設定
netFrameworkVersion
。 - 請確定您使用的是 2.x 或更新版本的 延伸模組套件組合,建議使用。 Functions 運行時間 4.x 版需要 2.x 或 3.0.0 版。
- 4\.x 中不再支援使用 AzureWebJobsDashboard 登入 Azure 儲存體。 請改用 Application Insights 進行監視。
- 如果您收到無法連線到 Azure Functions 執行時間且共用記憶體帳戶的訊息,請參閱 主機標識碼考慮。
- Azure Functions 4.x 不支援 Node.js 10 和 12、Python 3.6 和 PowerShell 6。 如需詳細資訊,請參閱 v4 運行時間支援的語言版本。
- 針對 Python 函式,如果模組衝突和模組找不到相關錯誤,請嘗試在應用程式設定中將 設定
PYTHON_ISOLATE_WORKER_DEPENDENCIES
為 1 。 - 檢閱 移轉現有的函式應用程式。
- 針對運行時間問題,從 Azure 入口網站 中的 [診斷和解決問題] 選項,搜尋函式應用程式關閉或報告錯誤,並檢閱診斷報告中的錯誤訊息和解決方案。 另請檢閱函式設定檢查偵測器,以確定設定正確無誤。
- 如需其他疑難解答秘訣,請檢閱將 Azure 函式應用程式升級至 V4 時的部落格問題。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。