執行環境安全性

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

執行階段映像檔

每個執行階段在 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 functions (第 1 代) 和 Cloud Run functions 提供自動安全性更新。如要進行語言層級的安全性修正,可能需要重新建構使用 Go 或 Java 等編譯語言的函式。

  • 部署時套用的更新:除非另有說明,否則只有在部署或重新部署函式時,更新和安全性修補程式才會套用至執行階段。Cloud Run functions (第 1 代) 和 Cloud Run functions 都會顯示部署時套用的更新。

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

設定函式的更新政策

如果您使用 Cloud Run functions (第 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 functions 會將函式的執行階段映像檔替換成較新修訂版本,當中包含額外安全性修補程式和更新。這項變更會顯示在函式的執行階段記錄檔中。

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

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