合并和拆分承诺


为了帮助您管理项目的资源要求,Compute Engine 允许您合并或拆分现有承诺,并重新分配资源以匹配项目所需的粒度。

本文档介绍合并承诺和拆分承诺的优势和流程,以及适用的限制和要求。

准备工作

  • 如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以选择以下任一选项向 Compute Engine 进行身份验证:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

合并承诺

您可以合并多个兼容的承诺来创建更大的新承诺。通过合并承诺,您可以将其作为单个实体进行跟踪和管理。合并承诺可帮助您让各个承诺同时到期,以避免出现错开的承诺结束日期。合并功能还可让您逐步增加工作负载。例如,您可以在需要时购买更新、更小的承诺,并选择将这些承诺合并或与现有承诺合并。

合并的工作原理

如果将单个承诺(来源承诺)合并在一起时,则将使用来自所有来源承诺的结合资源创建一个新承诺(合并承诺)。次日美国和加拿大太平洋时间(夏令时 UTC-8 或 UTC-7)零点,合并的承诺将生效,并且来源承诺将予以取消。此激活日期将成为合并承诺的开始日期,合并操作结束。

此外,无论来源承诺采用的是预设期限还是自定义期限,新创建的合并承诺都会继承以下属性:

  • 来源承诺中较远的将来结束日期。
  • 来源承诺中结束时间最早的期限延长资格条件期限。

例如,设想两个来源承诺,其开始日期分别为 2020 年 1 月 1 日和 2020 年 12 月 1 日。这两个承诺的截止日期分别为 2023 年 1 月 1 日和 2023 年 12 月 1 日。第一个承诺的期限延长资格申请期限为 2020 年 5 月 1 日,第二个承诺的期限延长资格申请期限为 2021 年 4 月 1 日。如果您在 2022 年 3 月 1 日合并这些承诺,则合并后的承诺将继承 2023 年 12 月 1 日的结束日期。合并后的承诺的期限延期资格申请期限已于 2020 年 5 月 1 日结束。

如果任何来源承诺关联了预留,则预留会在合并期间保留,并在创建后关联到合并承诺。如需详细了解包含附加预留的承诺,请参阅将预留附加到基于资源的承诺

合并承诺示例

下表显示了以下场景中来源承诺和合并承诺的属性:两个承诺(source-commitment-1source-commitment-2)于 March 1, 2022 合并为一个承诺 (merged-commitment):

第一个来源承诺
(合并前)
第二个来源承诺
(合并前)
合并承诺
名称 source-commitment-1 source-commitment-2 merged-commitment
类型 N2 N2 N2
区域 us-central-1 us-central-1 us-central-1
资源
  • vCPU 数量:100
  • 内存:100 GB
  • vCPU 数量:200
  • 内存:300 GB
  • vCPU 数量:300
  • 内存:400 GB
期限 3 年 3 年 3 年
开始日期* 2020 年 1 月 1 日 2020 年 12 月 1 日 2022 年 3 月 2 日
(合并后的第二天)
结束日期 2023 年 1 月 1 日 2023 年 12 月 1 日 2023 年 12 月 1 日
课程期限延长资格申请期限 2020 年 5 月 1 日 2021 年 4 月 1 日 2020 年 5 月 1 日

*所有承诺都从指定开始日期的零点(美国和加拿大太平洋时间 UTC-8 或 UTC-7)开始。
所有承诺都在指定结束日期的零点(美国和加拿大太平洋时间 UTC-8 或 UTC-7)过期。

价格影响

承诺费用是所有承诺的资源的折扣价格总和。合并承诺后,合并承诺的资源的折扣价格可能会在合并承诺生效的当天发生变化。在合并承诺的期限结束前,即使按需价格发生变化,每个资源的新折扣价格也会保持不变。不过,如果您日后再次合并或拆分此承诺,资源的折扣价格可能会再次发生变化。

限制

  • 无法合并许可承诺。
  • 在创建合并承诺时,无法创建任何新预留并将其关联到这些承诺。
  • 无法合并已过期或已取消的承诺。
  • 默认情况下,当您创建合并承诺时,即使所有来源承诺都设置为自动续订,也会对新承诺停用自动续订设置。如果您希望合并承诺以自动续订,则必须手动为这些承诺启用自动续订设置。您可以在创建时创建后执行此操作。

