執行環境安全性

每個函式都會在 Cloud Run 函式的安全執行環境中,以有版本控制的執行階段映像檔為基礎執行。執行階段映像檔包含作業系統程式庫、語言執行階段和其他系統套件。Google 會維護所有 Cloud Run 函式執行階段映像檔,並在一段時間的穩定性測試後發布安全性修補程式和維護更新內容。

執行階段映像檔

每個執行階段都有一個相關聯的執行階段映像檔 (也稱為執行映像檔),位於 gcr.io 上的公開存放區。如需執行階段 ID 和執行階段映像檔的清單,請參閱「執行階段」。

找出執行階段映像檔

您可以檢查函式的建構記錄,找出用於建立函式的執行階段映像檔。

在建構記錄中搜尋 google.run-image。這會提供建構步驟的記錄項目,說明用於建構函式的執行階段映像檔版本。舉例來說,Node.js 函式的記錄項目可能會像這樣:

{
  ...
  "textPayload": "Step #2 - \"build\": Adding image label google.run-image:
    us.gcr.io/serverless-runtimes/google-22-full/runtimes/nodejs20:nodejs20_20241110_20_18_0_RC00
",
  ...
}

安全性更新政策

您可以選擇下列其中一種安全性更新政策:

  • 自動更新 (預設):執行階段環境的更新和安全性修補程式會在執行階段映像檔的新版本中發布。經過一段時間的穩定性和可靠性測試後,更新的執行階段會推送至所有函式,進而達到零停機時間更新。Cloud Run 函式 (第 1 代) 和 Cloud Run 函式支援自動安全性更新功能。如要採用語言層級安全性修正,您可能需要重建使用編譯語言 (例如 Go 或 Java) 的函式。

  • 關於部署更新:除非另有說明,否則只有在部署或重新部署函式時,才會將更新和安全性修補程式套用至執行階段。您可以在 Cloud Run 函式 (第 1 代) 和 Cloud Run 函式中查看部署作業更新。

您可以使用 gcloud functions deploy 指令中的 --runtime-update-policy 標記變更執行階段更新政策。

設定函式的更新政策

如果您使用的是 Cloud Run 函式 (第 1 代),您可以變更函式的更新政策,方法是在 gcloud deploy 指令中加入 --runtime-update-policy 標記,如下所示:

  gcloud functions deploy FUNCTION_NAME --no-gen2 \
    --runtime-update-policy=POLICY ...

取代:

  • FUNCTION_NAME 替換為函式名稱
  • POLICY 搭配 automaticon-deploy

檢查函式的更新政策

您可以使用下列指令檢查函式的更新政策:

  gcloud functions describe FUNCTION_NAME \

其中 FUNCTION_NAME 是函式名稱

  • 啟用自動安全性更新的函式會具有 automaticUpdatePolicy
  • 在部署時更新的函式會具有 onDeployUpdatePolicy

找出自動更新後使用的執行階段映像檔

啟用自動更新功能後,Cloud Run 函式會將函式的執行階段映像檔換成包含其他安全性修補程式和更新的較新修訂版本。這項變更會顯示在函式的執行階段記錄檔中。

在執行階段記錄中,runtime_version 標籤會指出函式何時使用新的執行階段映像檔。自動更新的 Node.js 函式記錄項目可能如下所示:

{
  ...
  "labels:" {
    runtime_version: nodejs20_20230924_20_6_1_RC00
    execution_id: ...
  }
  ...
}