自动续订承诺


如果您的工作负载具有可预测的资源需求,则可以通过基于资源的承诺使用折扣 (CUD) 来降低费用。您可以通过购买基于资源的承诺(1 年或 3 年)收到基于资源的 CUD。默认情况下,基于资源的承诺在期限结束时到期。承诺到期后,您必须购买新的承诺才能继续享受 CUD。如果自动续订基于资源的承诺,您无需在该承诺每次到期时手动重新购买承诺。通过自动续订承诺,您可以无限期地延长现有承诺,并继续享受这些承诺的资源的 CUD。

本文档介绍了自动续订的工作方式,并向您展示了如何执行以下操作:

  • 购买新承诺时启用自动续订。
  • 为现有有效承诺启用和停用自动续订。

限制

  • 您只能为基于资源的承诺启用自动续订。
  • 您只能为有效承诺启用自动续订。
  • 如需创建自动续订的承诺,您必须使用 gcloud CLI 和 Compute Engine API。您无法使用 Google Cloud 控制台来执行此操作。但是,您可以使用 gcloud CLI、Compute Engine API 或 Google Cloud 控制台对已生效的承诺启用自动续订。

自动续订的工作方式

为基于资源的承诺启用自动续订后,每次承诺到期时,Compute Engine 都会自动为该承诺续订一个新期限。为承诺启用自动续订后,该设置将保持启用状态,直到您手动将其停用。您可以在续订日期当天的凌晨 0 点(美国和加拿大太平洋时间(UTC-8 或夏令时期间的 UTC-7))之前对承诺停用自动续订。

您可以为新承诺和现有承诺启用自动续订。

  • 对于新承诺,在购买承诺时,您可以选择是否指定自动续订承诺。
  • 对于有效且未启用自动续订的现有承诺,您可以修改承诺的属性并启用自动续订。您无法为已过期的承诺启用自动续订。

您必须为要在项目中自动续订的每个承诺单独启用自动续订。

为承诺启用自动续订后,承诺的当前结束日期将成为其续订日期。承诺的所有其他属性均保持不变。在当前结束日期(续订日期)的凌晨 0 点(美国和加拿大太平洋时间(UTC-8 或夏令时期间的 UTC-7)),您的承诺的续订期限将自动开始。续订承诺的期限长度与原始承诺相同,并且您可以享受相同的折扣。在续订期限结束时,Compute Engine 将再次为您的承诺续订新的一期,除非您在承诺期限内手动停用自动续订。

为承诺激活自动续订,即表示您同意:

  • 您的承诺会在其当前结束日期自动续订新的一期。
  • 在新的一期中,您将继续为承诺的资源付费。

自动续订示例

考虑一个不自动续订的 1 年期承诺 my-commitment-1 示例。假设您在 2020 年 1 月 1 日为 100 个 N2 vCPU 购买了此承诺。您的承诺将于 2021 年 1 月 1 日结束。假设您对此承诺执行以下系列操作:

  1. 您在此承诺的此结束日期之前为其启用自动续订。
  2. 在此承诺的期限续订 2 次后,您为此承诺停用自动续订,并让您的承诺在新的结束日期后到期。

下表显示了此承诺在其整个生命周期内的属性的表现情况:

原始期限
(启用自动续订之前)
原始期限
(启用自动续订之后)
第一次自动续订的期限
(自动续订保持启用状态)
第二次自动续订的期限
(停用自动续订之前)
第二次自动续订的期限
(停用自动续订之后)
期限 1 年 1 年 1 年 1 年 1 年
折扣 37% 37% 37% 37% 37%
开始日期* 2020 年 1 月 1 日 2020 年 1 月 1 日 2020 年 1 月 1 日 2020 年 1 月 1 日 2020 年 1 月 1 日
结束日期或续订日期 2021 年 1 月 1 日 2021 年 1 月 1 日 2022 年 1 月 1 日 2023 年 1 月 1 日 2023 年 1 月 1 日
结束日期或续订日期当天的操作 承诺按计划结束 承诺按计划续订 承诺按计划续订 承诺按计划续订 承诺按计划结束

*承诺从指定开始日期的凌晨 0 点(美国和加拿大太平洋时间,即 UTC-8 或 UTC-7)开始。
承诺于指定结束日期的凌晨 0 点(美国和加拿大太平洋时间,即 UTC-8 或 UTC-7)结束或续订。
即使承诺期的总持续时间为 3 年或更长时间,自动续订承诺的折扣百分比也会保持不变,因为每个期限的持续时间仍为 1 年。

自动续订的配额影响

您无需申请额外的配额,因为续订的承诺使用与原始承诺相同的配额。如需详细了解承诺配额,请参阅承诺和承诺资源的配额

自动续订的价格影响

承诺费用是所有承诺的资源的折扣价格总和。在您续订承诺的期限后,系统会重新计算所有承诺的资源的折扣价格,并且可能会发生变化。为了进行这种重新计算,Compute Engine 会使用续订期限生效当天的资源现行按需价格。即使按需价格变化,也会在整个新期限内保留资源的这些价格。

购买自动续订的承诺

您可以使用 gcloud CLI 或 Compute Engine API 购买自动续订的承诺。

