購買附加保留項目的硬體承諾使用合約

Compute Engine 會針對可預測的工作負載,提供依資源計算的承諾使用折扣 (CUD)。購買任何 GPU 或多數本機 SSD 磁碟的承諾使用合約時,您必須預留這些資源,並將預留項目附加至承諾使用合約。

本文說明如何使用 Google Cloud 控制台、gcloud CLI 或 REST,購買附帶預留項目的依資源計算承諾使用合約。

如要進一步瞭解附加預留項目的運作方式,請參閱「將預留項目附加至依資源計算的承諾使用合約」。

如要購買不附加預留項目的 vCPU 和記憶體承諾使用合約,請參閱「購買不附加預留項目的依資源計算承諾使用合約」。

事前準備

  • 如果尚未設定驗證,請先完成設定。驗證程序會確認您的身分,以便授予 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 進行驗證」一節。

必要的角色

如要取得購買承諾使用合約和建立預留項目所需的權限,請要求管理員授予您專案的 Compute 管理員 (roles/compute.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備購買承諾使用合約和建立預留項目所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

您必須具備下列權限,才能購買承諾使用合約及建立預留項目:

  • compute.commitments.create
  • compute.reservations.create

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

根據預設,專案擁有者有權購買資源型承諾使用合約。不過,擁有者可以建立自訂角色,納入或排除特定使用者。請參閱存取控管,確認您有權購買依資源計算的承諾使用合約。

購買附加預留項目的硬體資源承諾使用合約

購買新的承諾使用合約時,您可以透過下列任一方式,將預留項目附加至承諾使用合約:

購買承諾使用合約後,合約將於美國和加拿大太平洋時間 (UTC-8,日光節約時間實行期間則為 UTC-7) 隔天凌晨 12 點生效。 Compute Engine 會在您購買承諾使用合約的每個專案區域中, 對專案保留留置權。當您為專案中的任何區域購買新的承諾使用合約時,Compute Engine 會將該區域的防刪除鎖定與新建立的承諾使用合約建立關聯。

購買承諾使用合約後到啟用之前,合約狀態會維持在「NOT_YET_ACTIVE」(Google Cloud 控制台會顯示為「PENDING」)。啟用之後,承諾使用合約的狀態會變更為 ACTIVE。 舉例來說,假設您在美國和加拿大太平洋時間 (UTC-8 或 UTC-7) 2024 年 1 月 20 日晚上 10:00 購買承諾使用合約,Compute Engine 會立即建立承諾使用合約,狀態為「NOT_YET_ACTIVE」。您的承諾使用合約將於 2024 年 1 月 21 日凌晨 12 點 (美國和加拿大太平洋時間,UTC-8 或 UTC-7) 變更為ACTIVE。

需求條件

購買附有預留項目的承諾使用合約前,請詳閱這些規定,並確認合約和預留項目符合下列條件:

  • 您必須在同一個專案和區域中購買承諾使用合約,並建立附加的預留項目。
  • 您必須購買承諾使用合約,並為相同機器家族系列的資源建立附加預留項目。
  • 如果承諾使用合約指定任何需要附加預留項目的資源類型,則必須停用附加預留項目的自動刪除選項。進一步瞭解需要附加預留項目的資源類型。
  • 如果承諾使用合約包含 GPU,則預留項目和承諾使用合約中指定的 GPU 類型必須相符。
  • 如果是 GPU 和大多數本機 SSD 磁碟,每種資源類型的預留資源數量,必須與該資源類型的承諾使用資源數量完全一致。不過,如果您在承諾使用合約中指定任何本機 Titanium SSD 磁碟,用於 C4、C4A、C4D、C4N、G4、H4D 或 Z3 機型,則不適用這項規定。

    舉例來說,如果您想購買 4 個 V100 GPU 和 2 個本機 SSD 磁碟的承諾使用合約,則承諾使用合約附加的預留項目必須指定總共 4 個 V100 GPU 和 2 個本機 SSD。預留的 vCPU 數量和記憶體容量,可以多於或少於承諾使用量。不過,如果您在承諾使用合約中指定 4 個 C4A vCPU 和 2 個本機 Titanium SSD 磁碟,就不必將任何預留項目附加至承諾使用合約。

  • 如果是 GPU,請針對您打算使用的特定 GPU 類型購買承諾使用合約。舉例來說,您可以購買 NVIDIA A100 或 NVIDIA V100 的承諾使用合約,但無法使用為 NVIDIA A100 GPU 購買的承諾使用合約來涵蓋 NVIDIA V100 GPU。

  • 如果附加的預留項目是共用預留項目,且您希望在承諾使用合約專案以外使用該預留項目時,能獲得適用的 CUD,則必須完成下列兩項操作:

    • 共用預留項目時,請務必確認專案與承諾使用合約屬於同一個 Cloud Billing 帳戶。
    • 確認該 Cloud Billing 帳戶已啟用承諾使用折扣共用功能。

加入現有預留項目

您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST,在購買承諾使用合約時附加現有預留項目。

控制台

使用 Google Cloud 控制台購買承諾使用合約前,請先選取要用來購買合約的專案。如果 Cloud Billing 帳戶已啟用 CUD 共用功能,您可以使用該 Cloud Billing 帳戶中的任何專案購買承諾使用合約。選取專案後,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Committed use discounts」(承諾使用折扣) 頁面。前往「Committed use discounts」(承諾使用折扣) 頁面

  2. 按一下「 購買承諾」。「Purchase a commitment」(購買承諾使用合約) 頁面隨即顯示。

  3. 在「Name」(名稱) 欄位中,輸入承諾使用合約的名稱。

  4. 在「Region」(區域) 欄位中,選取要購買承諾使用合約的區域。

  5. 在「Commitment type」(承諾使用合約類型) 欄位中,選取承諾使用合約的機器家族系列。下列承諾使用類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • 如要使用 A2 機型,請選取「Accelerator-optimized A2」
    • 如果是 A3 Edge 和 A3 High 機型,請選取「Accelerator-optimized A3」(加速器最佳化 A3)
    • 如果是 A3 Mega 機型,請選取「Accelerator-optimized A3 Mega」(加速器最佳化 A3 Mega)
    • 如果是 G2 機型,請選取「圖形最佳化 G2」
    • 如果是 G4 機型,請選取「Graphics-optimized G4」(圖形最佳化 G4)
    • 如要使用 C2 機型,請選取「Compute-optimized C2」(運算最佳化 C2)
    • 如為 C2D 機型,請選取「Compute-optimized C2D」(運算最佳化 C2D)
    • 如要使用 C3 機型,請選取「一般用途 C3」
    • 如為 C3D 機型,請選取「General-Purpose C3D」(一般用途 C3D)
    • 如要選取 C4 機型,請選取「General-Purpose C4」(一般用途 C4)
    • 如要使用 C4A 機型,請選取「一般用途 C4A」
    • 如為 C4D 機型,請選取「一般用途 C4D」
    • 如要使用 C4N 機型,請選取「Network-optimized C4N」(網路最佳化 C4N)
    • 如要使用 N1 機型,請選取「General-Purpose N1」(一般用途 N1)
    • 如要使用 N2 機型,請選取「General-Purpose N2」(一般用途 N2)
    • 如要使用 N2D 機型,請選取「一般用途 N2D」
    • 如果是 M1 機型,請選取「記憶體最佳化 M1/M2」
    • 如為 M3 機型,請選取「記憶體最佳化 M3」
    • 如要使用 Z3 機型,請選取「儲存空間最佳化 Z3」
    • 如為 Z4D 機型,請選取「儲存空間最佳化 Z4D」
    • 如要使用 Z4M 機型,請選取「Storage-optimized Z4M」(儲存空間最佳化 Z4M)

  6. 如要將一或多個現有預留項目附加至承諾使用合約,請按照下列步驟操作:

    1. 勾選「附加現有或新的預留項目」核取方塊。

    2. 按一下「Attach an existing reservation」(附加現有預留項目)。「Attach existing reservations」(附加現有預留項目) 窗格隨即顯示,並列出專案中的預留項目。這份清單已篩選,符合您指定的區域和承諾使用合約類型。

    3. 在「Attach existing reservations」(附加現有預留項目) 窗格中,勾選要附加的每個預留項目核取方塊。

    4. 查看所選預留項目的資源摘要,然後按一下「Attach」(附加)。

    附加預留項目後,Compute Engine 會自動填入「Commitment details」(承諾使用合約詳細資料) 區段中的欄位,以符合附加預留項目中的資源數量和類型。如果在附加預留項目之前,您已在「Commitment details」(承諾使用合約詳細資料) 區段中手動輸入任何資源的值,系統會以預留項目的值覆寫這些值。

  7. 在「Commitment details」(承諾使用合約詳細資料) 部分,執行下列操作:

    1. 在「Cores」(核心) 欄位中,確認預填的值。您也可以視需要指定不同的 vCPU 數量。

    2. 在「Memory」(記憶體) 欄位中,確認預填的記憶體容量 (以 GB 為單位)。您也可以視需要指定其他金額。指定記憶體時,只能以 0.25 GB 為單位遞增。如要為承諾使用合約指定自訂記憶體值,請改用 gcloud CLI 或 REST。

    3. 展開「GPUs and local SSDs」(GPU 和本機 SSD) 區段,確認承諾使用合約和附加預留項目的類型和數量相符,如下所示:

      1. 在「GPU type」(GPU 類型) 欄位中,確認預填的 GPU 類型。

      2. 在「Number of GPUs」(GPU 數量) 欄位中,確認預填的 GPU 數量。

      3. 在「Local SSDs」(本機 SSD) 欄位中,確認預填的磁碟數量。

      如果您手動為這些欄位指定與附加預留項目不同的值,則無法購買承諾使用合約。對於所有 GPU 和大多數本機 SSD 磁碟,承諾使用合約和附加預留項目的總數和類型必須相符。

  8. 在「Term」(期限) 部分,執行下列操作:

    1. 如要指定承諾使用合約的方案,請選取「1 年」或「3 年」。方案會決定承諾使用合約的 CUD 費率和預設合約期。

    2. 查看「Start date」(開始日期) 欄位,其中會顯示承諾使用合約生效的日期和時間。系統會自動將這個欄位設為目前日期隔天的美國和加拿大太平洋時間凌晨 12 點。

    3. 選用。如要將承諾使用合約的約期延長至承諾使用合約方案定義的預設約期長度,請在「End date」(結束日期) 欄位中指定承諾使用合約的自訂結束日期。詳情請參閱「延長承諾使用合約期限」。

    4. 選用。如要讓承諾使用合約在約期結束時自動續約,請勾選「Auto-renew commitment」(自動續約承諾使用合約) 核取方塊。

  9. 在「Summary」(摘要) 窗格中,查看承諾使用合約詳細資料和任何潛在配額限制。

  10. 如要完成購買承諾使用合約,請按照下列步驟操作:

    1. 移至頁面最下方。

    2. 查看「揭露事項」部分,其中包含費用、折扣資格和條款及細則等資訊。

    3. 如要確認接受承諾使用合約價格和服務專屬條款,請勾選核取方塊。

    4. 按一下「購買」。

gcloud

如要附加現有預留項目來購買承諾使用合約,請執行 gcloud compute commitments create 指令。在指令中加入 --existing-reservation 旗標,指定要附加至承諾使用合約的現有預留項目。針對要附加的每個現有預留項目,加入這個旗標的新執行個體。您可以將任意數量的現有預留項目附加至承諾使用合約。

舉例來說,如要購買承諾使用合約並附加兩項預留項目,請執行下列指令:

gcloud compute commitments create COMMITMENT_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
    --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
    --plan=PLAN \
    --type=COMMITMENT_TYPE \
    --custom-end-time=CUSTOM_END_DATE \
    --existing-reservation=name='RESERVATION_NAME_1',zone='RESERVATION_ZONE_1' \
    --existing-reservation=name='RESERVATION_NAME_2',zone='RESERVATION_ZONE_2'

更改下列內容:

  • COMMITMENT_NAME:承諾使用合約的名稱。
  • REGION:承諾使用合約所在的區域。
  • PROJECT_ID:您要購買承諾使用合約和附加預留項目的專案 ID。
  • PLAN:承諾使用合約方案,決定 CUD 費率和預設合約效期。指定 12-month 或 36-month。
  • CUSTOM_END_DATE:選用。合約的自訂結束日期,格式必須為 YYYY-MM-DD。舉例來說,如要指定 2024 年 4 月 20 日為自訂結束日期,請將格式設為 2024-04-20。
  • COMMITMENT_TYPE:承諾使用合約類型。下列承諾使用合約類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • 如果是 A2 機型,請使用 accelerator-optimized
    • 如果是 A3 Edge 和 A3 High 機型,請使用 accelerator-optimized-a3
    • 如果是 A3 Mega 機型,請使用 accelerator-optimized-a3-mega
    • 如果是 G2 機型,請使用 graphics-optimized
    • 如果是 G4 機型,請使用 graphics-optimized-g4
    • 如果是 C2 機型,請使用 compute-optimized
    • 如果是 C2D 機型,請使用 compute-optimized-c2d
    • 如果是 C3 機型,請使用 compute-optimized-c3
    • 如果是 C3D 機型,請使用 compute-optimized-c3d
    • 如果是 N1 機型,請使用 general-purpose
    • 如果是 C4 機型,請使用 general-purpose-c4
    • 如果是 C4A 機型,請使用 general-purpose-c4a
    • 如果是 C4D 機型,請使用 general-purpose-c4d
    • 如果是 C4N 機型,請使用 network-optimized-c4n
    • 如果是 N2 機型,請使用 general-purpose-n2
    • 如果是 N2D 機型,請使用 general-purpose-n2d
    • 如果是 M1 機型,請使用 memory-optimized
    • 如果是 M3 機型,請使用 memory-optimized-m3
    • 如果是 Z3 機型,請使用 storage-optimized-z3
    • 如果是 Z4D 機型,請使用 storage-optimized-z4d
    • 如果是 Z4M 機型,請使用 storage-optimized-z4m

  • COMMITTED_VCPUS:承諾使用合約中要包含的 vCPU 數量。這個數字必須是正整數。

  • COMMITTED_MEMORY:承諾使用合約中所需的記憶體容量,以 MB 或 GB 為單位。例如:10240MB 或 10GB。如果是 gcloud CLI,則可以指定 MB 或 GB 為單位。如未指定單位,Compute Engine 會預設使用 GB。不過請注意,使用 REST 時,Compute Engine 預設會以 MB 為單位。

  • COMMITTED_LOCAL_SSD:承諾使用合約中所需的本機 SSD 空間量 (以 GB 為單位)。

  • COMMITTED_ACCELERATOR_COUNT:承諾使用合約中要使用的 GPU 數量。

  • COMMITTED_ACCELERATOR_TYPE:承諾使用合約中要使用的 GPU 類型。

  • RESERVATION_NAME_1 和 RESERVATION_NAME_2:要附加至承諾使用合約的現有預留項目名稱。

  • RESERVATION_ZONE_1 和 RESERVATION_ZONE_2:要附加至承諾使用合約的現有預留項目可用區。

範例:附加現有預留項目來購買承諾使用合約

假設您在專案 myproject 的 us-central1-a 和 us-central1-b 可用區中,有兩個預留項目 res-01 和 res-02。假設這些預留項目共保留 4 個 NVIDIA T4 GPU 和 4 個本機 SSD 磁碟。如要為這些 GPU 和本機 SSD 購買這項專案 us-central1 區域的新承諾使用合約,並將這些現有預留項目做為附加預留項目,請執行下列指令。承諾使用合約指定 96 個 vCPU、624 GB 記憶體、4 個 NVIDIA T4 GPU 和 1,500 GB 本機 SSD 儲存空間 (相當於 4 個本機 SSD 磁碟)。本機 SSD 儲存空間值必須以 GB 為單位指定 (例如 375GB)。如果是 gcloud CLI,則可以 MB 或 GB 為單位指定記憶體。如未指定單位,Compute Engine 會預設使用 GB。不過請注意,使用 REST 時,Compute Engine 會以 MB 為預設單位。

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624GB,local-ssd=1500 \
    --resources-accelerator=type=nvidia-tesla-t4,count=4 \
    --plan 12-month \
    --existing-reservation=name=res-01,zone=us-central1-a \
    --existing-reservation=name=res-02,zone=us-central1-b
    

REST

如要透過附加現有預留項目來購買承諾使用合約,請向 regionCommitments.insert 方法發出 POST 要求。在要求中加入 existingReservations 欄位,以半形逗號分隔的清單指定要附加至承諾使用合約的所有現有預留項目。您可以將任意數量的現有預留項目附加至承諾使用合約。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments

{
  "name": "COMMITMENT_NAME",
  "plan": "PLAN",
  "type": "COMMITMENT_TYPE",
  "resources":
  [
    {
      "amount": "COMMITTED_VCPUS",
      "type": "VCPU"
    },
    {
      "amount": "COMMITTED_MEMORY",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
      "amount": "COMMITTED_ACCELERATOR_COUNT",
      "type": "ACCELERATOR"
    },
    {
      "amount": "COMMITTED_LOCAL_SSD",
      "type": "LOCAL_SSD"
    }
  ],
  "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ",
  "existingReservations": "RESERVATION_URLS"
}

更改下列內容:

  • COMMITMENT_NAME:承諾使用合約的名稱。
  • REGION:承諾使用合約所在的區域。
  • PROJECT_ID:您要購買承諾使用合約和附加預留項目的專案 ID。
  • PLAN:承諾使用合約方案,決定 CUD 費率和預設合約效期。指定 TWELVE_MONTH 或 THIRTY_SIX_MONTH。
  • COMMITMENT_TYPE:承諾使用合約類型。下列承諾使用合約類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • 如果是 A2 機型,請使用 ACCELERATOR_OPTIMIZED
    • 如果是 A3 Edge 和 A3 High 機型,請使用 ACCELERATOR_OPTIMIZED_A3
    • 如果是 A3 Mega 機型,請使用 ACCELERATOR_OPTIMIZED_A3_MEGA
    • 如果是 G2 機型,請使用 GRAPHICS_OPTIMIZED
    • 如果是 G4 機型,請使用 GRAPHICS_OPTIMIZED_G4
    • 如果是 C2 機型,請使用 COMPUTE_OPTIMIZED
    • 如果是 C2D 機型,請使用 COMPUTE_OPTIMIZED_C2D
    • 如果是 C3 機型,請使用 COMPUTE_OPTIMIZED_C3
    • 如果是 C3D 機型,請使用 COMPUTE_OPTIMIZED_C3D
    • 如果是 N1 機型,請使用 GENERAL_PURPOSE
    • 如果是 C4 機型,請使用 GENERAL_PURPOSE_C4
    • 如果是 C4A 機型,請使用 GENERAL_PURPOSE_C4A
    • 如果是 C4D 機型,請使用 GENERAL_PURPOSE_C4D
    • 如果是 C4N 機型,請使用 NETWORK_OPTIMIZED_C4N
    • 如果是 N2 機型,請使用 GENERAL_PURPOSE_N2
    • 如果是 N2D 機型,請使用 GENERAL_PURPOSE_N2D
    • 如果是 M1 機型,請使用 MEMORY_OPTIMIZED
    • 如果是 M3 機型,請使用 MEMORY_OPTIMIZED_M3
    • 如果是 Z3 機型,請使用 STORAGE_OPTIMIZED_Z3
    • 如果是 Z4D 機型,請使用 STORAGE_OPTIMIZED_Z4D
    • 如果是 Z4M 機型,請使用 STORAGE_OPTIMIZED_Z4M

  • COMMITTED_VCPUS:承諾使用合約中所需的 vCPU 數量。這個數字必須是正整數。

  • COMMITTED_MEMORY:承諾使用合約中的記憶體容量。如果是 REST,Compute Engine 會使用 MB 做為預設單位。不過,請注意,使用 gcloud CLI 時,Compute Engine 預設會以 GB 為單位。

  • COMMITTED_LOCAL_SSD:承諾使用合約中所需的本機 SSD 儲存空間量 (以 GB 為單位)。

  • COMMITTED_ACCELERATOR_COUNT:承諾使用合約中要包含的 GPU 數量。

  • COMMITTED_ACCELERATOR_TYPE:承諾使用合約中要使用的 GPU 類型。

  • CUSTOM_END_DATE:選用。合約的自訂結束日期,格式必須為 YYYY-MM-DD。舉例來說,如要指定 2024 年 4 月 20 日為自訂結束日期,請將格式設為 2024-04-20。

  • END_TIME:美國和加拿大太平洋時間 (UTC-8 或 UTC-7) 凌晨 12 點,以世界標準時間 (UTC) 為基準。只有在您為承諾使用合約指定自訂結束日期時,才需要指定這個值。指定下列其中一個值:

    • 日光節約時間:07:00:00
    • 其他時間:08:00:00
  • RESERVATION_URLS:以半形逗號分隔的清單,列出要附加至承諾使用合約的現有預留項目網址。舉例來說,如要連結 res-1 和 res-2 這兩個預留項目,請指定下列項目:

    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/example-res-1",
    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/reservations/example-res-2"
    

範例:附加現有預留項目來購買承諾使用合約

假設您在專案 myproject 的 us-central1-a 和 us-central1-b 可用區中,有兩個預留項目 res-01 和 res-02。假設這些預留項目共保留 4 個 NVIDIA T4 GPU 和 4 個本機 SSD 磁碟。如要為這些 GPU 和本機 SSD 磁碟,在本專案的 us-central1 區域購買新的承諾使用合約,並將這些現有預留項目做為附加預留項目,請提出下列 POST 要求。承諾使用合約指定 96 個 vCPU、624 GB 記憶體、4 個 NVIDIA T4 GPU 和 1,500 GB 本機 SSD 儲存空間。請注意,本機 SSD 儲存空間值必須以 GB 為單位。記憶體的值必須以 MB 為單位。不過請注意,使用 gcloud CLI 時,Compute Engine 會以 GB 做為記憶體的預設單位。

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE",
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-t4",
      "amount": "4",
      "type": "ACCELERATOR"
    },
    {
      "amount": "1500",
      "type": "LOCAL_SSD"
    }
  ],
  "existingReservations":
  [
    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/res-01",
    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-b/reservations/res-02"
  ]
}

