查看 Compute Engine 執行個體的參照來源

如要查看 Compute Engine 執行個體與其他 Compute Engine 資源之間的關係,請使用 gcloud CLI 或 REST。

列出運算執行個體的參照來源時,Compute Engine 會傳回參照清單,其中說明:

  • 來源資源:指向目標資源的資源
  • 目標資源:有問題的資源
  • 參照類型:兩項資源之間的關係

舉例來說,您可以列出參照來源,查看運算執行個體所屬的執行個體群組清單。

事前準備

  • 如果尚未設定驗證,請先完成設定。驗證機制會確認您的身分,以便授予 Google Cloud 服務和 API 的存取權。如要從本機開發環境執行程式碼或範例,您可以選取下列其中一個選項,向 Compute Engine 進行驗證:

    請根據您打算如何使用本頁範例,選取對應的分頁標籤:

    gcloud

    1. 安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。 登入後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init
  • 設定預設區域和可用區。
  • REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。

    詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」一節。

限制

  • 您只能列出運算執行個體和執行個體群組之間的關係。系統支援代管和非代管執行個體群組。

列出單一參照網址

參照網址是指參照其他資源的資源。如果是運算執行個體,常見的參照來源是執行個體群組。

舉例來說,假設您在可用區 us-central1-a 中有名為 example-ig-a1 的運算執行個體。運算執行個體是同一可用區中名為 example-ig 的執行個體群組成員,如下圖所示:

運算執行個體是相同可用區中執行個體群組的成員。

如要查看這項關係,請使用 gcloud CLI 或 REST:

gcloud

使用 gcloud compute instances list-referrers 指令:

gcloud compute instances list-referrers INSTANCE_NAME \
    --zone=ZONE

更改下列內容:

  • INSTANCE_NAME:要列出參照來源的運算執行個體名稱。
  • ZONE:運算執行個體所在的可用區。

舉例來說,如要列出 us-central1-a 區域中 example-ig-a1 執行個體的參照來源,請執行下列指令:

gcloud compute instances list-referrers example-ig-a1 \
    --zone=us-central1-a

輸出結果會與下列內容相似:

REFERRER                                                                                          REFERENCE_TYPE  TARGET
https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig  MEMBER_OF       https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1

REST

對 instances.listReferrers 方法發出 GET 要求:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/referrers

更改下列內容:

  • PROJECT_ID:運算執行個體所在專案的 ID。
  • ZONE:運算執行個體所在的可用區。
  • INSTANCE_NAME:要列出參照來源的運算執行個體名稱。

舉例來說,如要列出 us-central1-a 區域中 example-ig-a1 執行個體的參照網址,請發出下列 HTTP 要求:

GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1/referrers

伺服器會傳回標準清單回應,其中包含以下項目:

{
  "items": [
    {
      "target": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1",
      "referenceType": "MEMBER_OF",
      "referrer": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig"
    }
  ]
}

在本案例中,目標資源為 example-ig-a1,這是參照來源資源 (example-ig 執行個體群組) 的 MEMBER_OF。

列出多個參照網址

如果資源有多個參照連結網址,回應會傳回目標資源的所有參照連結網址清單。如果執行個體屬於兩個執行個體群組,回應會包含這兩個執行個體群組。

如果運算執行個體屬於兩個執行個體群組,回應會包含這兩個執行個體群組。

舉例來說,假設 us-central1-a 區域中名為 example-instance-a2 的執行個體屬於兩個執行個體群組:example-ig 和 example-ig-2:

gcloud

使用 gcloud compute instances list-referrers 指令:

gcloud compute instances list-referrers INSTANCE_NAME \
    --zone=ZONE

更改下列內容:

  • INSTANCE_NAME:要列出參照來源的運算執行個體名稱。
  • ZONE:運算執行個體所在的可用區。

舉例來說,如要列出 us-central1-a 區域中 example-instance-a2 執行個體的參照來源,請執行下列指令:

gcloud compute instances list-referrers example-instance-a2 \
    --zone=us-central1-a

輸出結果會與下列內容相似:

REFERRER                                                                                            REFERENCE_TYPE  TARGET
https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig    MEMBER_OF       https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance-a2
https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig-2  MEMBER_OF       https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance-a2

REST

對 instances.listReferrers 方法發出 GET 要求:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/referrers

更改下列內容:

  • PROJECT_ID:運算執行個體所在專案的 ID。
  • ZONE:運算執行個體所在的可用區。
  • INSTANCE_NAME:要列出參照來源的運算執行個體名稱。

