本文档介绍如何查看与虚拟机 (VM) 实例关联的许可、将许可附加到虚拟机以及查看许可更新历史记录。如需详细了解 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
在 Google Cloud 控制台中,转到虚拟机实例页面。
点击要检查其许可的虚拟机的名称。实例详情页面随即打开。
在实例详情页面底部,点击等效代码。
查看启动磁盘的
licenses
字段。运行以下
gcloud compute instances describe
命令:gcloud compute instances describe VM_NAME
将
VM_NAME
替换为虚拟机名称。查看输出的
disks
部分。licenses
字段会显示与启动磁盘关联的许可。调用以下
instances.get
v1 方法:GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances/VM_NAME
替换以下内容:
PROJECT
:项目的名称ZONE
:包含虚拟机的可用区VM_NAME
:虚拟机的名称
Compute Engine API 会在
licenses
字段的disks
部分中返回与启动磁盘关联的许可。在 Google Cloud 控制台中,转到虚拟机实例页面。
点击要检查其用户许可的虚拟机的名称。实例详情页面随即打开。
在实例详情页面底部,点击等效代码。
查看启动磁盘的
userLicenses
字段。运行以下
gcloud beta compute instances describe
命令:gcloud beta compute instances describe VM_NAME
将
VM_NAME
替换为虚拟机名称。查看输出的
disks
部分。licenses
字段会显示与启动磁盘关联的许可。调用以下
instances.get
Beta 版方法:GET https://compute.googleapis.com/compute/beta/projects/PROJECT/zones/ZONE/instances/VM_NAME
替换以下内容:
PROJECT
:项目的名称ZONE
:包含虚拟机的可用区VM_NAME
:虚拟机的名称
Compute Engine API 会在
licenses
字段的disks
部分中返回与启动磁盘关联的许可。IMAGE_NAME
:要创建的映像的名称。SOURCE_FILE
:要导入的虚拟磁盘的本地文件或 Cloud Storage URI。OS
:要导入的磁盘映像的操作系统。操作系统的许可是根据此标志的值推断出来的;导入时没有明确提供许可信息标志。如需查看受支持值的列表,请参阅--os
标志。IMAGE_NAME
:要创建的映像的名称。SOURCE_IMAGE
:要根据其创建新映像的映像的名称。LICENSES
:以英文逗号分隔的许可字符串列表。例如:"license1"
、"license2"
。IMAGE_NAME
:要创建的映像的名称。SOURCE_IMAGE
:要根据其创建新映像的映像的名称。LICENSES
:以英文逗号分隔的许可字符串列表。例如:"license1"
、"license2"
。USER_LICENSES
:以英文逗号分隔的用户许可字符串列表。例如:"userlicense1"
、"userlicense2"
。使用以下
gcloud compute instances describe
命令列出与虚拟机关联的磁盘:gcloud compute instances describe VM_NAME --format="yaml(disks)"
验证输出是否类似如下所示:
disks: - autoDelete: true boot: true deviceName: BOOT_DISK_NAME diskSizeGb: '20' guestOsFeatures: - type: UEFI_COMPATIBLE index: 0 interface: SCSI kind: compute#attachedDisk licenses: - BOOT_DISK_LICENSE_STRING mode: READ_WRITE source: https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/disks/BOOT_DISK_NAME type: PERSISTENT
在上一步的输出中,找到启动磁盘的名称。对于启动磁盘,
boot
的值为true
,启动磁盘的名称为deviceName
。使用
gcloud beta compute disks update
命令将用户许可附加到启动磁盘:gcloud beta compute disks update BOOT_DISK_NAME \ --update-user-licenses=LICENSE_URIS
替换以下内容:
BOOT_DISK_NAME
:要将许可附加到的启动磁盘的名称LICENSE_URIS
:许可字符串的逗号分隔列表,可替换所有现有用户许可
使用以下
gcloud beta compute disks describe
命令获取有关启动磁盘的信息。gcloud beta compute disks describe BOOT_DISK_NAME
将
BOOT_DISK_NAME
替换为启动磁盘的名称,以检查是否附加了许可。验证输出是否类似如下所示:
creationTimestamp: '2021-05-05T15:26:27.835-07:00' guestOsFeatures: - type: UEFI_COMPATIBLE id: '727854272460268924' interface: SCSI kind: compute#disk labelFingerprint: 42WmSpB8rSM= lastAttachTimestamp: '2021-05-05T15:26:27.836-07:00' licenseCodes: - '1000006' - '6213885950785916969' licenses: - BOOT_DISK_LICENSE_STRING multiWriter: false name: VM_NAME physicalBlockSizeBytes: '4096' selfLink: https://www.googleapis.com/compute/beta/projects/PROJECT_NAME/zones/ZONE/disks/DISK_NAME selfLinkWithId: https://www.googleapis.com/compute/beta/projects/PROJECT_NAME/zones/ZONE/disks/727854272460268924 sizeGb: '20' sourceImage: https://www.googleapis.com/compute/beta/projects/IMAGE_PROJECT/global/images/IMAGE sourceImageId: '7397991294075835597' status: READY type: https://www.googleapis.com/compute/beta/projects/PROJECT_NAME/zones/ZONE/diskTypes/pd-standard userLicenses: - LICENSE_URI users: - https://www.googleapis.com/compute/beta/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME zone: https://www.googleapis.com/compute/beta/projects/PROJECT_NAME/zones/ZONE
通过检查上一步中相应许可字符串的
userLicenses
字段的输出,验证用户许可是否已附加到启动磁盘。如果
userLicenses
字段不包含预期的许可字符串,您可能需要清除并更新许可字符串列表。您可以使用gcloud beta compute disks update
命令执行此操作。在 Google Cloud 控制台中,转到活动页面。
在类别下的过滤条件窗格中,为活动类型选择配置。
在类别下的过滤条件窗格中,为资源类型选择磁盘。
详细了解付费操作系统:
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
查看与虚拟机关联的许可
如需查看与虚拟机关联的许可,请使用 Google Cloud 控制台、gcloud CLI 或 Compute Engine API。
控制台
gcloud
REST
查看与虚拟机关联的用户许可
如需查看与虚拟机关联的用户许可,请使用 Google Cloud 控制台、gcloud CLI 或 Compute Engine API。
控制台
gcloud
REST
导入映像时附加许可
如需在导入映像时附加许可,请使用以下
gcloud compute images import
命令。gcloud compute images import IMAGE_NAME \ --source-file=SOURCE_FILE --os=OS
替换以下内容:
如需详细了解如何导入映像,请参阅导入虚拟磁盘。
创建映像时附加许可
如需在创建映像时附加许可,请使用以下
gcloud compute images create
命令。gcloud compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ --licenses=LICENSES
替换以下内容:
如需详细了解如何创建映像,请参阅创建、删除和弃用自定义映像以及创建 Windows 映像。
创建映像时附加许可及用户许可
如需在创建映像时附加许可及用户许可,请使用以下
gcloud beta compute images create
命令。gcloud beta compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ --licenses=LICENSES \ --user-licenses=USER_LICENSES
替换以下内容:
如需详细了解如何创建映像,请参阅创建、删除和弃用自定义映像以及创建 Windows 映像。
附加并验证用户许可
如需附加并验证用户许可,请执行以下操作:
查看许可更新历史记录
按照以下步骤查看项目中虚拟机的许可更新历史记录:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-22。
-