要求

合并各个来源承诺以创建新的合并承诺时,您的来源承诺和合并承诺必须满足以下要求:

  • 来源承诺必须具有相同的项目、区域、持续时间(或期限)、承诺类型和承诺类别。
  • 新的合并承诺必须具有与来源承诺相同的项目、区域、持续时间(或期限)、承诺类型和承诺类别。不过,您可以为合并承诺选择新名称。
  • 为合并承诺指定的资源类型必须与源承诺中的资源类型完全相同。此外,新合并承诺中每种资源类型的资源数量必须等于所有来源承诺中该资源类型的资源总和。比方说,如果第一个来源承诺具有 100 个 vCPU 和 100 GB 内存,而第二个来源承诺具有 200 个 vCPU 和 300 GB 内存,则必须创建具有 300 个 vCPU 和 400 GB 内存的合并承诺。
  • 来源和合并承诺必须适用于硬件资源(vCPU、内存、GPU 和本地 SSD 磁盘)。

创建合并承诺

使用 gcloud CLI 或 Compute Engine API 创建合并承诺。 在合并承诺之前,请先查看合并的限制

控制台

  1. 在 Google Cloud 控制台中,选择要合并承诺的项目,然后转到承诺使用折扣页面。

    转到“承诺使用折扣”

  2. 如需为一组承诺启动合并操作,请在承诺列表页面的硬件承诺标签页中点击合并

    或者,您可以从列表中选择要合并的承诺,然后点击合并

  3. 在打开的合并页面上的选择承诺标签页上,执行以下操作:

    1. 选择要合并的承诺下,从列表中选择要合并的承诺。如果您已在承诺列表页面上选择这些承诺,请在此标签页上验证您选择的承诺。

      可选:在选择要合并的个别承诺之前,您还可以为合并的承诺指定所需的套餐区域承诺类型值。这样做会过滤承诺列表以仅显示您可以为指定特性合并的那些承诺。

    2. 点击下一步。此时会打开审核标签页。

  4. 合并页面的审核标签页上,执行以下操作:

    1. 查看并确认已合并的承诺的详细信息。如需修改要合并的个别承诺的列表,请选择窗口左侧的选择承诺标签页,然后重复执行第 3 步。
    2. 新承诺名称字段中,输入合并的承诺的名称。
    3. 可选:若要在合并承诺中启用自动续订,请选中启用自动续订复选框。
    4. 阅读条款及条件
    5. 要完成合并承诺的创建操作并返回承诺列表页面,请点击合并

gcloud

如需将现有承诺合并为一个承诺,请使用带有 --merge-source-commitment 标志的 gcloud compute commitments create 命令

gcloud compute commitments create COMMITMENT_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --plan=DURATION \
    --type=COMMITMENT_TYPE \
    --resources=vcpu=NUMBER_VCPUS,memory=MEMORY \
    --merge-source-commitments=SOURCE_COMMITMENT_URLS

请替换以下内容:

  • COMMITMENT_NAME:新合并承诺的名称。
  • NUMBER_VCPUS:来源承诺中 vCPU 的数量总和。
  • COMMITMENT_TYPE:与来源承诺相同的承诺类型,可以是以下项之一:

    • accelerator-optimized(适用于 A2 机器类型资源)
    • accelerator-optimized-a3(适用于 A3 Edge 和 High 机器类型资源)
    • accelerator-optimized-a3-mega(适用于 A3 Mega 机器类型资源)
    • compute-optimized(适用于 C2 机器类型资源)
    • compute-optimized-c2d(适用于 C2D 机器类型资源)
    • compute-optimized-c3(适用于 C3 机器类型资源)
    • compute-optimized-c3d(适用于 C3D 机器类型资源)
    • compute-optimized-h3(适用于 H3 机器类型资源)
    • general-purpose(适用于 N1 机器类型资源)
    • general-purpose-c4(适用于 C4 机器类型资源)
    • general-purpose-c4a(适用于 C4A 机器类型资源)
    • general-purpose-e2(适用于 E2 机器类型资源)
    • general-purpose-n2(适用于 N2 机器类型资源)
    • general-purpose-n2d(适用于 N2D 机器资源)
    • general-purpose-n4(适用于 N4 机器类型资源)
    • general-purpose-t2d(适用于 Tau T2D 机器类型资源)
    • 适用于 G2 机器类型资源的 graphics-optimized
    • memory-optimized(适用于M1 或 M2 机器类型资源)
    • memory-optimized-m3(适用于 M3 机器类型资源)
    • storage-optimized-z3(适用于 Z3 机器类型资源)

  • REGION:与来源承诺相同的区域。

  • PROJECT_ID:要为其合并承诺的项目的 ID。

  • DURATION:与来源承诺相同的持续时间(或期限),可以是 12-month36-month

  • MEMORY:源承诺中的内存数量总和(以 MB 或 GB 为单位)。例如,1000 MB。如果您未指定单位,则系统会默认使用 GB 单位。

  • SOURCE_COMMITMENT_URLS:指定不同的来源承诺网址列表,用英文逗号分隔每个网址。请勿在网址之间添加空格。在列表中,您必须至少指定两个来源承诺网址。