建立新的預留項目來附加

您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST,在購買承諾使用合約時建立附加預留項目。

控制台

使用 Google Cloud 控制台購買承諾使用合約前,請先選取要用來購買合約的專案。如果 Cloud Billing 帳戶已啟用 CUD 共用功能,您可以使用該 Cloud Billing 帳戶中的任何專案購買承諾使用合約。選取專案後,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Committed use discounts」(承諾使用折扣) 頁面。前往「Committed use discounts」(承諾使用折扣) 頁面

  2. 按一下「 購買承諾」。「Purchase a commitment」(購買承諾使用合約) 頁面隨即顯示。

  3. 在「Name」(名稱) 欄位中,輸入承諾使用合約的名稱。

  4. 在「Region」(區域) 欄位中,選取要購買承諾使用合約的區域。

  5. 在「Commitment type」(承諾使用合約類型) 欄位中,選取承諾使用合約的機器家族系列。下列承諾使用類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • 如要使用 A2 機型,請選取「Accelerator-optimized A2」
    • 如果是 A3 Edge 和 A3 High 機型,請選取「Accelerator-optimized A3」(加速器最佳化 A3)
    • 如果是 A3 Mega 機型,請選取「Accelerator-optimized A3 Mega」(加速器最佳化 A3 Mega)
    • 如果是 G2 機型,請選取「圖形最佳化 G2」
    • 如果是 G4 機型,請選取「Graphics-optimized G4」(圖形最佳化 G4)
    • 如要使用 C2 機型,請選取「Compute-optimized C2」(運算最佳化 C2)
    • 如為 C2D 機型,請選取「Compute-optimized C2D」(運算最佳化 C2D)
    • 如要使用 C3 機型,請選取「一般用途 C3」
    • 如為 C3D 機型,請選取「General-Purpose C3D」(一般用途 C3D)
    • 如要選取 C4 機型,請選取「General-Purpose C4」(一般用途 C4)
    • 如要使用 C4A 機型,請選取「一般用途 C4A」
    • 如為 C4D 機型,請選取「一般用途 C4D」
    • 如要使用 C4N 機型,請選取「Network-optimized C4N」(網路最佳化 C4N)
    • 如要使用 N1 機型,請選取「General-Purpose N1」(一般用途 N1)
    • 如要使用 N2 機型,請選取「General-Purpose N2」(一般用途 N2)
    • 如要使用 N2D 機型,請選取「一般用途 N2D」
    • 如果是 M1 機型,請選取「記憶體最佳化 M1/M2」
    • 如為 M3 機型,請選取「記憶體最佳化 M3」
    • 如要使用 Z3 機型,請選取「儲存空間最佳化 Z3」
    • 如為 Z4D 機型,請選取「儲存空間最佳化 Z4D」
    • 如要使用 Z4M 機型,請選取「Storage-optimized Z4M」(儲存空間最佳化 Z4M)

  6. 如要建立新的預留項目並附加至承諾使用合約,請按照下列步驟操作:

    1. 勾選「附加現有或新的預留項目」核取方塊。

    2. 按一下「Create new reservation」(建立新的預留項目)。「Create a new reservation」(建立新的預留項目) 窗格隨即顯示。

    3. 在「Name」(名稱) 欄位中,輸入預留項目的名稱。

    4. 選用:在「Description」(說明) 欄位中輸入說明。

    5. 在「Zone」(可用區) 欄位中,選取要提供預留資源的可用區。

    6. 在「Share type」(共用區類型) 部分,指定預留項目的共用方式:

      • 如要建立單一專案預留項目,請選取「Local」(本機)。
      • 如要建立與多個專案共用的預留項目,請選取「Shared」(共用)。接著,按一下「Add projects」(新增專案),然後選取所需專案。
    7. 在「Google Cloud Services」(Google Cloud 服務) 部分,指定是否要與 Google Kubernetes Engine 或 Vertex AI 等其他服務共用這項預留項目。

    8. 在「Use with VM instance」(用於 VM 執行個體) 區段中,選取 VM 使用預留項目的方式:

      • 如要允許屬性相符的 VM 自動使用這個預留項目,請選取「Use reservation automatically」(自動使用預留項目)。
      • 如要只在明確指定這個預留項目名稱時,才使用這個預留項目的資源,請選用「Select specific reservation」(選取特定預留項目)。
    9. 在「Resource details」(資源詳細資料) 部分,執行下列操作:

      1. 在「Number of VM instances」(VM 執行個體數量) 欄位中,輸入 VM 數量。

      2. 在「Machine configuration」(機器設定) 區段中,選取「Machine type」(機型) 來指定屬性。從清單中選取機型,或選取「Custom」(自訂),指定「Cores」(核心) 數量和「Memory」(記憶體) 容量。

      3. 選用:如要預留 GPU,請按一下「Add GPU」(新增 GPU),然後指定各個 VM 的「GPU type」(GPU 類型) 和「Number of GPUs」(GPU 數量)。

      4. 選用:如要預留本機 SSD 磁碟,請指定「Number of disks」(磁碟數量) 和「Interface type」(介面類型)。

      5. 選用:如要指定群組配置政策,請在「Group placement policy」(群組配置政策) 清單中選取或建立政策。

    10. 如要完成指定這項預留項目的屬性,請按一下「Create and attach」(建立並附加)。

    11. 選用:如要建立並附加更多新的預留項目,請再次按一下「Create new reservation」(建立新的預留項目),然後重複上述步驟。

    附加預留項目後,Compute Engine 會自動填入「Commitment details」(承諾使用合約詳細資料) 區段中的欄位,以符合附加預留項目中的資源數量和類型。如果在附加預留項目之前,您已在「Commitment details」(承諾使用合約詳細資料) 區段中手動輸入任何資源的值,系統會以預留項目的值覆寫這些值。

  7. 在「Commitment details」(承諾使用合約詳細資料) 部分,執行下列操作:

    1. 在「Cores」(核心) 欄位中,確認預填的值。您也可以視需要指定不同的 vCPU 數量。

    2. 在「Memory」(記憶體) 欄位中,確認預填的記憶體容量 (以 GB 為單位)。您也可以視需要指定其他金額。指定記憶體時,只能以 0.25 GB 為單位遞增。如要為承諾使用合約指定自訂記憶體值,請改用 gcloud CLI 或 REST。

    3. 展開「GPUs and local SSDs」(GPU 和本機 SSD) 區段,確認承諾使用合約和附加預留項目的類型和數量相符,如下所示:

      1. 在「GPU type」(GPU 類型) 欄位中,確認預填的 GPU 類型。

      2. 在「Number of GPUs」(GPU 數量) 欄位中,確認預填的 GPU 數量。

      3. 在「Local SSDs」(本機 SSD) 欄位中,確認預填的磁碟數量。

      如果您手動為這些欄位指定與附加預留項目不同的值,則無法購買承諾使用合約。對於所有 GPU 和大多數本機 SSD 磁碟,承諾使用合約和附加預留項目的總數和類型必須相符。

  8. 在「Term」(期限) 部分,執行下列操作:

    1. 如要指定承諾使用合約的方案,請選取「1 年」或「3 年」。方案會決定承諾使用合約的 CUD 費率和預設合約期。

    2. 查看「Start date」(開始日期) 欄位,其中會顯示承諾使用合約生效的日期和時間。系統會自動將這個欄位設為目前日期隔天的美國和加拿大太平洋時間凌晨 12 點。

    3. 選用。如要將承諾使用合約的約期延長至承諾使用合約方案定義的預設約期長度,請在「End date」(結束日期) 欄位中指定承諾使用合約的自訂結束日期。詳情請參閱「延長承諾使用合約期限」。

    4. 選用。如要讓承諾使用合約在約期結束時自動續約,請勾選「Auto-renew commitment」(自動續約承諾使用合約) 核取方塊。

  9. 在「Summary」(摘要) 窗格中,查看承諾使用合約詳細資料和任何潛在配額限制。

  10. 如要完成購買承諾使用合約,請按照下列步驟操作:

    1. 移至頁面最下方。

    2. 查看「揭露事項」部分,其中包含費用、折扣資格和條款及細則等資訊。

    3. 如要確認接受承諾使用合約價格和服務專屬條款,請勾選核取方塊。

    4. 按一下「購買」。

