本页面介绍了工作站配置参数,可用于自定义 Cloud Workstations 环境,包括虚拟机类型、主磁盘大小、基本容器映像等。在 API 中,这些工作站配置参数统称为 WorkstationConfig
。
使用这些工作站配置参数之前,请先熟悉以下内容:
- 资源:WorkstationConfig
- 主机
- GceInstance
- GceShieldedInstanceConfig
- GceConfidentialInstanceConfig
- 加速器
- PersistentDirectory
- GceRegionalPersistentDisk
- ReclaimPolicy
- EphemeralDirectory
- GcePersistentDisk
- 容器
- CustomerEncryptionKey
- ReadinessCheck
- 方法
资源:WorkstationConfig
Cloud Workstations API 中的工作站配置资源。
工作站配置充当着工作站的模板。工作站配置定义了一些详细信息,例如工作站虚拟机 (VM) 实例类型、永久性存储空间、容器映像定义环境、要使用的 IDE 或代码编辑器等。管理员和平台团队还可以使用 Identity and Access Management (IAM) 规则向团队或个人开发者授予访问权限。
JSON 表示法 |
---|
{ "name": string, "displayName": string, "uid": string, "reconciling": boolean, "annotations": { string: string, ... }, "labels": { string: string, ... }, "createTime": string, "updateTime": string, "deleteTime": string, "etag": string, "idleTimeout": string, "runningTimeout": string, "host": { object ( |
字段 | |
---|---|
name |
标识符。此工作站配置的全名。 |
displayName |
可选。此工作站配置的直观易懂的名称。 |
uid |
仅供输出。系统为此工作站配置分配的唯一标识符。 |
reconciling |
仅供输出。指示此工作站配置目前正在更新以匹配其预期状态。 |
annotations |
可选。客户端指定的注解。 包含一系列 |
labels |
可选。应用于工作站配置以及传播到底层 Compute Engine 资源的标签。 包含一系列 |
createTime |
仅供输出。创建此工作站配置的时间。 采用 RFC3339 世界协调时间 (UTC)(即“祖鲁时”)格式的时间戳,采用纳秒级精度,最多包含九个小数位。示例: |
updateTime |
仅供输出。此工作站配置最近一次更新的时间。 采用 RFC3339 世界协调时间 (UTC)(即“祖鲁时”)格式的时间戳,采用纳秒级精度,最多包含九个小数位。示例: |
deleteTime |
仅供输出。软删除此工作站配置的时间。 采用 RFC3339 世界协调时间 (UTC)(即“祖鲁时”)格式的时间戳,采用纳秒级精度,最多包含九个小数位。示例: |
etag |
可选。服务器计算的校验和。可能会在更新和删除请求时发送,以确保客户端在继续操作之前具有最新的值。 |
idleTimeout |
可选。工作站上次收到用户流量后,在自动关停工作站之前等待的秒数。 如果值为 此时长以秒为单位,最多包含九个小数位,以“ |
runningTimeout |
可选。工作站在自动关闭之前可以运行的秒数。我们建议每天关停工作站以降低费用,以便在重启时应用安全更新。 提供以 警告:值为 此时长以秒为单位,最多包含九个小数位,以“ |
host |
可选。工作站的运行时主机。 |
persistentDirectories[] |
可选。可在工作站会话之间保留的目录。 |
ephemeralDirectories[] |
可选。不会在工作站会话之间保留的临时目录。 |
container |
可选。使用此工作站配置为每个工作站在启动时运行的容器。 |
encryptionKey |
不可变。使用客户管理的加密密钥 (CMEK) 加密此工作站配置的资源。 如果指定,则 Compute Engine 实例的启动磁盘和永久性磁盘将使用此加密密钥进行加密。如果未设置此字段,则使用生成的密钥对磁盘进行加密。客户管理的加密密钥不会保护磁盘元数据。 如果轮替客户管理的加密密钥,则工作站实例停止时,系统会尝试使用新版本的密钥重新创建永久性磁盘。在重新创建永久性磁盘之前,请务必保留密钥的旧版本。否则,永久性磁盘上的数据可能会丢失。 如果加密密钥被撤消,工作站会话将在 7 小时内自动停止。 工作站配置创建后将不可变。 |
readinessChecks[] |
可选。使用此工作站配置启动工作站时要执行的就绪性检查。仅当所有指定的就绪性检查都返回 200 状态代码后,才将工作站标记为正在运行。 |
replicaZones[] |
可选。不可变。指定用于在区域内复制虚拟机和磁盘资源的可用区。如果设置了此项,则必须正好指定工作站集群所在区域内的两个可用区,例如 工作站配置创建后将不可变。 |
degraded |
仅供输出。该资源是否会降级;在这种情况下,用户可能需要执行相关操作才能恢复完整功能。另请参阅 |
conditions[] |
仅供输出。描述当前资源状态的状态条件。 |
enableAuditAgent |
可选。是否在工作站上启用 Linux |
disableTcpConnections |
可选。在工作站中停用对普通 TCP 连接的支持。默认情况下,该服务支持通过 websocket 中继建立 TCP 连接。如果将此选项设为 true,系统会停用该中继,从而防止使用需要普通 TCP 连接的服务,如 SSH。启用后,所有通信都必须通过 HTTPS 或 WSS 进行。 |
主机
工作站的运行时主机。
JSON 表示法 |
---|
{ // Union field |
字段 | |
---|---|
联合字段 config 。工作站运行时使用的主机类型。config 只能是下列其中一项: |
|
gceInstance |
将 Compute Engine 实例指定为主机。 |
GceInstance
使用 Compute Engine 实例的运行时。
JSON 表示法 |
---|
{ "machineType": string, "serviceAccount": string, "serviceAccountScopes": [ string ], "tags": [ string ], "poolSize": integer, "pooledInstances": integer, "disablePublicIpAddresses": boolean, "enableNestedVirtualization": boolean, "shieldedInstanceConfig": { object ( |
字段 | |
---|---|
machineType |
可选。用于虚拟机实例的机器类型,例如 |
serviceAccount |
可选。使用此配置创建的 Cloud Workstations 虚拟机的服务帐号的电子邮件地址。指定后,请确保服务帐号对项目具有 如果您是管理员,希望能够 如果未设置,则虚拟机将使用 Cloud Workstations 服务提供的服务帐号运行,且映像必须可公开访问。 |
serviceAccountScopes[] |
可选。要授予 |
tags[] |
可选。要添加到为工作站提供支持的 Compute Engine 虚拟机的网络标记。此选项会将网络标记应用于使用此配置创建的虚拟机。这些网络标记允许创建防火墙规则。 |
poolSize |
可选。系统应保持空闲状态的虚拟机数量,以便新用户能够快速启动新的工作站。在 API 中默认为 |
pooledInstances |
仅供输出。池中当前可用的实例数,以加快工作站启动速度。 |
disablePublicIpAddresses |
可选。设置为 true 时,系统会停用虚拟机的公共 IP 地址。如果您停用公共 IP 地址,则必须在自己的网络上设置专用 Google 访问通道或 Cloud NAT。如果您使用专用 Google 访问通道,并将 |
enableNestedVirtualization |
可选。是否对使用此工作站配置创建的 Cloud Workstations 虚拟机启用嵌套虚拟化。 利用嵌套虚拟化,您可以在工作站内运行虚拟机 (VM) 实例。在启用嵌套虚拟化之前,请考虑以下重要注意事项。Cloud Workstations 实例受到与 Compute Engine 实例相同的限制:
|
shieldedInstanceConfig |
可选。一组 Compute Engine 安全强化型实例选项。 |
confidentialInstanceConfig |
可选。一组 Compute Engine 机密虚拟机实例选项。 |
bootDiskSizeGb |
可选。虚拟机的启动磁盘大小,以千兆字节 (GB) 为单位。启动磁盘大小下限为 |
accelerators[] |
可选。附加到实例的加速器卡的类型和数量列表。 |
disableSsh |
可选。是否停用对虚拟机的 SSH 访问权限。 |
GceShieldedInstanceConfig
一组 Compute Engine 安全强化型实例选项。
JSON 表示法 |
---|
{ "enableSecureBoot": boolean, "enableVtpm": boolean, "enableIntegrityMonitoring": boolean } |
字段 | |
---|---|
enableSecureBoot |
可选。实例是否启用了安全启动。 |
enableVtpm |
可选。实例是否已启用 vTPM。 |
enableIntegrityMonitoring |
可选。实例是否启用了完整性监控。 |
GceConfidentialInstanceConfig
一组 Compute Engine 机密虚拟机实例选项。
JSON 表示法 |
---|
{ "enableConfidentialCompute": boolean } |
字段 | |
---|---|
enableConfidentialCompute |
可选。实例是否启用了机密计算。 |
加速器
附加到实例的加速器卡。
JSON 表示法 |
---|
{ "type": string, "count": integer } |
字段 | |
---|---|
type |
可选。要挂接到实例的加速器资源类型,例如 |
count |
可选。向实例公开的加速卡数量。 |
PersistentDirectory
跨工作站会话持久保留的目录。
JSON 表示法 |
---|
{ "mountPath": string, // Union field |
字段 | |
---|---|
mountPath |
可选。此目录在正在运行的工作站中的位置。 |
联合字段 directory_type 。应如何实现永久性目录。directory_type 只能是下列其中一项: |
|
gcePd |
由 Compute Engine 永久性磁盘提供支持的 PersistentDirectory。 |
GceRegionalPersistentDisk
由 Compute Engine 区域永久性磁盘提供支持的永久性目录。persistentDirectories
字段是重复的,但它可能只包含一个条目。它会创建一个永久性磁盘,该磁盘在会话启动时 /home
装载到工作站虚拟机,并在会话结束时分离出来。如果此字段为空,则表示使用此配置创建的工作站没有永久性主目录。
JSON 表示法 |
---|
{
"sizeGb": integer,
"fsType": string,
"diskType": string,
"sourceSnapshot": string,
"reclaimPolicy": enum ( |
字段 | |
---|---|
sizeGb |
可选。使用此配置创建的每个工作站的永久性主目录的容量(以 GB 为单位)。如果设置了 有效值为 |
fsType |
可选。用于格式化磁盘的文件系统类型。工作站映像必须支持此文件系统类型。如果设置了 |
diskType |
可选。主目录的永久性磁盘类型。默认值为 |
sourceSnapshot |
|
reclaimPolicy |
可选。删除工作站时,是否应删除永久性磁盘。有效值为 |
ReclaimPolicy
该值表示删除工作站后磁盘应执行的操作。
枚举 | |
---|---|
RECLAIM_POLICY_UNSPECIFIED |
请勿使用。 |
DELETE |
删除工作站时,请删除永久性磁盘。 |
RETAIN |
删除工作站时,请保留永久性磁盘。管理员必须手动删除磁盘。 |
EphemeralDirectory
不会在工作站会话之间持久保留的临时目录。系统会在每次工作站启动操作时重新创建此临时实例。
JSON 表示法 |
---|
{ "mountPath": string, // Union field |
字段 | |
---|---|
mountPath |
必需。此目录在正在运行的工作站中的位置。 |
联合字段 directory_type 。临时目录应如何实现。directory_type 只能是下列其中一项: |
|
gcePd |
由 Compute Engine 永久性磁盘提供支持的 EphemeralDirectory。 |
GcePersistentDisk
EphemeralDirectory 由 Compute Engine 永久性磁盘提供支持。
JSON 表示法 |
---|
{ "diskType": string, "sourceSnapshot": string, "sourceImage": string, "readOnly": boolean } |
字段 | |
---|---|
diskType |
可选。要使用的磁盘类型。默认值为 |
sourceSnapshot |
可选。要用作磁盘来源的快照的名称。如果设置了 |
sourceImage |
可选。要用作磁盘来源的磁盘映像的名称。如果设置了 |
readOnly |
可选。磁盘是否处于只读状态。如果为 true,则磁盘可以由多个虚拟机共享,并且必须设置 |
容器
一个 Docker 容器。
JSON 表示法 |
---|
{ "image": string, "command": [ string ], "args": [ string ], "env": { string: string, ... }, "workingDir": string, "runAsUser": integer } |
字段 | |
---|---|
image |
可选。用于定义自定义环境的 Docker 容器映像。 Cloud Workstations 提供了许多预配置的映像,但您可以创建自己的自定义容器映像。如果使用私有映像,必须在工作站配置中指定 |
command[] |
可选。如果设置了此字段,则会替换映像指定的默认 ENTRYPOINT。 |
args[] |
可选。传递给入口点的参数。 |
env |
可选。传递给容器的入口点的环境变量。 包含一系列 |
workingDir |
可选。如果设置了此字段,则会替换映像指定的默认 DIR。 |
runAsUser |
可选。如果设置了此字段,则会使用给定 UID 替换映像中指定的 USER。 |
CustomerEncryptionKey
关联工作站配置的 Compute Engine 资源的客户管理的加密密钥 (CMEK)。指定 Cloud KMS 加密密钥的名称和默认服务帐号。我们建议您使用单独的服务帐号,并遵循 Cloud KMS 最佳实践。
JSON 表示法 |
---|
{ "kmsKey": string, "kmsKeyServiceAccount": string } |
字段 | |
---|---|
kmsKey |
不可变。Google Cloud KMS 加密密钥的名称。例如 |
kmsKeyServiceAccount |
不可变。要与指定的 KMS 密钥搭配使用的服务帐号。我们建议您使用单独的服务帐号并遵循 KMS 最佳实践。如需了解详情,请参阅职责分离和 |
ReadinessCheck
将在工作站上执行的就绪性检查。
JSON 表示法 |
---|
{ "path": string, "port": integer } |
字段 | |
---|---|
path |
可选。请求应发送到的路径。 |
port |
可选。应向其发送请求的端口。 |
方法 |
|
---|---|
|
创建新的工作站配置。 |
|
删除指定的工作站配置。 |
|
返回请求的工作站配置。 |
|
获取资源的访问权限控制政策。 |
|
返回指定集群中的所有工作站配置。 |
|
返回调用方具有“workstations.workstation.create”权限的指定集群中的所有工作站配置。 |
|
更新现有工作站配置。 |
|
设置对指定资源的访问权限控制政策。 |
|
返回调用者对指定资源拥有的权限。 |