例如,设想区域 us-east1 中的两个来源承诺,其资源分别为(4 个 N2 vCPU 和 2048 MB)和(3 个 N2 vCPU 和 2048 MB)。每个来源承诺的时长为 12 个月。以下 gcloud CLI 命令结合了这两个承诺,并创建了一个名为 merged-commitment 的新承诺,其资源为 7 个 N2 vCPU 和 4096 MB,时长为 12 个月:

gcloud compute commitments create merged-commitment \
    --plan=12-month \
    --project=myproject \
    --region=us-east1 \
    --type=general-purpose-n2 \
    --resources=vcpu=7,memory=4096MB \
     --merge-source-commitments=projects/myproject/regions/us-central1/commitments/source-commitment-1,projects/myproject/regions/us-central1/commitments/source-commitment-2

API

如需将现有承诺合并为一项承诺,请使用 regionCommitments.insert 方法

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
{
  "name": COMMITMENT_NAME,
  "plan": DURATION,
  "type": COMMITMENT_TYPE,
  "region": REGION,
  "resources": [
    {
      "type": "vCPUs",
      "amount": NUMBER_VCPUS
    }
    {
      "type": "MEMORY",
      "amount": MEMORY
    }
  ],
  "mergeSourceCommitments": [SOURCE_COMMITMENT_URL ...]
}

请替换以下内容:

  • PROJECT_ID:要为其合并承诺的项目的 ID。
  • REGION:与来源承诺相同的区域。
  • COMMITMENT_TYPE:与来源承诺相同的承诺类型,可以是以下项之一:

    • ACCELERATOR_OPTIMIZED(适用于 A2 机器类型资源)
    • ACCELERATOR_OPTIMIZED_A3(适用于 A3 Edge 和 High 机器类型资源)
    • ACCELERATOR_OPTIMIZED_A3_MEGA(适用于 A3 Mega 机器类型资源)
    • COMPUTE_OPTIMIZED(适用于 C2 机器类型资源)
    • COMPUTE_OPTIMIZED_C2D(适用于 C2D 机器类型资源)
    • COMPUTE_OPTIMIZED_C3(适用于 C3 机器类型资源)
    • COMPUTE_OPTIMIZED_C3D(适用于 C3D 机器类型资源)
    • COMPUTE_OPTIMIZED_H3(适用于 H3 机器类型资源)
    • GENERAL_PURPOSE(适用于 N1 机器类型资源)
    • GENERAL_PURPOSE_C4(适用于 C4 机器类型资源)
    • GENERAL_PURPOSE_C4A(适用于 C4A 机器类型资源)
    • GENERAL_PURPOSE_E2(适用于 E2 机器类型资源)
    • GENERAL_PURPOSE_N2(适用于 N2 机器类型资源)
    • GENERAL_PURPOSE_N2D(适用于 N2D 机器资源)
    • GENERAL_PURPOSE_N4(适用于 N4 机器类型资源)
    • GENERAL_PURPOSE_T2D(适用于 Tau T2D 机器类型资源)
    • 适用于 G2 机器类型资源的 GRAPHICS_OPTIMIZED
    • MEMORY_OPTIMIZED(适用于M1 或 M2 机器类型资源)
    • MEMORY_OPTIMIZED_M3(适用于 M3 机器类型资源)
    • STORAGE_OPTIMIZED_Z3(适用于 Z3 机器类型资源)

  • DURATION:与来源承诺相同的持续时间(或期限),可以是 TWELVE_MONTHTHIRTY_SIX_MONTH

  • COMMITMENT_NAME:新合并承诺的名称。

  • NUMBER_VCPUS:来源承诺中 vCPU 的数量总和。

  • MEMORY:源承诺中的内存数量总和(以 MB 为单位)。例如,1000 MB。如果您未指定单位,则系统会默认使用 MB 单位。

  • SOURCE_COMMITMENT_URL:要合并的来源承诺的网址。必须指定以英文逗号分隔的不同来源承诺网址的列表。

