Share via

Azure Function Deployment

Donnie Wu 20 Reputation points
2026-03-12T07:22:36.8433333+00:00

嗨 Azure 團隊
我最近透過 python sdk 與 API 方法自動化部屬 flex plan 的 azure function
在上傳 code 想 polling 是否部屬已成功時,常會遇到以下 error
[KuduSpecializer] Kudu has been restarted after package deployed for deployment
想知道為何會發生這種 error 以及如何避免

Azure Functions
Azure Functions

An Azure service that provides an event-driven serverless compute platform.

{count} votes

1 answer

Sort by: Most helpful
  1. Q&A Assist
    2026-03-12T07:22:49.2+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    [KuduSpecializer] Kudu has been restarted after package deployed for deployment 是在部署後由平台產生的訊息,表示 Functions 主機/Kudu 在新的程式包部署完成後被重新啟動或重新掛載,屬於部署流程的一部分,而不是應用程式層級的錯誤。

    在 Flex Consumption 計畫中,部署流程是:

    1. 將專案程式碼建置並壓縮成 application package(zip)。
    2. 將 package 部署到儲存體容器。
    3. Function App 啟動時從該 package 載入並執行程式碼。

    在這個過程中,平台會在新 package 就緒後重新啟動 Kudu/站台,以掛載新的部署包,因此會看到類似 Kudu has been restarted after package deployed 的訊息。若在這個階段用 SDK 或 API 輪詢狀態,可能會在短時間內遇到連線中斷或暫時無法回應,看起來像「錯誤」,但實際上是正常的滾動更新行為。

    要降低影響、避免把這類訊息當成錯誤,可採取:

    1. 使用部署狀態訊號而不是立即輪詢:
      • Flex Consumption 提供「Flex Consumption Deployment」診斷工具,可在入口網站中查看部署歷史、package 狀態與建議,確認部署是否成功完成,而不是在部署剛送出後頻繁輪詢。
    2. 在輪詢邏輯中加入重試與延遲:
      • 在部署 API 回傳成功後,先等待一段時間再開始輪詢。
      • 對於短暫的 5xx 或連線錯誤實作指數退避重試,直到 Function App 穩定掛載新 package。
    3. 確保部署流程符合 Flex Consumption 模式:
      • Flex Consumption 採單一路徑:建置→壓縮→部署到儲存體→由執行階段從 package 執行,無需透過額外的 app settings 來控制部署行為。避免自行修改會干擾此流程的設定。
    4. 若需要零停機行為:
      • Flex Consumption 支援以 rolling updates 的方式進行零停機部署(預覽功能),平台會逐步套用新程式碼與設定,減少因重啟造成的影響。

    總結:這個訊息代表部署後平台正在重新啟動/掛載新 package,是正常行為。建議在自動化流程中把它視為資訊訊息,並透過延遲輪詢、重試與診斷工具來判斷部署是否真正完成,而不是在 Kudu 重啟期間立即判定為錯誤。


    References:

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.