舉例來說,如要列出 us-central1-a 區域中 example-instance-a2 執行個體的參照網址,請發出下列 HTTP 要求:

GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance-a2/referrers

伺服器會傳回標準清單回應,其中包含以下項目:

{
  "items": [
    {
      "target": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance-a2",
      "referenceType": "MEMBER_OF",
      "referrer": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig"
    },
    {
      "target": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance-a2",
      "referenceType": "MEMBER_OF",
      "referrer": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig-2"
    }
  ]
}

列出跨範圍參照來源

您也可以查看其他範圍 (例如其他區域或可用區) 內參照來源的相關資訊。舉例來說,假設您有一個運算執行個體,屬於區域性代管執行個體群組 (區域性 MIG):

在 us-central1 區域中,us-central1-a 可用區中的 new-instance-a3 執行個體是 example-rmig 區域性執行個體群組的成員。

如要查看指定這個執行個體的參照來源,請使用 gcloud CLI 或 REST:

gcloud

使用 gcloud compute instances list-referrers 指令:

gcloud compute instances list-referrers INSTANCE_NAME \
    --zone=ZONE

更改下列內容:

  • INSTANCE_NAME:要列出參照來源的運算執行個體名稱。
  • ZONE:運算執行個體所在的可用區。

舉例來說,如要列出 us-central1-a 區域中 new-instance-a3 執行個體的參照來源,請執行下列指令:

gcloud compute instances list-referrers new-instance-a3 \
    --zone=us-central1-a

輸出結果會與下列內容相似:

REFERRER                                                                                          REFERENCE_TYPE  TARGET
https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/instanceGroups/example-rmig  MEMBER_OF       https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3

REST

對 instances.listReferrers 方法發出 GET 要求:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/referrers

更改下列內容:

  • PROJECT_ID:運算執行個體所在專案的 ID。
  • ZONE:運算執行個體所在的可用區。
  • INSTANCE_NAME:要列出參照來源的運算執行個體名稱。

舉例來說,如要列出 us-central1-a 區域中 new-instance-a3 執行個體的參照網址,請發出下列 HTTP 要求:

GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3/referrers

伺服器會傳回標準清單回應,其中包含以下項目:

{
  "items": [
    {
      "target": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3",
      "referenceType": "MEMBER_OF",
      "referrer": "https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-central1/instanceGroups/example-rmig"
    }
  ]
}

回應會顯示參照者清單中的區域性執行個體群組。

列出集合中所有資源的參照來源

使用萬用字元 (-),即可要求列出特定可用區內所有運算執行個體的所有參照來源:

gcloud

使用 gcloud compute instances list-referrers 指令搭配 - 萬用字元:

gcloud compute instances list-referrers - \
    --zone=ZONE

將 ZONE 替換為要列出所有運算執行個體參照網址的可用區。

舉例來說,如要列出 us-central1-a 區域中所有運算執行個體的參照來源,請執行下列指令:

gcloud compute instances list-referrers - \
    --zone=us-central1-a

輸出結果會與下列內容相似:

REFERRER                                                                                            REFERENCE_TYPE  TARGET
https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig    MEMBER_OF       https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1
https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig    MEMBER_OF       https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a2
https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig-2  MEMBER_OF       https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a2
https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/instanceGroups/example-rmig  MEMBER_OF       https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3

REST

使用 - 萬用字元,向 instances.listReferrers 方法發出 GET 要求:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/-/referrers

更改下列內容:

  • PROJECT_ID:要列出參照網址的專案 ID。
  • ZONE:要列出所有運算執行個體參照來源的可用區。

舉例來說,如要列出 us-central1-a 區域中所有運算執行個體的參照來源,請提出下列 HTTP 要求:

GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/-/referrers

伺服器會傳回回應,其中包含可用區中的運算執行個體清單,以及各個執行個體的參照。例如:

{
  "items": [
    {
      "target": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1",
      "referenceType": "MEMBER_OF",
      "referrer": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig"
    },
    {
      "target": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a2",
      "referenceType": "MEMBER_OF",
      "referrer": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig"
    },
    {
      "target": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a2",
      "referenceType": "MEMBER_OF",
      "referrer": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig-2"
    },
    {
      "target": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3",
      "referenceType": "MEMBER_OF",
      "referrer": "https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-central1/instanceGroups/example-rmig"
    }
  ]
}

後續步驟