例如,设想区域 us-east1 中的两个来源承诺(source-commitment-1source-commitment-2),其资源分别为(4 个 N2 vCPU 和 2048 MB)和(3 个 N2 vCPU 和 2048 MB)。以下 POST 请求会将 source-commitment-1source-commitment-2 合并为一个名为 merged-commitment 的承诺:

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-central1/commitments
{
  "name": "merged-commitment",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE_N2",
  "region": "us-east1",
   "resources": [
    {
      "type": "VCPU",
      "amount": "7"
    }
    {
      "type": "MEMORY",
      "amount": "4096"
    }
  ],
  "mergeSourceCommitments": [
         "projects/myproject/regions/us-central1/commitments/source-commitment-1",
         "projects/myproject/regions/us-central1/commitments/source-commitment-2",
         ...
    ]
}

拆分承诺

您可以将资源移出现有承诺,并将承诺拆分为较小的承诺。您可以执行拆分,以较小的单独承诺的形式密切监控和管理一个大型承诺的一部分。例如,如需将承诺的一部分设置为自动续订,您可以将其拆分并为其中一个子承诺启用自动续订。通过拆分,您还可以通过为拆分承诺使用优先归因,更精细地分配承诺使用折扣。

拆分的工作原理

拆分现有承诺(来源承诺)时,需要将资源从来源承诺转移出去,创建一个或多个新的承诺(拆分承诺),并在新的拆分承诺之间重新分配转移的资源。新拆分承诺的激活和来源承诺的大小调整都在第二天美国和加拿大太平洋时间(夏令时 UTC-8 或 UTC-7)零点进行。 Compute Engine 会将此激活日期设置为拆分承诺的开始日期。拆分操作完成后,您将有以下承诺:

  • 大小调整后的来源承诺,其中包含拆分后剩余的资源。
  • 新创建的拆分承诺,其中包含重新分配的资源。

虽然来源承诺已调整大小,但会保留其所有其他特性(包括其开始日期和结束日期),并继续正常运行。拆分承诺的结束日期和期限延长资格期限与来源承诺相同。

使用 Compute Engine API 和 gcloud CLI 一次只能创建一项新的拆分承诺。您可以使用 Google Cloud 控制台在一次操作中创建多个新的拆分承诺。

承诺在关联预留后无法拆分。如需详细了解具有关联预留的承诺,请参阅将预留与承诺使用折扣相结合

拆分承诺示例

下表显示了现有承诺 (source-commitment) 在 2022 年 3 月 1 日拆分为两个不同的承诺(调整大小的 source-commitmentsplit-commitment)时的承诺属性:

来源承诺
(拆分前)
拆分承诺 来源承诺
(拆分后)
名称 source-commitment split-commitment source-commitment
类型 N2 N2 N2
区域 us-central-1 us-central-1 us-central-1
资源
  • vCPU 数量:200
  • 内存:200 GB
  • vCPU 数量:50
  • 内存:100 GB
  • vCPU 数量:150
  • 内存:100 GB
期限 3 年 3 年 3 年
开始日期* 2020 年 1 月 1 日 2022 年 3 月 2 日
(拆分后的第二天)
2020 年 1 月 1 日
结束日期 2023 年 1 月 1 日 2023 年 1 月 1 日 2023 年 1 月 1 日
课程期限延长资格申请期限 2021 年 1 月 1 日 2021 年 1 月 1 日 2021 年 1 月 1 日