gcloud

如要在購買承諾使用合約時建立附加預留項目,請執行 gcloud compute commitments create 指令。

視您要附加單一預留項目或多個預留項目而定,請以下列其中一種方式執行指令:

  • 如要建立單一預留項目並附加至承諾使用合約,請執行下列指令,定義附加預留項目的屬性:

    gcloud compute commitments create COMMITMENT_NAME \
        --region=REGION \
        --project=PROJECT_ID \
        --plan PLAN \
        --type COMMITMENT_TYPE \
        --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
        --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
        --custom-end-time=CUSTOM_END_DATE \
        --reservation=RESERVATION_NAME \
        --reservation-zone=RESERVATION_ZONE \
        --machine-type=RESERVED_MACHINE_TYPE \
        --require-specific-reservation=REQUIRE_SPECIFIC_RESERVATION_VALUE \
        --vm-count=NUMBER_OF_RESERVED_VMS \
        --accelerator=type=RESERVED_ACCELERATOR_TYPE,count=RESERVED_ACCELERATOR_COUNT \
        --local-ssd=interface=INTERFACE_1,size=375 \
        --local-ssd=interface=INTERFACE_2,size=375 \
        --minimum-cpu-platform=MINIMUM_CPU_PLATFORM \
        --share-setting=SHARE_SETTING \
        --share-with=CONSUMER_PROJECT_ID_1,CONSUMER_PROJECT_ID_2
    
  • 如要建立多項預留項目並附加至承諾使用合約,請使用 YAML 檔案定義預留項目的屬性,然後在購買承諾使用合約的指令中指定該 YAML 檔案。您也可以選擇使用這個 YAML 檔案方法,建立單一預留項目並附加至承諾使用合約。如要使用這個方法建立附加預留項目,請按照下列步驟操作:

    1. 在目前目錄中建立 YAML 檔案,並為每個附加預留項目指定所需設定。舉例來說,如要指定與兩項專案共用的預留項目設定,並指定 GPU、兩個本機 SSD 磁碟和最低 CPU 平台,請在 YAML 檔案中加入下列文字:

      - reservation: RESERVATION_NAME
        reservation_zone: RESERVATION_ZONE
        require_specific_reservation: REQUIRE_SPECIFIC_RESERVATION_VALUE
        vm_count: NUMBER_OF_RESERVED_VMS
        machine_type: RESERVED_MACHINE_TYPE
        accelerator:
        - count: RESERVED_ACCELERATOR_COUNT
          type: RESERVED_ACCELERATOR_TYPE
        local_ssd:
        - interface: INTERFACE_1
          size: 375
        - interface: INTERFACE_2
          size: 375
        project: OWNER_PROJECT_ID
        minimum-cpu-platform: MINIMUM_CPU_PLATFORM
        share-setting: SHARE_SETTING
        share-with:
        - CONSUMER_PROJECT_ID_1
        - CONSUMER_PROJECT_ID_2
      
      

      如要指定多個預留項目的設定,請為要建立的每個預留項目重複這些屬性。您可以將任意數量的現有預留項目附加至承諾使用合約。

    2. 執行 gcloud compute commitments create 指令,並加入 --reservations-from-file 旗標。

      gcloud compute commitments create COMMITMENT_NAME \
          --region REGION \
          --project PROJECT_ID \
          --plan PLAN \
          --type COMMITMENT_TYPE \
          --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
          --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
          --reservations-from-file=YAML_FILE
      

