本頁面說明帳單設定,假設您使用預設的 Cloud Run 自動調度資源行為。如果您使用手動調度,請參閱「使用手動調度的計費方式」一文,瞭解其他注意事項。
Cloud Run 服務有兩種計費設定:
以要求為依據的計費方式 (預設):Cloud Run 執行個體只有在處理要求、啟動和關閉時才會收費。詳情請參閱執行個體生命週期。這項設定先前稱為「只在要求處理期間分配 CPU」。
以執行個體為依據的計費模式:系統會針對 Cloud Run 執行個體的整個生命週期收費,即使沒有傳入要求仍會計費。如要執行短期背景工作和其他非同步處理工作,以執行個體為基礎的計費方式會相當實用。這項設定先前稱為「隨時分配 CPU」。
如果選擇以要求為依據的計費模式,系統就會按照個別要求收費,且只有在執行個體處理要求時才會收費。如果選擇以執行個體為依據的計費模式,系統會向您收取執行個體完整生命週期的費用。
CPU 分配模式的影響
選取計費設定會影響 CPU 的分配方式。
- 如果採用以要求為依據的計費模式,系統只會在處理要求時分配 CPU。
- 如果採用以執行個體為依據的計費模式,則會在整個容器執行個體生命週期分配 CPU。
預算支出上限
在 Cloud Billing 控制台設定 Cloud Billing 預算支出上限,或使用 Cloud Billing Budget API 透過程式設定,這些上限會自動套用至專案中的所有 Cloud Run 資源類型。
您可以直接在 Cloud Run 控制台總覽頁面中,監控支出上限進度。達到支出上限時, Cloud de Confiance by S3NS 會暫停所有 Cloud Run 工作負載,避免下列 Cloud Run 資源產生更多費用:
- 服務:任何現有服務都無法提供流量,並會傳回
5xx錯誤。 - 工作:新的工作執行作業無法啟動,進行中的工作無法完成。
- worker 集區:任何現有執行個體都會停止處理工作。
如果超過支出上限,您會收到快訊通知,並在 Cloud Run 控制台看到違規處置橫幅。強制執行的支出上限會在每個月初 (即下一個帳單週期的第一天) 重設,解除工作負載封鎖狀態,並將支出金額設為零。如果超出支出上限,且想在每月重設前恢復作業,請前往 Cloud Run 控制台總覽頁面,手動調整或解除上限。
如何選擇合適的帳單設定
如何為您的用途選擇合適的計費設定,取決於多項因素,例如流量模式、背景執行和費用,各項因素將在下列各節中說明。
流量模式考量
- 如果傳入流量不穩定、突發或激增,建議採用以要求為依據的計費模式。
- 如果傳入流量穩定且變化緩慢,建議採用以執行個體為依據的計費模式。
背景執行注意事項
如果選取「以執行個體為依據的計費模式」,系統即使在未處理要求時也會分配 CPU,讓您在傳回回應後執行短期背景工作和其他非同步處理作業。例如:
- 使用 OpenTelemetry 等監控代理,這類代理可能會假設自己能在背景執行。
- 使用 Go 的 Goroutine、Node.js 非同步、Java 執行緒和 Kotlin 協同程式。
- 使用依賴內建排程或背景功能的應用程式架構。
閒置執行個體 (包括使用執行個體數量下限保持暖機狀態的執行個體) 隨時可能關閉。如果需要在容器終止前完成待處理工作,可以截取 SIGTERM,讓執行個體在停止前有 10 秒的緩衝時間。
費用注意事項
如果您目前採用以要求為依據的計費模式,在下列情況下,以執行個體為依據的計費模式可能更經濟實惠:
- Cloud Run 服務目前正以相當穩定的速率處理大量要求。
- 查看執行個體數量指標時,不會看到許多「閒置」執行個體。
自動調度資源注意事項
Cloud Run 預設會自動調度容器執行個體數量。
如果服務設為以要求為準的計費方式,Cloud Run 只會在處理要求時,根據 CPU 使用率自動調度執行個體數量。
如果服務設為以執行個體為依據計費,Cloud Run 會根據容器執行個體整個生命週期的 CPU 使用率,自動調度執行個體數量,但資源縮減至零和從零擴充時除外,此時只會使用要求。
如果您使用手動調度資源,而非 Cloud Run 自動調度資源功能,請參閱手動調度資源,瞭解其他注意事項。
以執行個體為依據的計費模式注意事項
即使計費設定為以執行個體為依據的計費模式,Cloud Run 仍會自動調度資源,並在不需要執行個體處理傳入流量或要求以外的 CPU 使用率時,終止執行個體。執行個體在處理要求後,閒置時間不會超過 15 分鐘,除非使用執行個體數量下限保持啟用狀態。
將以執行個體為依據的計費方式與執行個體數量下限結合,可讓多個執行個體持續運作,並完整存取 CPU 資源,進而支援背景處理用途。使用這個模式時,即使服務在沒有任何要求的情況下使用 CPU,Cloud Run 也會套用執行個體自動調度資源。
如果使用健康狀態檢查探測,則必須針對每個探測使用以執行個體為基礎的計費方式。如需計費詳情,請參閱容器健康狀態檢查探測。
必要的角色
如要取得設定及部署 Cloud Run 服務所需的權限,請要求管理員授予您下列 IAM 角色:
- Cloud Run 開發人員 (
roles/run.developer) 在 Cloud Run 服務上 - 服務身分的服務帳戶使用者 (
roles/iam.serviceAccountUser)
如果您是從原始碼部署服務或函式,則必須在專案和 Cloud Build 服務帳戶中,取得額外角色。
如要查看與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 服務與Cloud de Confiance API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。
設定及更新帳單資訊
任何設定變更都會導致系統建立新的修訂版本。後續修訂版本也會自動套用這項設定,除非您明確更新設定。
如果選取以執行個體為依據的計費方式,則必須指定至少 512 MiB 的記憶體。
您可以在建立新服務或部署新修訂版本時,使用 Cloud de Confiance 控制台、gcloud CLI 或 YAML 檔案變更帳單設定:
控制台
前往 Cloud de Confiance by S3NS 控制台的「Cloud Run」頁面:
從 Cloud Run 導覽選單中選取「服務」,然後點選「部署容器」,設定新服務。如要設定現有服務,請按一下該服務。
如要設定新服務,請填寫初始服務設定頁面。
如要設定現有服務,請按一下「Scaling」(資源調度) 分頁標籤。
在「Billing」(計費) 下方,選取「Request-based」(以要求為依據),系統就會只在處理要求期間向執行個體收費;選取「Instance-based」(以執行個體為依據),則會針對整個執行個體生命週期收取費用。
按一下「建立」建立新服務。按一下「查看差異並重新部署」,然後點選現有服務的「部署變更」。
gcloud
您可以更新帳單設定。 如要為特定服務設定以執行個體為依據的計費模式,請按照下列步驟操作:
gcloud run services update SERVICE --no-cpu-throttling
將 SERVICE 改為您的服務名稱。
如要設定以要求為依據的計費方式,請按照下列步驟操作:
gcloud run services update SERVICE --cpu-throttling
您也可以在部署期間調整帳單設定。如要將帳單設定改為以執行個體為依據計費,請按照下列步驟操作:
gcloud run deploy --image IMAGE_URL --no-cpu-throttling
如要將帳單設定改為以要求為依據計費,請按照下列步驟操作:
gcloud run deploy --image IMAGE_URL --cpu-throttling
將 IMAGE_URL 替換為容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/hello:latest。如果使用 Artifact Registry,則必須先建立存放區 REPO_NAME。網址格式為 LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG。
YAML
如果您要建立新服務,請略過這個步驟。如要更新現有服務,請下載其 YAML 設定:
gcloud run services describe SERVICE --format export > service.yaml
更新
cpu屬性:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/cpu-throttling: 'BOOLEAN' name: REVISION
更改下列內容:
- SERVICE:Cloud Run 服務名稱
- BOOLEAN:
true可設定以要求為依據的計費模式,false則可設定以執行個體為依據的計費模式。 REVISION:新的修訂版本名稱,或刪除該名稱 (如有)。如果您提供新的修訂版本名稱,則必須符合下列條件:- 開頭為「
SERVICE-」 - 只能包含小寫英文字母、數字和
- - 結尾不是
- - 不超過 63 個字元
- 開頭為「
使用下列指令建立或更新服務:
gcloud run services replace service.yaml
gcloud run services replace指令預設會使用service.yaml檔案 (如有)。
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
在 Terraform 設定中,將下列內容新增至google_cloud_run_v2_service 資源:查看帳單設定
如要查看 Cloud Run 服務目前的計費設定,請按照下列步驟操作:
控制台
前往 Cloud de Confiance by S3NS 控制台的 Cloud Run「Services」(服務) 頁面:
按一下服務,開啟「Service details」(服務詳細資料) 頁面。
按一下「Scaling」分頁標籤,找出「Billing」設定。
gcloud
執行下列指令,查看帳單設定:
gcloud run services describe SERVICE --format=yaml
在 YAML 輸出內容中,找出
run.googleapis.com/cpu-throttling設定。值為false表示以執行個體為依據的計費模式,如果缺少這項設定,則表示以要求數為依據的計費模式。