*所有承诺都从指定开始日期的零点(美国和加拿大太平洋时间 UTC-8 或 UTC-7)开始。
所有承诺都在指定结束日期的零点(美国和加拿大太平洋时间 UTC-8 或 UTC-7)过期。

价格影响

承诺费用是所有承诺的资源的折扣价格总和。拆分承诺会对您的资源费用产生以下影响:

  • 调整大小的来源承诺:调整大小的来源承诺中的资源的折扣价格保持不变。
  • 拆分承诺:新拆分承诺的资源的折扣价格可能会在拆分承诺生效的当天发生变化。在新拆分承诺期限结束前,即使按需价格发生变化,每个资源的新折扣价格也会保持不变。

不过,如果您日后再次合并或拆分这些承诺,折扣价格可能会再次发生变化。

限制

  • 无法拆分许可承诺。
  • 无法拆分已附加预留的承诺。因此,您无法拆分具有 GPU 和/或本地 SSD 磁盘的承诺,因为具有这些资源的承诺始终具有附加的预留。
  • 在创建拆分承诺时,无法创建任何新预留并将其关联到这些承诺。
  • 无法拆分已过期或已取消的承诺。
  • 默认情况下,当您创建拆分承诺时,即使所有来源承诺都设置为自动续订,也会对新承诺停用自动续订设置。如果您希望拆分承诺以自动续订,则必须手动为这些承诺启用自动续订设置。您可以在创建时创建后执行此操作。
  • 使用 Compute Engine API 或 gcloud CLI 一次只能创建一项新的拆分承诺。

要求

拆分来源承诺并创建一个或多个拆分承诺时,来源承诺和拆分承诺必须满足以下要求:

  • 新的拆分承诺必须具有与来源承诺相同的项目、承诺类型、区域和持续时间(或期限)。但是,必须为拆分承诺选择新名称。
  • 为新的拆分承诺指定的资源类型必须与来源承诺中的部分或所有资源类型匹配。此外,为新拆分承诺指定的资源总量必须是来源承诺中资源的一部分。必须保留来源承诺中的一部分资源。例如,假设您的来源承诺用于 200 个 vCPU 和 300 GB 内存,则以下大小调整和重新分配场景适用:
    • 您可以在新的拆分承诺中重新分配 200 个 vCPU 的一部分和 300 GB 内存的一部分。
    • 您可以重新分配全部的 200 个 vCPU,但必须在来源承诺中保留一部分内存。
    • 您可以重新分配全部的 300 GB 内存,但必须在来源承诺中保留一部分 vCPU。
    • 您无法在新的拆分承诺中重新分配全部的 200 个 vCPU 和 300 GB 内存
  • 来源承诺和拆分承诺必须适用于 vCPU 和/或内存的硬件资源。

此外,如需使用 Google Cloud CLI 拆分来源承诺,请将 Google Cloud CLI 更新到 423.0.0 版或更高版本。如果您尝试使用较早的 gcloud CLI 版本拆分来源承诺,则拆分操作会失败,并且 Compute Engine 会抛出错误。

创建拆分承诺

使用 gcloud CLI 或 Compute Engine API 一次创建一个新的拆分承诺。使用 Google Cloud 控制台一次创建多个新的拆分承诺。在拆分承诺之前,请先查看拆分限制

控制台

  1. 在 Google Cloud 控制台中,选择要拆分承诺的项目,然后转到承诺使用折扣页面。

    转到“承诺使用折扣”

  2. 如需为承诺启动拆分操作,请在承诺列表页面的硬件承诺标签页中执行以下任一操作:

    • 从列表中选择要拆分的承诺,然后点击拆分
    • 名称列中,点击要拆分的承诺的名称。在打开的硬件承诺详情页面上,点击拆分
  3. 在打开的拆分承诺页面的调整大小标签页上,执行以下操作:

    1. vCPU内存字段中,指定要在来源承诺中保留的 vCPU 数量和内存。剩余资源可用于重新分配给拆分承诺。调整大小后,来源承诺不能为空。
    2. 点击下一步。系统会打开重新分配标签页。
  4. 拆分承诺页面的重新分配标签页上,执行以下操作:

    1. 名称字段中,为拆分承诺指定名称。
    2. vCPU内存字段中,指定拆分承诺中所需的 vCPU 数量和内存。
      • 如果要创建多个拆分承诺,请仅指定部分重新分配的资源。
      • 否则,请指定所有重新分配的资源。
    3. 可选:若要在拆分承诺中启用自动续订,请选中启用自动续订复选框。
    4. 点击完成
    5. 可选:若要创建其他拆分承诺,请点击添加项并重复上述步骤。
    6. 点击下一步。此时会打开审核标签页。
  5. 拆分承诺页面的审核标签页上,执行以下操作:

    1. 查看并确认已调整大小的承诺和拆分承诺的详细信息。
      • 如需修改原始承诺中的资源分配,请选择窗口左侧的调整大小标签页,然后重复第 3 步。
      • 如需修改拆分承诺中的资源重新分配,请选择窗口左侧的重新分配标签页,然后重复第 4 步。
    2. 阅读条款及条件
    3. 如需完成拆分承诺的创建并返回承诺列表页面,请点击提交