將下列內容替換為承諾使用合約和附加預留項目的對應屬性:

承諾

  • COMMITMENT_NAME:承諾使用合約的名稱。
  • REGION:承諾使用合約所在的區域。
  • PROJECT_ID:您要購買承諾使用合約和附加預留項目的專案 ID。
  • PLAN:承諾使用合約方案,決定 CUD 費率和預設合約效期。指定 12-month 或 36-month。
  • CUSTOM_END_DATE:選用。合約的自訂結束日期,格式必須為 YYYY-MM-DD。舉例來說,如要指定 2024 年 4 月 20 日為自訂結束日期,請將格式設為 2024-04-20。
  • COMMITMENT_TYPE:承諾使用合約類型。下列承諾使用合約類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • 如果是 A2 機型,請使用 accelerator-optimized
    • 如果是 A3 Edge 和 A3 High 機型,請使用 accelerator-optimized-a3
    • 如果是 A3 Mega 機型,請使用 accelerator-optimized-a3-mega
    • 如果是 G2 機型,請使用 graphics-optimized
    • 如果是 G4 機型,請使用 graphics-optimized-g4
    • 如果是 C2 機型,請使用 compute-optimized
    • 如果是 C2D 機型,請使用 compute-optimized-c2d
    • 如果是 C3 機型,請使用 compute-optimized-c3
    • 如果是 C3D 機型,請使用 compute-optimized-c3d
    • 如果是 N1 機型,請使用 general-purpose
    • 如果是 C4 機型,請使用 general-purpose-c4
    • 如果是 C4A 機型,請使用 general-purpose-c4a
    • 如果是 C4D 機型,請使用 general-purpose-c4d
    • 如果是 C4N 機型,請使用 network-optimized-c4n
    • 如果是 N2 機型,請使用 general-purpose-n2
    • 如果是 N2D 機型,請使用 general-purpose-n2d
    • 如果是 M1 機型,請使用 memory-optimized
    • 如果是 M3 機型,請使用 memory-optimized-m3
    • 如果是 Z3 機型,請使用 storage-optimized-z3
    • 如果是 Z4D 機型,請使用 storage-optimized-z4d
    • 如果是 Z4M 機型,請使用 storage-optimized-z4m

  • COMMITTED_VCPUS:承諾使用合約中要包含的 vCPU 數量。這個數字必須是正整數。

  • COMMITTED_MEMORY:承諾使用合約中所需的記憶體容量,以 MB 或 GB 為單位。例如:10GB 或 10240MB。如果是 gcloud CLI,則可以指定 MB 或 GB 為記憶體單位。如未指定單位,Compute Engine 會預設使用 GB。不過請注意,使用 REST 時,Compute Engine 預設會以 MB 為單位。

  • COMMITTED_LOCAL_SSD:本機 SSD 儲存空間量,必須以 GB 為單位指定,例如 375GB。

  • COMMITTED_ACCELERATOR_COUNT:承諾使用合約中要包含的 GPU 數量。

  • COMMITTED_ACCELERATOR_TYPE:承諾使用合約中要使用的 GPU 類型。

  • YAML_FILE:YAML 檔案的路徑,其中包含附加預留項目的設定。

