Cloud Run 的已知問題

本文列出 Cloud Run 的已知問題、限制和不支援的功能。

您也可以在公開 Issue Tracker 中查看現有問題或提出新問題。

選取問題類別:

或篩選已知問題:

類別 問題和解決方法
連線能力和安全性

冷啟動多容器 Cloud Run 服務時,SSH 連線失敗

當 SSH 連線冷啟動具有容器啟動順序 (container-dependencies) 的多容器 Cloud Run 服務時,系統會在容器環境準備就緒前轉送要求。Cloud Run 會傳回 HTTP 500 錯誤,並立即停止新的執行個體。如果使用 Google Cloud CLI 連線,指令會失敗。

如要解決這個問題,請只在執行個體已執行時,才使用 SSH 連線。例如,先傳送要求至服務以啟動執行個體,或設定執行個體數量下限。

部署作業

在 Cloud Run 執行個體上啟用或停用 SSH 的長時間執行作業,可能會提早傳回結果

在 Cloud Run 執行個體上啟用或停用 SSH 的長時間執行的作業 (LRO),可能會在作業完成前傳回。

連線能力和安全性

啟用或停用 SSH 後,SSH 連線有時可能會失敗

SSH 連線有時可能會失敗,尤其是在啟用或停用 SSH 後。如果連線失敗,請重試。

供應

如果容器以代碼 0 結束,重新啟動政策 Always 會停止 Cloud Run 執行個體

如果多容器 Cloud Run 執行個體的重新啟動政策設為 Always,且任何容器以代碼 0 結束,Cloud Run 就會停止執行個體,而非重新啟動。

部署作業

dependsOn 容器依附元件旗標不適用於 Cloud Run 執行個體

多容器 Cloud Run 執行個體的 dependsOn 旗標無法運作。在容器啟動期間,系統不會強制執行多容器執行個體中容器之間指定的依附元件。

供應

解除超出的支出上限或重新啟用計費功能後,服務恢復延遲

如果專案超出支出上限或已停用計費功能,在您解除支出上限或重新啟用計費功能後,Cloud Run 資源可能需要最多 30 分鐘才會恢復提供流量。在這段期間,要求可能會失敗,並顯示 429 或 503 錯誤 (記錄會指出「要求已取消,因為沒有可用的執行個體」),或執行個體可能無法啟動。

目前沒有手動解決方法。最多可能需要等待 30 分鐘,資源才會恢復健康狀態。

連線能力和安全性

worker 集區的虛擬私有雲連接器尚未準備好用於正式環境

搭配 Cloud Run worker 集區的無伺服器 VPC 存取連接器目前為預先發布版,且僅支援透過 Terraform 使用 Cloud Run v2 API。 Google Cloud 控制台、Google Cloud CLI、YAML 和 Cloud Run v1 API 均不支援這項功能。此外,系統不支援監控指標等正式版完備性元件。

觀測能力

「輸入至區域延遲時間」指標線性增加

您可能會發現 run.googleapis.com/request_latency/ingress_to_region 指標出現人為線性增加,最常見的情況是您使用 HTTP/2 通訊協定將服務置於外部應用程式負載平衡器後方,且連線重複使用。這是因為在同一連線上,後續要求的初始要求時間戳記可能不會重新整理,但區域到達時間會繼續推進。

這種模式是指標回報異常。這個問題不代表實際的資料層延遲時間,通常仍會維持在低延遲狀態。連線關閉或計數器重設時,指標最終會自行更正。

部署作業

部分區域的部署作業延遲時間過長

在 us-central1 等部分區域,建立或更新 Cloud Run 資源的速度可能比預期慢。如果特定區域的部署作業延遲時間過長,Google 建議您部署至其他區域。

部署作業

Cloud Run 工作任務可能誤標為已重試

在某些情況下,即使任務在第一次嘗試時就成功,也可能標示為重試。在問題解決之前,Google 建議將 --max-retries 參數設為 3 以上,以免發生假性執行失敗。