gcloud

如需将现有承诺拆分为两个承诺,请使用带有 --split-source-commitment 标志的 gcloud compute commitments create 命令

gcloud compute commitments create COMMITMENT_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --plan=DURATION \
    --type=COMMITMENT_TYPE \
    --resources=vcpu=NUMBER_VCPUS,memory=MEMORY \
    --split-source-commitment=SOURCE_COMMITMENT_URL

请替换以下内容:

  • COMMITMENT_NAME:新拆分承诺的名称。
  • COMMITMENT_TYPE:与您的来源承诺相同的承诺类型,可以是以下之一:

    • accelerator-optimized(适用于 A2 机器类型资源)
    • accelerator-optimized-a3(适用于 A3 Edge 和 High 机器类型资源)
    • accelerator-optimized-a3-mega(适用于 A3 Mega 机器类型资源)
    • compute-optimized(适用于 C2 机器类型资源)
    • compute-optimized-c2d(适用于 C2D 机器类型资源)
    • compute-optimized-c3(适用于 C3 机器类型资源)
    • compute-optimized-c3d(适用于 C3D 机器类型资源)
    • compute-optimized-h3(适用于 H3 机器类型资源)
    • general-purpose(适用于 N1 机器类型资源)
    • general-purpose-c4(适用于 C4 机器类型资源)
    • general-purpose-c4a(适用于 C4A 机器类型资源)
    • general-purpose-e2(适用于 E2 机器类型资源)
    • general-purpose-n2(适用于 N2 机器类型资源)
    • general-purpose-n2d(适用于 N2D 机器资源)
    • general-purpose-n4(适用于 N4 机器类型资源)
    • general-purpose-t2d(适用于 Tau T2D 机器类型资源)
    • 适用于 G2 机器类型资源的 graphics-optimized
    • memory-optimized(适用于M1 或 M2 机器类型资源)
    • memory-optimized-m3(适用于 M3 机器类型资源)
    • storage-optimized-z3(适用于 Z3 机器类型资源)

  • REGION:与来源承诺相同的区域。

  • PROJECT_ID:要为其拆分来源承诺的项目的 ID。

  • DURATION:与来源承诺相同的持续时间(或期限),可以是 12-month36-month

  • NUMBER_VCPUS:要从来源承诺转出以创建新的拆分承诺的 vCPU 数量。该数字必须是小于来源承诺中 vCPU 数量的整数。

  • MEMORY:要从来源承诺转出以创建新的拆分承诺的内存数量(以 MB 或 GB 为单位)。该容量必须小于来源承诺中的内存数量。例如,1000 MB。如果您未指定单位,则系统会默认使用 GB 单位。您可以按 0.25 GB 为增量购买内存。

  • SOURCE_COMMITMENT_URL:要从中释放资源的来源承诺的网址。

例如,设想区域 us-east1 中的来源承诺 (source-commitment) 具有 3 个 N2 vCPU 和 2048 MB 内存。以下 gcloud CLI 命令通过执行以下操作来拆分承诺:

  • source-commitment 中获取资源,并创建具有 1 个 N2 vCPU 和 1024 MB 内存的新承诺 split-commitment
  • source-commitment 大小调整为剩余资源。
gcloud compute commitments create split-commitment \
    --plan=12-month \
    --type=general-purpose-n2 \
    --region=us-east1 \
    --project=myproject \
    --resources vcpu=1,memory=1024MB \
    --split-source-commitment=projects/myproject/regions/us-central1/commitments/source-commitment

