本文档介绍了如何使用 Google Cloud 控制台、gcloud CLI 或 REST 为操作系统 许可购买基于资源的承诺。
如需详细了解许可承诺,包括符合条件的映像和 折扣率,请参阅 软件许可承诺。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行
代码或示例,您可以通过选择以下选项之一向
Compute Engine 进行身份验证:
{1
选择标签页以了解您打算如何使用本页面上的示例:
控制台
当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。
gcloud
-
安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。 登录后, 运行以下命令来初始化 Google Cloud CLI:
gcloud init
-
- 设置默认区域和可用区。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的 凭证。
安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 身份验证文档 中的 Google Cloud 使用 REST 时进行身份验证。
所需的角色
如需获得为许可购买承诺所需的权限,请让您的管理员向您授予项目的Compute Admin (roles/compute.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含购买许可承诺所需的
compute.commitments.create
权限。
默认情况下,项目所有者有权购买基于资源的承诺。不过,所有者可以创建包含或排除特定用户的自定义角色。请了解 访问权限控制,以确保您有权 购买基于资源的承诺。
购买操作系统许可承诺
使用 Google Cloud 控制台、gcloud CLI 或 REST 为操作系统许可购买基于资源的软件承诺。
购买承诺后,您的承诺将于次日美国和加拿大太平洋时间(UTC-8,或夏令时期间为 UTC-7)上午 12 点生效。 Compute Engine 会为项目中购买承诺的每个区域维护项目安全锁。当您为项目中的任何区域购买新承诺时,Compute Engine 会将该区域的安全锁与新创建的承诺相关联。
从承诺购买到激活的这段时间内,承诺的状态保持为 NOT_YET_ACTIVE(在Google Cloud 控制台中保持为 PENDING)。激活后,您的承诺状态将更改为
ACTIVE。
例如,假设您在 2024 年 1 月 20 日美国和加拿大太平洋时间(UTC-8 或 UTC-7)晚上 10 点购买承诺。Compute Engine 会立即创建您的承诺,其状态为 NOT_YET_ACTIVE。您的承诺将于 2024 年 1 月 21 日美国和加拿大太平洋时间(UTC-8
或 UTC-7)上午 12 点变为 ACTIVE。
控制台
在使用 Google Cloud 控制台购买承诺之前,请选择 您要使用资源并应用 CUD 的项目。如果您 为项目的 Cloud Billing 帐号启用了 CUD 共享 ,则可以为该 Cloud Billing 帐号中的任何项目购买 承诺。
选择项目后,请执行以下步骤:
在 Google Cloud 控制台中,前往承诺使用折扣 页面。
系统会显示承诺列表 页面,并显示硬件承诺 标签页。
点击软件许可承诺 。
点击购买承诺。
此时会显示购买承诺使用折扣页面。
在名称字段中,输入承诺的名称。
在区域 字段中,选择您要以承诺使用折扣价使用资源的区域。
对于时长,选择1 年或3 年作为 方案 承诺。该方案决定了 CUD 折扣率和承诺的预设期限。
在许可系列 字段中,选择您要为其购买承诺的操作系统许可。
在许可类型和数量 部分,执行以下操作:
- 对于类型,选择适用的 vCPU 数量。
- 对于许可数量,输入您要承诺购买的操作系统许可数量 。
在摘要 窗格中,查看承诺时间表和详细信息。
如需购买承诺,请执行以下操作:
点击购买 。 此时会显示购买承诺使用折扣 对话框。
在该对话框中,查看有关月费 、承诺期限和 服务专用条款的接受披露信息。
如需确认购买承诺,请点击购买 。
gcloud
使用 gcloud CLI 运行
gcloud compute commitments create-license
命令可购买许可承诺。
gcloud compute commitments create-license COMMITMENT_NAME \
--license LICENSE_URI \
--amount NUMBER_OF_LICENSES \
--cores-per-license CORES_PER_LICENSE \
--plan PLAN \
--region REGION
替换以下内容:
COMMITMENT_NAME:您的承诺的名称。LICENSE_URI:许可 URI。例如https://www.googleapis.com/compute/v1/projects/myproject/global/licenses/sles-sap-12NUMBER_OF_LICENSES:您计划购买的许可数量。CORES_PER_LICENSE:每个许可的核心数。输入1-2、3-4或5+。PLAN:输入方案长度:12-month或36-month。REGION:此承诺适用的区域。
例如,如需在 us-central1 区域购买 4 个 SAP 许可(每个许可有 3-4 个核心)的 3 年期承诺,请运行以下命令:
gcloud compute commitments create-license commitment-1 \
--license=https://www.googleapis.com/compute/v1/projects/myproject/global/licenses/sles-12 \
--amount=4 \
--cores-per-license=3-4 \
--plan=36-month \
--region=us-central1
例如,如需在 us-central1 区域购买 2 个 SLES for SAP 许可(每个许可有 1-2 个核心)的 1 年期承诺,请运行以下命令:
gcloud compute commitments create-license commitment-2 \
--license=https://www.googleapis.com/compute/v1/projects/myproject/global/licenses/sles-sap-12 \
--amount=2 \
--cores-per-license=1-2 \
--plan=12-month \
--region=us-central1
REST
使用 regionCommitments.insert 方法并添加 licenseResource 字段来定义许可承诺的属性。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments?requestId=OPTIONAL_UNIQUE_ID
{
"name": "COMMITMENT_NAME",
"plan": "PLAN",
"category": "LICENSE",
"licenseResource": {
"coresPerLicense": "CORES_PER_LICENSE",
"amount": "NUMBER_OF_LICENSES",
"license": "LICENSE_URI"
}
}替换以下内容:
PROJECT_ID:您要购买承诺的项目的 ID。OPTIONAL_UNIQUE_ID:可选。唯一的请求 ID,有助于防止意外的重复请求。COMMITMENT_NAME:您的承诺的名称。LICENSE_URI:许可 URI。例如https://www.googleapis.com/compute/v1/projects/myproject/global/licenses/sles-sap-12NUMBER_OF_LICENSES:您计划购买的许可数量。CORES_PER_LICENSE:每个许可的核心数。输入1-2、3-4或5+。PLAN:输入方案长度:12-month或36-month。REGION:此承诺适用的区域。
例如,如需在 us-central1 区域购买 4 个 SLES for SAP 许可(每个许可有 3-4 个核心)的 3 年期承诺,请发出以下
POST 请求:
POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-central1/commitments
{
"name": "commitment-3",
"plan": "THIRTY_SIX_MONTH",
"category": "LICENSE",
"licenseResource": {
"coresPerLicense": "3-4",
"amount": "4",
"license": "https://www.googleapis.com/compute/v1/projects/suse-sap-cloud/global/licenses/sles-sap-12"
}
}