附加的預留項目

  • RESERVATION_NAME:附加 預留項目的名稱。
  • RESERVATION_ZONE:附加預留項目的可用區。
  • REQUIRE_SPECIFIC_RESERVATION_VALUE:指定附加的預留項目是否為明確指定的預留項目,可以是 true 或 false。如要進一步瞭解特定目標預留項目,請參閱「預留項目的運作方式」。
  • NUMBER_OF_RESERVED_VMS:要在附加預留項目中預留的 VM 數量。
  • RESERVED_MACHINE_TYPE:附加預留項目中 VM 的機器類型。

    • 如果是「預先定義」機型,請使用 MACHINE_FAMILY-standard-CPUS 格式,例如 n2-standard-4。
    • 如果是「自訂」機型,請使用 MACHINE_FAMILY-custom-CPUS-MEMORY 格式,例如 n2-custom-4-5120。如需完整的限制清單,請參閱自訂機型的規格。

      更改下列內容:

      • MACHINE_FAMILY:機型系列,例如為 N2 VM 指定 n2。
      • CPUS:vCPUs 數量。
      • MEMORY:預留 VM 的記憶體總量。記憶體必須是 256 MB 的倍數,且必須以 MB 為單位提供。例如,如要建立具有 4 個 vCPU 和 5 GB 記憶體 (即 5120 MB) 的 N2 VM,請使用 n2-custom-4-5120。
  • RESERVED_ACCELERATOR_COUNT:在附加的預留項目中,每個 VM 要新增的 GPU 數量。

  • RESERVED_ACCELERATOR_TYPE:要在附加預留項目中新增的加速器類型。

  • INTERFACE_1 和 INTERFACE_2:各預留 VM 的本機 SSD 磁碟要使用的介面類型。有效選項為 scsi 和 nvme。針對要新增的每個本機 SSD 磁碟,重複 local_ssd 參數。最多可以指定 24 個本機 SSD 磁碟。

  • OWNER_PROJECT_ID:您要購買承諾使用合約並附加預留項目的專案 ID。如要與多項用戶專案共用附加的預留項目,請指定這個欄位。

  • MINIMUM_CPU_PLATFORM:要為附加預留項目指定的最低 CPU 平台。

  • SHARE_SETTING:附加預留項目的共用類型。如要與多個消費者專案共用附加的預留項目,請將這個欄位的值設為 projects。如要建立單一專案預留項目,請排除這個欄位。

  • CONSUMER_PROJECT_ID_1 和 CONSUMER_PROJECT_ID_2:可共用這項預留項目的專案 ID,例如 project-1 和 project-2。最多可加入 100 項消費者專案。這些專案必須與擁有者專案位於同一個組織。請勿加入建立這項預留項目的專案 ID,因為該專案預設可使用這項預留項目。如要建立單一專案預留項目,請排除這些欄位。