执行此任务所需的权限

您必须拥有以下权限才能执行此任务:

  • 针对项目的 compute.commitments.create

gcloud

使用 gcloud commitments create 命令购买自动续订的承诺。

例如,以下 gcloud CLI 命令会创建一个自动续订的 3 年期承诺。

gcloud compute commitments create COMMITMENT \
    --auto-renew \
    --plan=36-month \
    --region=us-west1 \
    --project=PROJECT_ID \
    --resources=vcpu=4,memory=9

替换以下内容:

  • COMMITMENT:新承诺的名称。
  • PROJECT_ID:要在其中创建承诺的项目的 ID。

REST

使用 regionCommitments.insert 方法购买自动续订的承诺。

例如,以下 Compute Engine API 请求会创建一个自动续订的 3 年期承诺。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/commitments

{
  "name": "COMMITMENT",
  "plan": "THIRTY_SIX_MONTH",
  "resources": [
    {
      "type": "VCPU",
      "amount": 4
    },
    {
      "type": "MEMORY",
      "amount": 9
    }
  ],
  "autoRenew": true
}

替换以下内容:

  • COMMITMENT:新承诺的名称。
  • PROJECT_ID:要在其中创建承诺的项目的 ID。

购买不自动续订的承诺

您可以使用 Google Cloud 控制台、gcloud CLI 或 Compute Engine API 购买不自动续订的承诺。

执行此任务所需的权限

您必须拥有以下权限才能执行此任务:

  • 项目或组织的 compute.commitments.create 权限

控制台

  1. 在 Google Cloud 控制台中,前往承诺使用折扣页面。

    转到“承诺使用折扣”

  2. 点击购买承诺

  3. 指定承诺的详细信息。如需了解详情,请参阅为机器类型购买承诺

  4. 点击购买

gcloud

使用 gcloud commitments create 命令购买不自动续订的承诺。

例如,您可使用以下 gcloud CLI 购买不自动续订的新的 3 年期承诺。

gcloud compute commitments create COMMITMENT \
    --plan=36-month \
    --region=us-west1 \
    --project=PROJECT_ID \
    --resources=vcpu=4,memory=9

替换以下内容:

  • COMMITMENT:新承诺的名称。
  • PROJECT_ID:要在其中创建承诺的项目的 ID。

REST

使用 regionCommitments.insert 方法购买不自动续订的承诺。

例如,以下 Compute Engine API 请求会创建一个不自动续订的新 3 年期承诺。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/commitments

{
  "name": "COMMITMENT",
  "plan": "THIRTY_SIX_MONTH",
  "resources": [
    {
      "type": "VCPU",
      "amount": 4
    },
    {
      "type": "MEMORY",
      "amount": 9
    }
  ],
}

替换以下内容:

  • COMMITMENT:新承诺的名称。
  • PROJECT_ID:要在其中创建承诺的项目的 ID。

为现有承诺启用自动续订

您可以使用 Google Cloud 控制台、gcloud CLI 或 Compute Engine API 为现有承诺启用自动续订。

执行此任务所需的权限

您必须拥有以下权限才能执行此任务:

  • 项目或组织的 compute.commitments.update 权限

控制台

  1. 在 Google Cloud 控制台中,前往承诺使用折扣页面。

    转到“承诺使用折扣”

  2. 承诺列表硬件承诺下,点击承诺的名称

  3. 硬件承诺详情页面上,点击自动续订切换开关。

gcloud

使用 gcloud commitments update 命令为现有承诺启用自动续订。

gcloud compute commitments update COMMITMENT \
    --auto-renew

COMMITMENT 替换为该承诺的名称。

REST

使用 regionCommitments.update 方法为现有承诺启用自动续订。

例如,以下 Compute Engine API 请求为 us-west1 区域中的承诺启用自动续订。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/commitments

{
  "name": "COMMITMENT",
  "autoRenew": true
}

替换以下内容:

  • COMMITMENT:要更新的承诺的名称。
  • PROJECT_ID:要在其中更新承诺的项目的 ID。

为现有承诺停用自动续订

您可以使用 Google Cloud 控制台、gcloud CLI 或 Compute Engine API 为现有承诺停用自动续订。

执行此任务所需的权限

您必须拥有以下权限才能执行此任务:

  • 项目或组织的 compute.commitments.update 权限

控制台

  1. 在 Google Cloud 控制台中,前往承诺使用折扣页面。

    转到“承诺使用折扣”

  2. 承诺列表硬件承诺下,点击承诺的名称

  3. 硬件承诺详情页面上,点击自动续订切换开关。

gcloud

使用 gcloud commitments update 命令为现有承诺停用自动续订。

gcloud compute commitments update COMMITMENT --no-auto-renew

COMMITMENT 替换为该承诺的名称。

REST

使用 regionCommitments.update 方法为现有承诺停用自动续订。

例如,以下 Compute Engine API 请求可为 us-west1 区域中的承诺停用自动续订。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/commitments

{
  "name": "COMMITMENT",
  "autoRenew": false
}

替换以下内容:

  • COMMITMENT:要更新的承诺的名称。
  • PROJECT_ID:要在其中更新承诺的项目的 ID。

后续步骤