重新命名 VM

建立虛擬機器 (VM) 執行個體時,必須指定名稱。建立 VM 後,您可以視需要重新命名。在下列情況中,變更 VM 名稱可能很有用:

  • 更準確地呈現 VM 上執行的工作負載。
  • 指 VM 上執行的作業系統。
  • 遵守貴機構規定的命名慣例。

VM 統一資源 ID (URI)

變更 VM 名稱可能會影響專案。您可以使用永久的 URI 參照 VM 資源,而非使用名稱。URI 格式如下:

projects/PROJECT_ID/zones/ZONE/instances/VM_ID

URI 包含下列值:

  • PROJECT_ID:VM 所在的專案 ID。

  • ZONE:VM 所在的可用區。

  • VM_ID:現有 VM 的 ID。如要查看現有 VM 的 ID,請查看 VM 的詳細資料,然後查看 id 欄位的值。

定價

重新命名 VM 不會影響您的帳單金額。此外,由於帳單會根據 VM 的存貨單位 (SKU) (而非名稱) 顯示 VM,因此您不會在帳單上看到 VM 名稱。

限制

重新命名 VM 時,請注意下列限制:

  • 自動命名的資源:

    • 重新命名 VM 時,系統不會更新以原始 VM 名稱為依據的任何資源名稱。舉例來說,建立 VM 時,開機磁碟的名稱會與 VM 名稱相同。如果重新命名 VM,開機磁碟的名稱不會變更。
  • 靜態 IP 位址:

    • 如果重新命名 VM,系統可能不會更新 VM 使用的靜態 IP 位址,指出這些位址是由 VM 的新名稱使用。
  • DHCP 伺服器:

    • 重新命名 VM 後,DHCP 伺服器會回應 DHCP 要求,並提供更新後的主機名稱,格式為 HOSTNAME.c.PROJECT_ID.internal (全域 DNS) 和 HOSTNAME.ZONE.c.PROJECT_ID.internal (可用區 DNS)。詳情請參閱「內部 DNS 名稱類型」。
  • Google Cloud 控制台:

    • 您必須重新整理瀏覽器, Google Cloud 控制台才會更新 VM 名稱。
  • 主機名稱:

    • 變更執行個體名稱時,Linux 上的主機名稱也會隨之修改。在 Windows 上,即使重新啟動執行個體,主機名稱也不會更新。

    • 具有自訂主機名稱的 VM 不會更新。

    • 直接在主機上變更主機名稱,不會影響 VM 資源的名稱。

  • 執行個體群組:

    • 您無法重新命名非代管或代管執行個體群組 (MIG) 中的執行個體。
  • 命名慣例:

    • 您無法將 VM 重新命名為專案中其他 VM 已使用的名稱。

    • VM 名稱必須遵守資源命名慣例。

  • VM 狀態:

    • 請先停止執行個體再重新命名,因為只有處於 TERMINATED 狀態的 VM 才能重新命名。舉例來說,您無法重新命名處於 SUSPENDED 狀態的 VM。