API

如需将现有承诺拆分为两个承诺,请使用 regionCommitments.insert 方法

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
{
  "name": COMMITMENT_NAME,
  "plan": DURATION,
  "type": COMMITMENT_TYPE,
  "region": REGION,
  "resources": [
    {
      "type": "vCPUs",
      "amount": NUMBER_VCPUS
    }
    {
      "type": "MEMORY",
      "amount": MEMORY
    }
  ],
  "splitSourceCommitment": SOURCE_COMMITMENT_URL
}

请替换以下内容:

  • PROJECT_ID:要为其拆分来源承诺的项目的 ID。
  • REGION:与来源承诺相同的区域。
  • COMMITMENT_NAME:新拆分承诺的名称。
  • COMMITMENT_TYPE:与您的来源承诺相同的承诺类型,可以是以下之一:

    • ACCELERATOR_OPTIMIZED(适用于 A2 机器类型资源)
    • ACCELERATOR_OPTIMIZED_A3(适用于 A3 Edge 和 High 机器类型资源)
    • ACCELERATOR_OPTIMIZED_A3_MEGA(适用于 A3 Mega 机器类型资源)
    • COMPUTE_OPTIMIZED(适用于 C2 机器类型资源)
    • COMPUTE_OPTIMIZED_C2D(适用于 C2D 机器类型资源)
    • COMPUTE_OPTIMIZED_C3(适用于 C3 机器类型资源)
    • COMPUTE_OPTIMIZED_C3D(适用于 C3D 机器类型资源)
    • COMPUTE_OPTIMIZED_H3(适用于 H3 机器类型资源)
    • GENERAL_PURPOSE(适用于 N1 机器类型资源)
    • GENERAL_PURPOSE_C4(适用于 C4 机器类型资源)
    • GENERAL_PURPOSE_C4A(适用于 C4A 机器类型资源)
    • GENERAL_PURPOSE_E2(适用于 E2 机器类型资源)
    • GENERAL_PURPOSE_N2(适用于 N2 机器类型资源)
    • GENERAL_PURPOSE_N2D(适用于 N2D 机器资源)
    • GENERAL_PURPOSE_N4(适用于 N4 机器类型资源)
    • GENERAL_PURPOSE_T2D(适用于 Tau T2D 机器类型资源)
    • 适用于 G2 机器类型资源的 GRAPHICS_OPTIMIZED
    • MEMORY_OPTIMIZED(适用于M1 或 M2 机器类型资源)
    • MEMORY_OPTIMIZED_M3(适用于 M3 机器类型资源)
    • STORAGE_OPTIMIZED_Z3(适用于 Z3 机器类型资源)

  • DURATION:与来源承诺相同的持续时间(或期限),可以是 TWELVE_MONTHTHIRTY_SIX_MONTH

  • NUMBER_VCPUS:要从来源承诺转出以创建新的拆分承诺的 vCPU 数量。该数字必须是小于来源承诺中 vCPU 数量的整数。

  • MEMORY:要从来源承诺转出以创建新的拆分承诺的内存数量(以 MB 为单位)。该容量必须小于来源承诺中的内存数量。例如,1000 MB。如果您未指定单位,则系统会默认使用 MB 单位。您可以按 0.25 GB 为增量购买内存。

  • SOURCE_COMMITMENT_URL:要从中转移资源的来源承诺的网址。

例如,设想区域 us-east1 中的来源承诺 (source-commitment) 具有 3 个 N2 vCPU 和 2048 MB 内存。以下 POST 请求通过执行以下操作来拆分承诺:

  • source-commitment 中获取资源,并创建具有 1 个 N2 vCPU 和 1024 MB 内存的新承诺 split-commitment
  • source-commitment 大小调整为剩余资源。
POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-central1/commitments
{
  "name": "split-commitment",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE_N2",
  "region": "us-east1",
  "resources": [
    {
      "type": "VCPU",
      "amount": "1"
    }
    {
      "type": "MEMORY",
      "amount": "1024"
    }
  ],
  "splitSourceCommitment": "projects/myproject/regions/us-central1/commitments/source-commitment"
}

后续步骤