在 Compute Engine 上使用自動調度資源指令碼或執行階段服務,即可自動執行持續整合與持續部署 (CI/CD) 管道。不過,由於這些資源在查詢全域 API 端點時,會大量依附於全域資源定義,因此這種做法可能會在多區域架構中造成單一故障點。
如要降低這項風險,您可以設定服務,存取全域資源的區域檢視畫面。只要將 GET 和 LIST 要求傳送至運算工作負載所在區域的區域化唯讀端點,服務就能將 API 用量與全球控制層或其他區域的潛在服務中斷問題隔離開來。如要進一步瞭解區域性唯讀端點和復原最佳做法,請參閱「使用區域檢視畫面,確保控制層讀取作業具備復原能力」。
事前準備
-
如果尚未設定驗證,請先完成設定。驗證程序會確認您的身分,以便授予 Cloud de Confiance by S3NS 服務和 API 的存取權。如要從本機開發環境執行程式碼或範例,您可以選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上範例的預計用途分頁:
控制台
使用 Cloud de Confiance 控制台存取 Cloud de Confiance by S3NS 服務和 API 時,您不需要設定驗證機制。
gcloud
-
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。登入後,執行下列指令來初始化 Google Cloud CLI:
gcloud init
-
- 設定預設區域和可用區。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。
詳情請參閱 Cloud de Confiance 驗證說明文件中的「使用 REST 進行驗證」。
必要的角色
如要取得以區域性方式存取全域性資源所需的權限,請要求管理員授予您專案或 OS 映像檔的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備以區域方式存取全域性資源所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要存取區域性全域資源,必須具備下列權限:
-
如要取得專案的區域檢視畫面:
compute.projects.get專案 -
如要取得 OS 映像檔的區域檢視畫面:
專案或 OS 映像檔的
compute.images.get和compute.images.list
專案資源
您可以使用 projectViews 唯讀端點,取得全域專案資源的區域檢視畫面。查詢 projectViews 端點時,Compute Engine 會傳回標準全域 compute.Project 資源物件。資源本身仍為全域資源。
取得專案資源的區域檢視畫面
您可以使用 Google Cloud CLI 或 REST API,取得全域專案的區域檢視畫面。
gcloud
如要透過特定區域的控制層描述全域專案,請執行 gcloud compute project-views describe 指令:
gcloud compute project-views describe \
--region=REGION \
--project=PROJECT_ID
更改下列內容:
REGION:API 要求的 Cloud de Confiance by S3NS 區域,例如us-central1。PROJECT_ID:您的專案 ID。
REST
如要透過特定區域的控制層描述全域專案,請向 projectViews 方法傳送 GET 要求。
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/projectViews"
更改下列內容:
PROJECT_ID:您的專案 ID。REGION:API 要求的 Cloud de Confiance 區域,例如us-central1。
API 會直接傳回標準 compute.Project 資源表示法。
{
"kind": "compute#project",
"id": "1234567890123456789",
"creationTimestamp": "2024-01-15T10:00:00.000-08:00",
"name": "my-project12345",
"commonInstanceMetadata": {
"items": [
{
"key": "example-key",
"value": "example-value"
}
]
},
"selfLink": "https://www.googleapis.com/compute/v1/projects/my-project12345",
"defaultServiceAccount": "SERVICE_ACCOUNT_EMAIL"
}
OS 映像檔資源
您可以使用 imageViews 唯讀端點,取得全域 OS 映像檔資源的區域檢視畫面。查詢 imageViews 端點時,Compute Engine 會傳回標準的全球 compute.Image 資源物件。資源本身仍為全域資源。
取得 OS 映像檔資源的區域清單
您可以使用 gcloud CLI 或 REST API,透過特定區域端點列出專案可用的所有全域 OS 映像檔。
gcloud
如要使用區域端點列出全域 OS 映像檔,請執行 gcloud compute image-views list 指令:
gcloud compute image-views list \
--region=REGION \
--project=PROJECT_ID
更改下列內容:
REGION:API 要求的 Cloud de Confiance 區域,例如us-central1。PROJECT_ID:您的專案 ID。
REST
如要使用區域端點列出全域 OS 映像檔,請對 imageViews 方法傳送 GET 要求:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/imageViews"
更改下列內容:
PROJECT_ID:您的專案 ID。REGION:API 要求的 Cloud de Confiance 區域,例如us-central1。
取得 OS 映像檔資源的區域檢視畫面
您可以使用 gcloud CLI 或 REST API,透過區域端點擷取特定全域 OS 映像檔的資訊。
gcloud
如要使用區域端點擷取全域 OS 映像檔的詳細資料,請執行 gcloud compute image-views describe 指令:
gcloud compute image-views describe IMAGE_NAME \
--region=REGION \
--project=PROJECT_ID
更改下列內容:
IMAGE_NAME:全域 OS 映像檔資源的名稱。REGION:API 要求的 Cloud de Confiance 區域,例如us-central1。PROJECT_ID:您的專案 ID。
REST
如要使用區域端點擷取全域 OS 映像檔的詳細資料,請向特定 imageViews 方法傳送 GET 要求:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/imageViews/IMAGE_NAME"
更改下列內容:
PROJECT_ID:您的專案 ID。REGION:API 要求的 Cloud de Confiance 區域,例如us-central1。IMAGE_NAME:全域 OS 映像檔資源的名稱。
API 會直接傳回標準 compute.Image 資源表示法。
{
"kind": "compute#image",
"id": "1234567890123456789",
"creationTimestamp": "2024-01-15T10:00:00.000-08:00",
"name": "my-image12345",
"sourceDisk": "https://www.googleapis.com/compute/v1/projects/my-project12345/zones/us-central1-a/disks/my-disk12345",
"sourceDiskId": "1234567890123456789",
"sourceType": "RAW",
"status": "READY",
"selfLink": "https://www.googleapis.com/compute/v1/projects/my-project12345/global/images/my-image12345"
}
後續步驟
- 進一步瞭解專案資源。
- 進一步瞭解 OS 映像檔。
- 瞭解如何排解全域資源區域檢視畫面的問題。