事前準備

  • 請檢查並視需要更新下列項目:
    • Cloud Monitoring 群組、圖表和快訊: Monitoring 會比對字串,因此重新命名 VM 時,這些字串不會更新。如果重新命名 VM,請更新 Monitoring 規則,將重新命名的 VM 納入報表。
    • 控制台網址:重新命名 VM 會變更其控制台網址。如果重新命名 VM,請務必更新連結,例如參照 VM 控制台網址的瀏覽器書籤。
    • Identity and Access Management (IAM) 條件式角色繫結:條件式角色繫結支援在資源名稱上授予權限。舉例來說,如果 VM 名稱開頭為特定字串,IAM 可能會授予使用者角色。當您變更 VM 名稱時,這些繫結不會更新,因此使用者對 VM 資源的存取權可能會受到影響,因為您變更了前置字元名稱適用的 VM 組合。如果重新命名 VM,請更新這些繫結。
    • 內部 DNS 服務快取:內部 DNS 服務會為 VM 指派內部 DNS 名稱,其中主機名稱的格式為全域 DNS 的 HOSTNAME.c.PROJECT_ID.internal,以及可用區 DNS 的 HOSTNAME.ZONE.c.PROJECT_ID.internal。重新命名 VM 後,這些主機名稱會變更。接著,內部 DNS 服務會開始解析為新的主機名稱,而對先前 DNS 名稱的要求會失敗。如果重新命名 VM,可能需要更新 DNS 快取,才能更新主機名稱。如要進一步瞭解全域 DNS 和區域 DNS 主機名稱,請參閱「內部 DNS 名稱類型」。
    • 中繼資料查詢: 重新命名 VM 後,中繼資料伺服器會回報新名稱。如果重新命名 VM,請更新查詢中繼資料伺服器的所有指令碼或程式,以便查詢 VM 的新名稱。
    • 限制外部 IP 位址的組織政策:針對具有外部 IP 位址的 VM,限制會參照 VM 名稱。重新命名 VM 時,這項限制不會更新。如果重新命名 VM,請使用 VM 的新名稱更新外部 IP 組織政策。
    • SQL Server 主機名稱:如果重新命名代管 SQL Server 的 VM,您必須更新 SQL Server VM 名稱。詳情請參閱「重新命名代管獨立 SQL Server 執行個體的電腦」。
  • 如果尚未設定驗證,請先完成設定。 驗證程序會確認您的身分,以便授予 Google Cloud 服務和 API 的存取權。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上範例的預計用途分頁:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI。 安裝完成後,請執行下列指令,初始化 Google Cloud CLI:

      gcloud init

      若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。

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

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

      安裝 Google Cloud CLI。

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。

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

必要的角色

如要取得重新命名 VM 的權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備 compute.instances.setName 權限,可重新命名 VM。

您或許還可透過自訂角色或其他預先定義的角色取得這項權限。

重新命名 VM

您只能重新命名處於 TERMINATED 狀態的已停止 VM。

控制台

如要重新命名 VM,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體

  2. 在「Name」(名稱) 欄中,按一下 VM 名稱。

  3. 如果尚未停止 VM,請按一下「停止」。如果沒有「停止」選項,請依序點選 「更多動作」>「停止」。

  4. 按一下「Edit」(編輯)。

  5. 在「VM instance name」(VM 執行個體名稱) 欄位中,輸入 VM 的新名稱。

  6. 按一下 [儲存]。

    重新命名 VM 最多需要一分鐘。如果重新命名 VM 後,收到 Google Cloud 無法找到 VM 的錯誤訊息,請重新整理瀏覽器。

  7. 如有需要,請按一下 「Start / Resume」(啟動/繼續),重新啟動 VM。

gcloud

如要重新命名 VM,請按照下列步驟操作:

  1. 如果尚未停止 VM,請先完成這項操作。

  2. 如要重新命名 VM,請使用 gcloud compute instances set-name 指令。

    gcloud compute instances set-name VM_NAME \
        --new-name=NEW_VM_NAME \
        --project=PROJECT_ID \
        --zone=ZONE
    

    更改下列內容:

    • VM_NAME:現有 VM 的名稱。

    • NEW_VM_NAME:指定 VM 的新名稱。

    • PROJECT_ID:VM 所在的專案 ID。

    • ZONE:VM 所在的可用區。

    重新命名 VM 最多可能需要一分鐘。

  3. 如有需要,請重新啟動 VM。

REST

如要重新命名 VM,請按照下列步驟操作:

  1. 如果尚未停止 VM,請先停止 VM。

  2. 如要重新命名 VM,請向 instances.setName 方法發出 POST 要求。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setName
    
    {
      "currentName": "VM_NAME",
      "name": "NEW_VM_NAME"
    }
    

    更改下列內容:

    • PROJECT_ID:VM 所在的專案 ID。

    • ZONE:VM 所在的可用區。

    • VM_NAME:現有 VM 的名稱。

    • NEW_VM_NAME:指定 VM 的新名稱。

    重新命名 VM 最多可能需要一分鐘。如要監控重新命名狀態,請輪詢重新命名 API 傳回的作業 ID。詳情請參閱「處理 API 回應」。

  3. 如有需要,請重新啟動 VM。

後續步驟