只有在您提出要求時,目標可用區中有足夠的指定機型資源,且配額充足,Compute Engine 才會建立承諾使用合約和附加的預留項目。如果購買成功,您會看到類似以下的成功訊息:

Created[https://www.googleapis.com/compute/v1/projects/your-project/regions/your-region/commitments/your-commitment-name]

範例

下列範例情境和指令說明如何建立新的預留項目,並附加至承諾使用合約,藉此購買 GPU、本機 SSD 磁碟或兩者的承諾使用合約。

範例 1:附加一項新的預留項目,購買 GPU 承諾使用合約

假設您想購買 us-central1 區域的一般用途資源 (或 GPU 資源) 1 年期承諾使用合約,其中包含 96 個 vCPU、624 GB 記憶體和 4 個 NVIDIA V100 GPU。您想在 us-central1-a 可用區建立新的預留項目 reservation-01,預留 2 個 n1-standard-32 VM (每個 VM 有 32 個 vCPU、120 GB 記憶體和 2 個 NVIDIA V100 GPU),以使用這些承諾資源。如要購買這個範例承諾使用合約及其附加預留項目,請執行下列指令。使用 gcloud CLI 時,可以指定 MB 或 GB 為記憶體單位。如未指定單位,Compute Engine 會預設使用 GB。不過請注意,使用 REST 時,Compute Engine 預設會以 MB 為單位。

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624GB \
    --resources-accelerator=type=nvidia-tesla-v100,count=4 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-central1-a \
    --machine-type=n1-standard-32 \
    --accelerator=type=nvidia-tesla-v100,count=2 \
    --vm-count=2

範例 2:購買 GPU 承諾使用合約,但不指定 vCPU 或記憶體

如要承諾使用並預留 GPU 和本機 SSD 磁碟,但不承諾使用 vCPU 或記憶體,請將 vCPU 和記憶體數量的值指定為 0。舉例來說,假設您想在 us-west2 區域購買 1 年期的 GPU 資源承諾使用合約,其中包含 0 個 vCPU、0 GB 記憶體和 1 個 NVIDIA P4 GPU。您也想在 us-west2-b 可用區建立新的預留項目 reservation-01,預留 1 個 n1-standard-2 VM (具備 2 個 vCPU、7.5 GB 記憶體和 1 個 NVIDIA P4 GPU),並附加至承諾使用合約。如要購買這個範例承諾使用合約及其附加預留項目,請執行下列指令。使用 gcloud CLI 時,可以指定 MB 或 GB 為單位。如未指定單位,Compute Engine 會預設使用 GB。不過請注意,使用 REST 時,Compute Engine 預設會以 MB 為單位。

gcloud compute commitments create commitment-02 \
    --region=us-west2 \
    --project=myproject \
    --resources=vcpu=0,memory=0 \
    --resources-accelerator=type=nvidia-tesla-p4,count=1 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-west2-b \
    --machine-type=n1-standard-2 \
    --accelerator=type=nvidia-tesla-p4,count=1 \
    --vm-count=1

範例 3:附加多項新預留項目,購買 GPU 和本機 SSD 磁碟的承諾使用合約

假設您想購買 us-central1 區域的一般用途資源 (或 GPU 和本機 SSD 資源) 1 年期承諾使用合約。您希望承諾使用 96 個 vCPU、624 GB 記憶體、1 個 NVIDIA V100 GPU 和 750 GB 本機 SSD 儲存空間 (相當於 2 個本機 SSD 磁碟)。您也想在 us-central1-a 可用區建立並附加兩個預留項目。在第一個預留項目 res-01 中,您要預留 1 個 n1-standard-2 VM (具有 2 個 vCPU、7.5 GB 記憶體和 1 個 NVIDIA V100 GPU);這是指定預留項目。在第二個預留項目 res-02 中,您要預留 1 個 n1-standard-8 VM (具備 8 個 vCPU、30 GB 記憶體),並連接 2 個本機 SSD 磁碟 (一個 SCSI 介面、一個 NVMe 介面)。

如要購買這個範例承諾使用合約和附加的預留項目,請先建立 YAML 檔案,並加入這兩個預留項目的屬性,如下所示:

- reservation: res-01
  reservation_zone: us-central1-a
  require_specific_reservation: true
  vm_count: 1
  machine_type: n1-standard-2
  accelerator:
  - count: 1
    type: nvidia-tesla-v100
- reservation: res-02
  reservation_zone: us-central1-a
  vm_count: 1
  machine_type: n1-standard-8
  local_ssd:
  - interface: scsi
    size: 375
  - interface: nvme
    size: 375

建立 YAML 檔案後,請執行下列指令,完成購買承諾使用合約及附加的預留項目。本機 SSD 儲存空間值必須以 GB 為單位指定 (例如 375GB)。如果是 gcloud CLI,則可以 MB 或 GB 為單位指定記憶體。如未指定單位,Compute Engine 會預設使用 GB。不過請注意,使用 REST 時,Compute Engine 會以 MB 做為記憶體的預設單位。

gcloud compute commitments create commitment-03 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624,local-ssd=750 \
    --resources-accelerator=type=nvidia-tesla-v100,count=1 \
    --plan 12-month \
    --reservations-from-file=YAML_FILE

REST

如要在購買承諾使用合約時建立附加預留項目,請向 regionCommitments.insert 方法發出 POST 要求。在要求中加入 reservations 欄位,定義要建立及附加的所有新預留項目清單。您可以視需要將任意數量的現有預留項目附加至承諾使用合約。

  • 如要手動指定所有 VM 屬性來建立新的預留項目,請加入 instanceProperties 欄位,並排除 sourceInstanceTemplate 欄位。

    舉例來說,如要手動指定與兩項專案共用的共用預留項目設定,並指定 GPU、兩個本機 SSD 磁碟和最低 CPU 平台,請提出下列要求:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "PLAN",
    "type": "COMMITMENT_TYPE",
    "resources":
    [
      {
        "amount": "COMMITTED_VCPUS",
        "type": "VCPU"
      },
      {
        "amount": "COMMITTED_MEMORY",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
        "amount": "COMMITTED_ACCELERATOR_COUNT",
        "type": "ACCELERATOR"
      },
      {
        "amount": "COMMITTED_LOCAL_SSD",
        "type": "LOCAL_SSD"
      }
    ],
    "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ",
    "reservations":
    [
      {
        "name": "RESERVATION_NAME",
        "specificReservation":
        {
          "count": "NUMBER_OF_RESERVED_VMS",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": "RESERVED_ACCELERATOR_COUNT",
                "acceleratorType": "RESERVED_ACCELERATOR_TYPE"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "INTERFACE_1"
              },
              {
                "diskSizeGb": "375",
                "interface": "INTERFACE_2"
              }
            ],
            "machineType": "RESERVED_MACHINE_TYPE",
            "minCpuPlatform": "MINIMUM_CPU_PLATFORM"
          }
        },
        "specificReservationRequired": "REQUIRE_SPECIFIC_RESERVATION_VALUE",
        "zone": "RESERVATION_ZONE",
        "shareSettings":
        {
          "shareType": "SPECIFIC_PROJECTS",
          "projectMap":
          {
            "CONSUMER_PROJECT_ID_1":
            {
              "projectId": "CONSUMER_PROJECT_ID_1"
            },
            "CONSUMER_PROJECT_ID_2":
            {
              "projectId": "CONSUMER_PROJECT_ID_2"
            }
          }
        }
      }
    ]
    }
    
    
  • 如要指定執行個體範本來建立新的預留項目,請加入 sourceInstanceTemplate 欄位,並排除 instanceProperties 欄位。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "PLAN",
    "type": "COMMITMENT_TYPE",
    "resources":
    [
      {
        "amount": "COMMITTED_VCPUS",
        "type": "VCPU"
      },
      {
        "amount": "COMMITTED_MEMORY",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
        "amount": "COMMITTED_ACCELERATOR_COUNT",
        "type": "ACCELERATOR"
      },
      {
        "amount": "COMMITTED_LOCAL_SSD",
        "type": "LOCAL_SSD"
      }
    ],
    "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ",
    "reservations":
    [
      {
        "name": "RESERVATION_NAME",
        "specificReservation":
        {
          "count": "NUMBER_OF_RESERVED_VMS",
          "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME"
        },
        "specificReservationRequired": "REQUIRE_SPECIFIC_RESERVATION_VALUE",
        "zone": "RESERVATION_ZONE",
        "shareSettings":
        {
          "shareType": "SPECIFIC_PROJECTS",
          "projectMap":
          {
            "CONSUMER_PROJECT_ID_1":
            {
              "projectId": "CONSUMER_PROJECT_ID_1"
            },
            "CONSUMER_PROJECT_ID_2":
            {
              "projectId": "CONSUMER_PROJECT_ID_2"
            }
          }
        }
      }
    ]
    }
    
    