部署作業

磁碟區掛接與 Config Connector 不相容

如果您使用 Config Connector 部署 Cloud Run 服務或工作,下次部署時,系統不會保留磁碟區掛接。如果服務或工作已套用磁碟區掛接,您在使用 Config Connector 時也可能會遇到問題。

供應

在第一代執行環境中,HOME 環境變數設為 /home

Cloud Run 第一代執行環境會將 HOME 環境變數設為 /home。第二代執行環境會將 HOME 變數設為執行中使用者在 /etc/passwd 中的值,如果 /etc/passwd 不存在,或在 /etc/passwd 中找不到使用者,則會改用 /home。

供應

在第一代執行環境中,無法將 Secret 掛接至 /tmp

如果使用第一代執行環境,則無法直接在 /tmp 上掛接 Secret。不過,您可以在 /tmp 的任何子目錄中掛接 Secret。

供應

從部分區域叫用時,自訂網域的要求延遲時間偏高

從某些位置向使用自訂網域的 Cloud Run 服務發出要求時,延遲時間可能會非常長。asia-northeast1 和 us-east4 的 Cloud Run 服務,這個問題更為明顯。如果遇到這個問題,可以使用無伺服器 NEG 搭配 Cloud Load Balancing,提升效能。

供應

有時系統可能會在得知啟動探測結果前,將要求傳送至執行個體

Cloud Run 可能會使用傳送至服務端點的要求來啟動執行個體。在得知啟動探測結果之前,Cloud Run 也可能將要求指派給執行個體。如果探測通過,執行個體就會在 Cloud Run 要求記錄中列出的 receiveTimestamp 處理要求。如果探測失敗,Cloud Run 會記錄失敗,而不會進入服務的程式碼。

連線能力和安全性

自訂網域對應必須啟用 網址

您只能為具有預設 網址的 Cloud Run 服務對應自訂網域。在問題解決之前,如果您已停用預設 網址,建議您啟用預設 網址、對應自訂網域,然後再次停用預設 網址。

連線能力和安全性

無伺服器 VPC 存取不支援 IPv6

透過無伺服器 VPC 存取連接器傳送流量時,無法使用 IPv6。如果直連虛擬私有雲輸出使用雙協定子網路,或在 vpc-egress 設為 private-ranges-only 時存取非虛擬私有雲端點,則支援 IPv6。

連線能力和安全性

無伺服器服務使用 IP 位址時,未明確識別

使用直連虛擬私有雲輸出時,您可以找出 Cloud Run 保留且目前使用的 IP 位址,這些位址在 Google Cloud 控制台的「IP 位址」頁面會顯示為 None,而非 Serverless。

網址

保留的網址路徑

您無法使用下列網址路徑:
  • 開頭為 /_ah/ 的路徑
  • 部分路徑結尾為 z。為避免與保留路徑發生衝突,建議您避免使用所有結尾為 z 的路徑
網址

部分編碼網址字元會解碼

Cloud Run 會先解碼 Cloud Run 服務網址中的部分編碼字元,再傳送至容器執行個體。舉例來說,%41 會自動解碼為 A。

不支援的服務和功能

不支援的服務

Web Security Scanner
不支援的服務和功能

HTTP/2 推送

Cloud Run 支援 HTTP/2,但不支援 HTTP/2 伺服器推送。

不支援的服務和功能

HTTP 方法

Cloud Run 不支援使用 TRACE 和 CONNECT 等 HTTP 方法的要求。因此,在 Cloud Run 上執行的服務不會收到這些方法。

不支援的服務和功能

如果 Cloud Run 工作執行多個容器,則無法使用內建的 Cloud SQL 連線。

如果 Cloud Run 工作在多個容器中執行,則不支援連線至 Cloud SQL 執行個體的 Cloud Run 功能。工作會繼續執行,但 Cloud Run 不會在容器內掛接 /cloudsql 目錄。

上