本頁面說明如何建立服務及查看服務的相關資訊。
每項服務都有專屬的永久 run.app
網址,不會隨著您部署新修訂版本而變更。在 Cloud Run 上部署的函式也會視為服務,並指派 run.app
位址。服務的永久網域由服務名稱和雜湊組成。
必要的角色
如要取得管理 Cloud Run 服務和修訂版本所需的權限,請要求管理員授予您 Cloud Run 服務的 Cloud Run 開發人員 (roles/run.developer
) IAM 角色。
如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果您的 Cloud Run 服務介面與Google Cloud API (例如 Cloud 用戶端程式庫) 連結,請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱部署權限和管理存取權。
建立服務
您可藉由第一次在服務中部署容器映像檔的方式來建立新服務。在部署新服務中有更詳細的操作說明。
查看專案中的服務清單
您可以使用Google Cloud 主控台或 gcloud 指令列,查看專案可用服務的清單:
控制台
如要查看服務清單:
前往 Google Cloud 控制台的 Cloud Run:
檢查專案顯示的服務清單:
gcloud
如要列出專案中的服務:
gcloud run services list
請注意,每個服務都有一個相關聯的網址。
您可以依服務定義的屬性篩選這份清單,例如指派的標籤。
Cloud Code
如要透過 Cloud Code 查看服務清單,請參閱 IntelliJ 和 Visual Studio Code 的 Cloud Run Explorer 指南。
用戶端程式庫
如要透過程式碼查看服務清單,請按照下列步驟操作:
REST API
如要查看專案中的服務清單,請將 GET
HTTP 要求傳送至 Cloud Run Admin API service
端點。
例如使用 curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X GET \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services
取代:
- ACCESS_TOKEN 具有有效的存取權杖,且該帳戶具備查看服務的 IAM 權限。舉例來說,如果您已登入 gcloud,可以使用
gcloud auth print-access-token
擷取存取權權杖。您可以在 Cloud Run 容器執行個體中,使用容器執行個體中繼資料伺服器擷取存取權杖。 - REGION 改為服務的 Google Cloud 區域。
- 將 PROJECT-ID 改成 Google Cloud 專案 ID。
查看專案中的函式清單
您可以使用Google Cloud 控制台查看專案中可用的函式清單:
控制台
如要篩選服務清單中的函式,請按照下列步驟操作:
前往 Google Cloud 控制台的 Cloud Run:
檢查專案顯示的服務清單:
依序選取「Filter services」 >「Deployment type」 >「Function」。
如果您先前曾使用 Cloud Functions v2 API 部署函式,「Deployed by」欄會顯示「Cloud Functions」。
複製服務
您可以使用 Google Cloud 主控台或 YAML 複製現有服務。您可以變更複本中的任何內容,包括名稱和區域。
控制台
如要複製服務,請按照下列步驟操作:
前往 Google Cloud 控制台的 Cloud Run:
從專案顯示的服務清單中選取要複製的服務:
按一下「複製」。
在服務副本頁面中,設定或變更您要變更的任何值,例如地區等。如果要保留相同的地區,您必須為服務提供新名稱。
按一下「建立」,即可建立副本並使用新服務名稱進行部署。
YAML
如果您要建立新服務,請略過這個步驟。如果您要更新現有服務,請下載其 YAML 設定:
gcloud run services describe SERVICE --format export > service.yaml
對服務進行所需的設定變更。
apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: ... name: SERVICE ... spec: template: metadata: annotations: ... name: REVISION
- 如果您不將副本部署至其他區域,請將 SERVICE 替換為要用於副本的名稱。如果您要將副本部署到其他區域,可以使用舊名稱。
- 將 REVISION 替換為新的修訂版本名稱,或刪除 (如果有)。如果您提供新的修訂版本名稱,則該名稱必須符合下列條件:
- 開頭為
SERVICE-
- 只能包含小寫英文字母、數字和
-
- 結尾不是
-
- 長度不得超過 63 個半形字元
- 開頭為
使用下列指令複製服務:
gcloud run services replace service.yaml
使用
--region
標記,將副本部署至其他區域。
查看服務的詳細資訊
如要查看服務的詳細資訊:
主控台
如要查看服務的詳細資料:
前往 Google Cloud 控制台的 Cloud Run:
按一下專案顯示的服務清單中想要的服務,開啟服務詳細資料畫面:
gcloud
如要查看服務的詳細資料:
gcloud run services describe SERVICE
您可以使用 --format
標記設定輸出格式。例如使用 YAML:
gcloud run services describe SERVICE --region REGION --format yaml
取代:
- SERVICE 改為服務名稱。
- REGION 改為服務的 Google Cloud 區域。
您可以使用 --format export
匯出為 YAML,而不會自動產生標籤或狀態:
gcloud run services describe SERVICE --region REGION --format export
您也可以使用 --format
標記取得服務的網址:
gcloud run services describe SERVICE --region REGION --format='value(status.url)'
Cloud Code
如要使用 Cloud Code 查看服務詳細資料,請參閱 IntelliJ 和 Visual Studio Code 的 Cloud Run Explorer 指南。
如需進一步瞭解服務修訂版本,請參閱管理修訂版本。
用戶端程式庫
如要透過程式碼查看服務的詳細資料,請按照下列步驟操作:
REST API
如要查看服務的詳細資料,請將 GET
HTTP 要求傳送至 Cloud Run Admin API service
端點。
例如使用 curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X GET \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME
取代:
- ACCESS_TOKEN 搭配有效的存取權杖,該帳戶具備查看服務詳細資料的 IAM 權限。舉例來說,如果您已登入 gcloud,可以使用
gcloud auth print-access-token
擷取存取權權杖。您可以在 Cloud Run 容器執行個體中,使用容器執行個體中繼資料伺服器擷取存取權杖。 - SERVICE-NAME 改為服務名稱。
- REGION 改為服務的 Google Cloud 區域。
- PROJECT-ID 與 Google Cloud 專案 ID。
停用現有服務
如要取得停用現有 Cloud Run 服務和修訂版本所需的權限,請要求管理員為您授予專案的 Cloud Run 管理員 (roles/run.admin
) IAM 角色。
停用服務後,目前正在處理的任何要求都會完成。不過,對服務網址提出的任何後續要求都會失敗,並傳回 Service unavailable
或 Service disabled
錯誤。
只有因流量標記而啟用的服務修訂版本要求不會受到影響,因為這些修訂版本並未停用。
如要停用服務,請將資源調度率設為零。您可以使用 Google Cloud 控制台、Google Cloud CLI、YAML 檔案或 API 停用服務:
控制台
前往 Google Cloud 控制台的 Cloud Run:
按一下要停用的服務,以顯示詳細資料面板,然後按一下詳細資料面板右上角「Scaling」旁邊的鉛筆圖示。
找出「編輯縮放」表單,然後選取「手動縮放」。
在標示為「Number of instances」的欄位中,輸入值
0
(零)。按一下 [儲存]。
gcloud
如要停用服務,請使用下列指令將縮放設定為零:
gcloud beta run services update SERVICE --scaling=0
將 SERVICE 改為您的服務名稱。
YAML
下載服務的 YAML 設定:
gcloud run services describe SERVICE --format export > service.yaml
將
manualInstanceCount
屬性設為零 (0
):apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA run.googleapis.com/scalingMode: manual run.googleapis.com/manualInstanceCount: `0`
將 SERVICE 替換為 Cloud Run 服務名稱。
使用下列指令建立或更新服務:
gcloud run services replace service.yaml
REST API
如要停用服務,請將 PATCH
HTTP 要求傳送至 Cloud Run Admin API service
端點。
例如使用 curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X PATCH \ -d '{"launchStage":"BETA","scaling":{"manualInstanceCount":0 }}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE?update_mask=launchStage,scaling.manualInstanceCount
取代:
- ACCESS_TOKEN 搭配有效的存取權杖,該帳戶具備更新服務的 IAM 權限。舉例來說,如果您登入
gcloud
,可以使用gcloud auth print-access-token
擷取存取權杖。您可以在 Cloud Run 容器執行個體中,使用容器執行個體中繼資料伺服器擷取存取權杖。 - SERVICE 改為服務名稱。
- REGION 與服務部署的 Google Cloud 區域。
- 將 PROJECT_ID 改成 Google Cloud 專案 ID。
Terraform
如要停用服務,請將 manual_instance_count
屬性設為零 (0
):
resource "google_cloud_run_v2_service" "default" {
name = "SERVICE_NAME"
location = "us-central1"
launch_stage = "BETA"
template {
containers {
image = "IMAGE_URL"
}
}
scaling {
scaling_mode = "MANUAL"
manual_instance_count = "0"
}
}
取代:
- SERVICE_NAME 改為 Cloud Run 服務名稱。
- IMAGE_URL 與容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。如果您使用的是 Artifact Registry,則必須先建立存放區 REPO_NAME。網址的形狀為LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
刪除現有服務
刪除服務時,請考量以下事項:
- 刪除服務會刪除此服務的所有相關資源,包含此服務的所有修訂版本,無論他們是否提供流量。
- 刪除服務並不會自動從 Artifact Registry 移除容器映像檔。如要從 Artifact Registry 刪除已刪除修訂版本所使用的容器映像檔,請參閱「刪除映像檔」。
- 刪除含有一或多個 Eventarc 觸發條件的服務,並不會自動刪除這些觸發條件。如要刪除觸發條件,請參閱「管理觸發條件」一文。
- 刪除後, Google Cloud 控制台和指令列介面仍會顯示服務,直到刪除作業完全完成為止。但您無法更新服務。
刪除服務是永久性的,無法取消或還原。不過,若在刪除服務之後,您在相同地區使用相同名稱來部署新服務,該服務會具備相同的端點網址。
控制台
如要刪除服務:
前往 Google Cloud 控制台的 Cloud Run:
在服務清單中找出您要刪除的服務,然後按一下核取方塊來選取。
按一下 [DELETE] (刪除),如此便會刪除服務的所有修訂版本。
gcloud
如要刪除服務,請使用以下指令:
gcloud run services delete SERVICE --region REGION
取代
- SERVICE 改為您的服務名稱。
- REGION 改為服務的 Google Cloud 區域。
用戶端程式庫
如何從程式碼中刪除服務:
REST API
如要刪除服務,請將 DELETE
HTTP 要求傳送至 Cloud Run Admin API service
端點。
例如使用 curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X DELETE \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME
取代:
- ACCESS_TOKEN 使用有效的存取權杖,該存取權杖適用於具備刪除服務 IAM 權限的帳戶。舉例來說,如果您已登入 gcloud,可以使用
gcloud auth print-access-token
擷取存取權權杖。您可以在 Cloud Run 容器執行個體中,使用容器執行個體中繼資料伺服器擷取存取權杖。 - SERVICE-NAME 改為服務名稱。
- REGION 改為服務的 Google Cloud 區域。
- 將 PROJECT-ID 改成 Google Cloud 專案 ID。