將下列內容替換為承諾使用合約和附加預留項目的對應屬性:

承諾

  • COMMITMENT_NAME:承諾使用合約的名稱。
  • REGION:承諾使用合約所在的區域。
  • PROJECT_ID:您要購買承諾使用合約和附加預留項目的專案 ID。
  • PLAN:承諾使用合約方案,決定 CUD 費率和預設合約效期。指定 TWELVE_MONTH 或 THIRTY_SIX_MONTH。
  • COMMITMENT_TYPE:承諾使用合約類型。下列承諾使用合約類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • 如果是 A2 機型,請使用 ACCELERATOR_OPTIMIZED
    • 如果是 A3 Edge 和 A3 High 機型,請使用 ACCELERATOR_OPTIMIZED_A3
    • 如果是 A3 Mega 機型,請使用 ACCELERATOR_OPTIMIZED_A3_MEGA
    • 如果是 G2 機型,請使用 GRAPHICS_OPTIMIZED
    • 如果是 G4 機型,請使用 GRAPHICS_OPTIMIZED_G4
    • 如果是 C2 機型,請使用 COMPUTE_OPTIMIZED
    • 如果是 C2D 機型,請使用 COMPUTE_OPTIMIZED_C2D
    • 如果是 C3 機型,請使用 COMPUTE_OPTIMIZED_C3
    • 如果是 C3D 機型,請使用 COMPUTE_OPTIMIZED_C3D
    • 如果是 N1 機型,請使用 GENERAL_PURPOSE
    • 如果是 C4 機型,請使用 GENERAL_PURPOSE_C4
    • 如果是 C4A 機型,請使用 GENERAL_PURPOSE_C4A
    • 如果是 C4D 機型,請使用 GENERAL_PURPOSE_C4D
    • 如果是 C4N 機型,請使用 NETWORK_OPTIMIZED_C4N
    • 如果是 N2 機型,請使用 GENERAL_PURPOSE_N2
    • 如果是 N2D 機型,請使用 GENERAL_PURPOSE_N2D
    • 如果是 M1 機型,請使用 MEMORY_OPTIMIZED
    • 如果是 M3 機型,請使用 MEMORY_OPTIMIZED_M3
    • 如果是 Z3 機型,請使用 STORAGE_OPTIMIZED_Z3
    • 如果是 Z4D 機型,請使用 STORAGE_OPTIMIZED_Z4D
    • 如果是 Z4M 機型,請使用 STORAGE_OPTIMIZED_Z4M

  • COMMITTED_VCPUS:承諾使用合約中要包含的 vCPU 數量。這個數字必須是正整數。

  • COMMITTED_MEMORY:承諾使用合約中的記憶體容量。如果是 REST,Compute Engine 會使用 MB 做為預設單位。不過,請注意,使用 gcloud CLI 時,Compute Engine 預設會以 GB 為單位。

  • COMMITTED_LOCAL_SSD:承諾使用合約中所需的本機 SSD 儲存空間量 (以 GB 為單位)。

  • COMMITTED_ACCELERATOR_COUNT:承諾使用合約中要包含的 GPU 數量。

  • COMMITTED_ACCELERATOR_TYPE:承諾使用合約中要使用的 GPU 類型。

  • CUSTOM_END_DATE:選用。合約的自訂結束日期,格式必須為 YYYY-MM-DD。舉例來說,如要指定 2024 年 4 月 20 日為自訂結束日期,請將格式設為 2024-04-20。

  • END_TIME:美國和加拿大太平洋時間 (UTC-8 或 UTC-7) 凌晨 12 點,以世界標準時間 (UTC) 為基準。只有在您為承諾使用合約指定自訂結束日期時,才需要指定這個值。指定下列其中一個值:

    • 日光節約時間:07:00:00
    • 其他時間:08:00:00

