如果您的工作负载具有可预测的资源需求,则可以通过基于资源的承诺使用折扣 (CUD) 来降低费用。您可以通过购买基于资源的承诺(1 年或 3 年)收到基于资源的 CUD。默认情况下,基于资源的承诺会在承诺期结束时到期。承诺到期后,您必须购买新的承诺才能继续享受 CUD。如果自动续订基于资源的承诺,您无需在该承诺每次到期时手动重新购买承诺。通过自动续订承诺,您可以无限期地延长现有承诺,并继续享受这些承诺的资源的 CUD。
本文档介绍了自动续订的工作方式,并向您展示了如何执行以下操作:
- 在购买新承诺时启用自动续订。
- 为现有的有效承诺启用和停用自动续订。
自动续订的工作方式
为基于资源的承诺启用自动续订后,每次承诺到期时,Compute Engine 都会自动为该承诺续订一个新期限。为某个承诺启用自动续订后,除非您手动将其停用,否则该设置会保持启用状态。
必须为要在项目中自动续订的每个承诺单独启用自动续订。您可以为新承诺和现有承诺启用自动续订,具体方法如下:
- 对于新承诺,在购买承诺时,您可以选择是否指定自动续订承诺。
- 对于尚未启用自动续订的有效现有承诺,您可以修改承诺的属性并启用自动续订。不能为已过期的承诺启用自动续订。
为承诺启用自动续订后,承诺的当前结束日期将成为其续订日期。承诺的所有其他属性会保持不变。在当前结束日期(续订日期)的凌晨 0 点(美国和加拿大太平洋时间 [UTC-8,夏令时为 UTC-7]),您的承诺的续订期限将自动开始。
自动续订型承诺的续订期限始终与承诺方案定义的预设期限(1 年或 3 年)一致。您也会享受相同的折扣百分比。即使您的承诺具有 自定义期限,Compute Engine 也只会以 1 年或 3 年的预设期限续订您的承诺。自动续订自定义期限承诺不会再续订相同自定义期限。如需查看示例,请参阅以下内容:
- 如果承诺期限为自定义的 1.5 年,则续订时只会再续订 1 年。
- 如果承诺期限为自定义的 5.5 年,则续期时只会再续订 3 年。
如果您希望自定义期限承诺的有效期比续订期限更长,则可以在续订后申请再次延长期限。在续订期开始时,您的合约期延长资格期也会随之刷新。对于 1 年期承诺,续订后的资格要求期限最长可持续 4 个月。对于 3 年期承诺,此回溯期在续订后最长可延长 1 年。
在续订期限结束时,Compute Engine 将再次为您的承诺续订新的一期,除非您在承诺期限内手动停用自动续订。
在承诺到期之前,您可以随时为其启用自动续订。同样,您也可以在承诺的续订日期之前随时为其停用自动续订。例如,假设您有一个 1 年期承诺,且该承诺设置为于 2024 年 1 月 1 日凌晨 12 点 (UTC-8) 到期,则您可以在 2024 年 1 月 1 日凌晨 12 点 (UTC-8) 之前随时为该承诺启用自动续订。启用自动续订后,您的承诺会在 2024 年 1 月 1 日凌晨 12 点 (UTC-8) 自动续订一年。如果您想停用自动续订,那么您可以在 2025 年 1 月 1 日凌晨 12 点 (UTC-8) 之前随时停用。
为承诺启用自动续订即表示您了解以下事项:
- 您的承诺会在其当前结束日期自动续订新的一期。
- 在新的一期中,您将继续为承诺的资源付费。
自动续订示例
假设有一个尚未启用自动续订的 1 年期示例承诺 my-commitment-1
。假设您在 2020 年 1 月 1 日购买了该承诺,可以使用 100 个 N2 vCPU。您的承诺将于 2021 年 1 月 1 日结束。假设您对此承诺执行以下一系列操作:
- 您在此承诺的此结束日期之前为其启用自动续订。
- 在此承诺的期限续订 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 日 |
结束日期或续订日期当天的操作 | 承诺按计划到期 | 承诺按计划续订 | 承诺按计划续订 | 承诺按计划续订 | 承诺按计划到期 |
课程期限延长资格申请期限 | 2020 年 5 月 1 日 | 2021 年 5 月 1 日 | 2021 年 5 月 1 日 | 2022 年 5 月 1 日 | 2022 年 5 月 1 日 |
*承诺从指定开始日期的凌晨 0 点(美国和加拿大太平洋时间,即 UTC-8 或 UTC-7)开始。
†承诺于指定结束日期的凌晨 0 点(美国和加拿大太平洋时间,即 UTC-8 或 UTC-7)结束或续订。
‡即使承诺期的总持续时间为 3 年或更长时间,自动续订承诺的折扣百分比也会保持不变,因为每个期限的持续时间仍为 1 年。
配额注意事项
您无需申请额外的配额,因为续订的承诺使用与原始承诺相同的配额。如需详细了解承诺配额,请参阅承诺及承诺资源的配额。
价格影响
承诺费用是所有承诺的资源的折扣价格总和。在您续订承诺的期限后,系统会重新计算所有承诺的资源的折扣价格,并且可能会发生变化。为了进行这种重新计算,Compute Engine 会使用续订期限生效当天的资源现行按需价格。即使按需价格变化,也会在整个新期限内保留资源的这些价格。
限制
- 只能为基于资源的承诺启用自动续订。
- 只能为有效承诺启用自动续订。
- 如需创建自动续订的承诺,必须使用 gcloud CLI 和 Compute Engine API;无法使用 Google Cloud 控制台执行此操作。但是,您可以使用 gcloud CLI、Compute Engine API 或 Google Cloud 控制台对已生效的承诺启用自动续订。
为承诺启用自动续订
如需让您的承诺在期限结束时自动续订,可通过以下方式之一启用自动续订:
- 在购买新承诺时启用自动续订
- 为现有承诺启用自动续订
在购买新承诺时启用自动续订
您可以使用 gcloud CLI 或 REST 在购买新承诺时启用自动续订。
执行此任务所需的权限
您必须拥有以下权限才能执行此任务:
- 针对项目的
compute.commitments.create
gcloud
如需购买自动续订的承诺,请运行 gcloud commitments create
命令并添加 --auto-renew
标志。
例如,以下 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
方法发出 POST
请求,并将 autoRenew
字段设置为 true
。
例如,以下 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 或 REST 为现有承诺启用自动续订。
执行此任务所需的权限
您必须拥有以下权限才能执行此任务:
- 项目或组织的
compute.commitments.update
权限
控制台
在 Google Cloud 控制台中,前往承诺使用折扣页面。
在承诺列表的硬件承诺下,点击承诺的名称。
在硬件承诺详情页面上,点击自动续订切换开关。
gcloud
如需为现有承诺启用自动续订,请运行 gcloud commitments update
命令并添加 --auto-renew
标志。
gcloud compute commitments update COMMITMENT \ --auto-renew
将 COMMITMENT
替换为该承诺的名称。
REST
如需为现有承诺启用自动续订,请向 regionCommitments.update
方法发出 POST
请求,并将 autorenew
字段设置为 true
。
例如,以下 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
权限
控制台
在 Google Cloud 控制台中,前往承诺使用折扣页面。
在承诺列表的硬件承诺下,点击承诺的名称。
在硬件承诺详情页面上,点击自动续订切换开关。
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。
后续步骤
- 了解如何排查基于资源的承诺的自动续订问题。
- 了解如何延长基于资源的承诺的期限。
- 了解如何升级基于资源的承诺的期限。
- 了解如何合并和拆分基于资源的承诺。
- 了解如何分析基于资源的承诺使用折扣的有效性。