Cloud Run 的已知問題

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

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

選取問題類別:

或篩選已知問題:

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

NFS-Ganesha 4.0 以下版本無法掛接 NFS 磁碟區

如果 Cloud Run 執行個體掛接由 NFS-Ganesha 3.x 以下版本 (例如 Debian 11 上的預設 NFS-Ganesha 套件) 提供的 NFS 磁碟區,可能會無法啟動。Cloud Run 執行個體上的 NFS 用戶端會在掛接期間要求 NFSv4.2 檔案屬性。RFC 8881 要求 NFS 伺服器忽略不支援的屬性,但這些 NFS-Ganesha 版本會改為傳回 NFS4ERR_BADXDR 錯誤,因此掛接作業會失敗,並顯示輸入/輸出錯誤。Filestore、Linux 核心 NFS 伺服器和 NFS-Ganesha 4.0 以上版本則不受影響。

如要解決這個問題,請將伺服器升級至 NFS-Ganesha 4.0 以上版本,例如改用 Debian 12 以上版本。如果無法立即升級,請將下列內容新增至 /etc/ganesha/ganesha.conf 並重新啟動 NFS-Ganesha,將 NFS-Ganesha 限制為 NFSv4.1 以下版本:

NFSv4 {
    Minor_Versions = 0, 1;
}

如果您不需要管理自己的 NFS 伺服器,建議使用 Filestore。

連線能力和安全性

冷啟動多容器 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 SQL 連線不適用於執行多個容器的 Cloud Run 工作。

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

上