附加的預留項目

  • RESERVATION_NAME:附加 預留項目的名稱。
  • RESERVATION_ZONE:附加預留項目的可用區。
  • REQUIRE_SPECIFIC_RESERVATION_VALUE:指定附加的預留項目是否為明確指定的預留項目,可以是 true 或 false。如要進一步瞭解特定目標預留項目,請參閱「預留項目的運作方式」。
  • NUMBER_OF_RESERVED_VMS:要在附加預留項目中預留的 VM 數量。
  • RESERVED_MACHINE_TYPE:附加預留項目中 VM 的機器類型。

    • 如果是「預先定義」機型,請使用 MACHINE_FAMILY-standard-CPUS 格式,例如 n2-standard-4。
    • 如果是「自訂」機型,請使用 MACHINE_FAMILY-custom-CPUS-MEMORY 格式,例如 n2-custom-4-5120。如需完整的限制清單,請參閱自訂機型的規格。

      更改下列內容:

      • MACHINE_FAMILY:機型系列,例如為 N2 VM 指定 n2。
      • CPUS:vCPUs 數量。
      • MEMORY:預留 VM 的記憶體總量。記憶體必須是 256 MB 的倍數,且必須以 MB 為單位提供。例如,如要建立具有 4 個 vCPU 和 5 GB 記憶體 (即 5120 MB) 的 N2 VM,請使用 n2-custom-4-5120。
  • RESERVED_ACCELERATOR_COUNT:在附加的預留項目中,每個 VM 要新增的 GPU 數量。

  • RESERVED_ACCELERATOR_TYPE:要在附加預留項目中新增的加速器類型。

  • INTERFACE_1 和 INTERFACE_2:各預留 VM 的本機 SSD 磁碟要使用的介面類型。有效選項為 scsi 和 nvme。針對要新增的每個本機 SSD 磁碟,重複 localSsds 參數。最多可以指定 24 個本機 SSD 磁碟。

  • MINIMUM_CPU_PLATFORM:要為附加預留項目指定的最低 CPU 平台。

  • INSTANCE_TEMPLATE_NAME:要用來建立附加預留項目的執行個體範本名稱。

  • SHARE_SETTING:附加預留項目的共用類型。如要與多項消費者專案共用附加的預留項目,請將這個欄位的值設為 SPECIFIC_PROJECTS。如要建立單一專案預留項目,請排除這個欄位。

  • CONSUMER_PROJECT_ID_1 和 CONSUMER_PROJECT_ID_2:可共用這項預留項目的專案 ID,例如 project-1 和 project-2。最多可加入 100 項消費者專案。這些專案必須與擁有者專案位於同一個組織。請勿加入建立這項預留項目的專案 ID,因為該專案預設可使用這項預留項目。如要建立單一專案預留項目,請排除這些欄位。

只有在您提出要求時,目標可用區中有足夠的指定機型資源,且配額充足,Compute Engine 才會建立承諾使用合約和附加的預留項目。如果購買成功,Compute Engine 會針對 REST API 要求傳回 200 狀態。

範例

下列範例情境和指令說明如何建立新的預留項目,並附加至承諾使用合約,藉此購買 GPU、本機 SSD 磁碟或兩者的承諾使用合約。

範例 1:附加一項新的預留項目,購買 GPU 承諾使用合約

假設您想在 us-central1 區域購買 1 年期的一般用途資源承諾使用合約,其中包含 96 個 vCPU、624 GB 記憶體 (相當於 638976 MB) 和 4 個 NVIDIA V100 GPU。您想在 us-central1-a 可用區建立新的預留項目 reservation-01,預留 2 個 n1-standard-8 VM (每個 VM 有 8 個 vCPU、30 GB 記憶體和 2 個 NVIDIA V100 GPU),並附加至該承諾使用合約。如要購買這個範例承諾使用合約及其附加預留項目,請提出下列 POST 要求。如果是 REST,則必須以 MB 為單位指定記憶體。不過請注意,使用 gcloud CLI 時,Compute Engine 會以 GB 為預設單位。

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE",
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 2,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

範例 2:購買 GPU 承諾使用合約,但不指定 vCPU 或記憶體

如要承諾使用並預留 GPU 和本機 SSD 磁碟,但不承諾使用 vCPU 或記憶體,請將 vCPU 和記憶體數量的值指定為 0。舉例來說,假設您只想購買 us-west2 區域中 GPU 資源的 1 年承諾使用合約,其中包含 0 個 vCPU、0 MB 記憶體和 4 個 NVIDIA P4 GPU。您也想在 us-west2-b 可用區建立新的預留項目 reservation-01,預留 1 個 n1-standard-2 VM (具備 2 個 vCPU、7.5 GB 記憶體和 4 個 NVIDIA P4 GPU),並附加至承諾使用合約。如要購買這個範例承諾使用合約及其附加預留項目,請提出下列 POST 要求。如果是 REST,則必須以 MB 為單位指定記憶體。不過請注意,使用 gcloud CLI 時,Compute Engine 會以 GB 為預設單位。

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west2/commitments

{
  "name": "commitment-02",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE",
  "resources":
  [
    {
      "amount": "0",
      "type": "VCPU"
    },
    {
      "amount": "0",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-p4",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 4,
              "acceleratorType": "nvidia-tesla-p4"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-west2-b"
    }
  ]
}

範例 3:附加多項新預留項目,購買 GPU 和本機 SSD 磁碟的承諾使用合約

假設您想購買 us-central1 區域的一般用途資源 1 年期承諾使用合約,其中包含 96 個 vCPU、624 GB 記憶體 (相當於 638976 MB)、1 個 NVIDIA V100 GPU 和 750 GB 的本機 SSD 儲存空間。您也想在 us-central1-a 可用區建立並附加兩個預留項目。在第一個預留項目 res-01 中,您要預留 1 個 n1-standard-2 VM (具備 2 個 vCPU、7.5 GB 記憶體和 1 個 NVIDIA V100 GPU);這是指定預留項目。在第二個預留項目 res-02 中,您想預留 1 個 n1-standard-8 VM (具備 8 個 vCPU、30 GB 記憶體),並連接 2 個本機 SSD 磁碟 (一個 SCSI 介面、一個 NVMe 介面)。如要購買這個範例承諾使用合約和附加預留項目,請提出下列 POST 要求。請注意,本機 SSD 儲存空間值必須以 GB 為單位。記憶體的值必須以 MB 為單位。不過,請注意,使用 gcloud CLI 時,Compute Engine 會以 GB 做為記憶體的預設單位。

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-03",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE",
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "1",
      "type": "ACCELERATOR"
    },
    {
      "amount": "750",
      "type": "LOCAL_SSD"
    }
  ],
  "reservations":
  [
    {
      "name": "res-01",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 1,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "specificReservationRequired": true,
      "zone": "us-central1-a"
    },
    {
      "name": "res-02",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "SCSI"
            },
            {
              "diskSizeGb": "375",
              "interface": "NVME"
            }
          ],
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}