【Netlify】環境變數更新無效的除錯流程

【Netlify】環境變數更新無效的除錯流程

本篇重點

  • Netlify function 更新程式碼後,新設定的環境變數未被正確讀取
  • 檢查環境變數是否設定在正確的環境 (Production / Deploy Preview / Branch deploys)
  • 確認環境變數名稱是否正確
  • 透過 Deploy project without cache 解決問題

問題情境

專案架設於 Netlify,並透過 GitHub 連動自動佈署。

更新程式碼後,function 使用新的環境變數,雖然已在 Netlify 後台新增並儲存變數,但程式始終沒有正確讀取。

排查流程

確認環境是否正確

Netlify 提供不同環境:

  • Production:主要佈署來源,與正式網域綁定
  • Deploy Preview:針對 PR 產生的測試環境
  • Branch deploys:針對指定分支的佈署

若環境變數僅設定在 Deploy Preview 或 Branch deploys,Production 可能無法取得。

檢查後確認 Production 已正確設定,並且如果是免費方案的 Netlify 會部屬在全區域,無法設定環境變數部屬區域,只能指定各區域的變數值。

環境變數部屬的環境

環境變數部屬設定

確認環境變數名稱拼字

常見錯誤包含:

  • 拼錯大小寫(環境變數區分大小寫)
  • 變數前後多餘空格
  • 後台儲存時沒有正確提交

檢查後確認名稱正確無誤,程式碼與後台設定的環境變數名稱一致。

移除快取重新佈署

雖然後台顯示環境變數已更新,但 function 仍未讀到新值。嘗試在佈署頁面選擇:「Trigger deploy → Deploy project without cache」,清除快取後重新佈署。

重新部署並清除快取後,function 成功取得最新環境變數。

移除快取重新佈署

為什麼會發生?

Netlify 在部署過程中會建立建構快取 (build cache),其中可能包含舊的環境設定或編譯結果。

當環境變數更新後,如果 Netlify 沒有完全清除快取,舊的變數值可能仍會被沿用,導致新值無法被讀取。

結論

這次的問題並非環境變數設定錯誤,是 Netlify function 使用了快取的舊設定。透過清除快取並重新佈署後,function 才正確讀取到新環境變數。

未來遇到類似狀況,可以依照流程依序排查:

  1. 確認環境設定位置是否正確
  2. 確認拼字無誤
  3. 清除快取重新佈署

延伸閱讀

作者

健忘工程師

發表於

2025-09-24

更新於

2025-09-24

許可協議


你可能也想看

【API】使用 Google Analytics Data API 架設網站流量查詢 API
【PHP】4種判斷變數或陣列是否存在的方法
【MySQL】解析資料庫語言類型 DDL、DML、DCL、DQL

評論

複製完成