このページでは、VM タイプ、ホームディスク サイズ、ベースコンテナ イメージなど、Cloud Workstations 環境をカスタマイズできるワークステーション構成パラメータについて説明します。API では、これらのワークステーション構成パラメータをまとめて WorkstationConfig
と呼びます。
これらのワークステーション構成パラメータを使用する前に、次の内容を理解しておいてください。
Google Cloud コンソール から初期ワークステーション構成を作成する。
事前構成されたベースイメージのリストを確認する。
ベースイメージのカスタマイズ方法とコンテナ イメージの再ビルドを自動化する方法を確認する。
- リソース: WorkstationConfig
- ホスト
- GceInstance
- GceShieldedInstanceConfig
- GceConfidentialInstanceConfig
- Accelerator
- 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 |
ID。このワークステーション構成のフルネーム。 |
displayName |
省略できます。ワークステーション構成に使用する人が読める形式の名前。 |
uid |
出力のみ。このワークステーション構成に対してシステムによって割り当てられる一意の識別子。 |
reconciling |
出力のみ。このワークステーション構成が、意図した状態と一致するように現在更新されているかどうかを示します。 |
annotations |
省略できます。クライアント指定のアノテーション。
|
labels |
省略できます。ワークステーション構成に適用され、基盤となる Compute Engine リソースにも伝播されるラベル。
|
createTime |
出力のみ。このワークステーション構成が作成された時刻。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
updateTime |
出力のみ。このワークステーション構成が最後に更新された時刻。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
deleteTime |
出力のみ。このワークステーション構成が削除(復元可能)された時刻。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
etag |
省略できます。サーバーによって計算されたチェックサム。続行するにあたってクライアントで最新の値が設定されていることを確認するために、更新リクエストと削除リクエストで送信される場合があります。 |
idleTimeout |
省略できます。ワークステーションが最後にユーザー トラフィックを受信した後に自動的にワークステーションを停止するまで待機する秒数。 値 「 |
runningTimeout |
省略できます。ワークステーションが自動的にシャットダウンされるまでの秒数。コスト削減のためにワークステーションを毎日シャットダウンして、再起動時にセキュリティ アップデートを適用することをおすすめします。
警告: 値 「 |
host |
省略できます。ワークステーションのランタイム ホスト。 |
persistentDirectories[] |
省略できます。ワークステーション セッション間で維持されるディレクトリ。 |
ephemeralDirectories[] |
省略可。ワークステーション セッションをまたいで維持されないエフェメラル ディレクトリ。 |
container |
省略可。このワークステーション構成を使用して、各ワークステーションの起動時に実行されるコンテナ。 |
encryptionKey |
不変。顧客管理の暗号鍵(CMEK)を使用して、このワークステーション構成のリソースを暗号化します。 指定した場合、Compute Engine インスタンスのブートディスクと永続ディスクは、この暗号鍵を使用して暗号化されます。このフィールドが設定されていない場合、生成された鍵を使用してディスクが暗号化されます。顧客管理の暗号鍵は、ディスクのメタデータを保護しません。 顧客管理の暗号鍵をローテーションする場合、ワークステーション インスタンスが停止すると、システムは新しいバージョンの鍵で永続ディスクの再作成を試みます。永続ディスクが再作成されるまでは、必ず古いバージョンの鍵を使用してください。そうしないと、永続ディスクのデータが失われる可能性があります。 暗号鍵が取り消されると、ワークステーション セッションは 7 時間以内に自動的に停止します。 ワークステーション構成の作成後は変更できません。 |
readinessChecks[] |
省略できます。このワークステーション構成を使用してワークステーションを起動する際に行う準備チェック。指定したすべての準備チェックで 200 ステータス コードが返された後にのみ、ワークステーションを実行中としてマークします。 |
replicaZones[] |
省略できます。不変。リージョン内の VM リソースとディスク リソースの複製に使用するゾーンを指定します。設定する場合は、ワークステーション クラスタのリージョン内に 2 つのゾーンを指定する必要があります(例: ワークステーション構成の作成後は変更できません。 |
degraded |
出力のみ。このリソースが劣化しているかどうか。この場合、完全な機能を復元するにはユーザーの操作が必要になることがあります。 |
conditions[] |
出力のみ。現在のリソースの状態を表すステータス条件。 |
enableAuditAgent |
省略できます。ワークステーションで Linux |
disableTcpConnections |
省略できます。ワークステーションのプレーン TCP 接続のサポートを無効にします。デフォルトでは、サービスは WebSocket リレーを介して TCP 接続をサポートしています。このオプションを true に設定すると、そのリレーが無効になり、SSH などのプレーン TCP 接続を必要とするサービスを使用できなくなります。有効にした場合、すべての通信が 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 |
省略できます。VM インスタンスに使用するマシンのタイプ(例: |
serviceAccount |
省略できます。この構成で作成した Cloud Workstations VM 用のサービス アカウントのメールアドレス。指定する場合は、サービス アカウントが Cloud Logging にログを書き込むことができるように、プロジェクトに対する 管理者として、基盤となる VM に 設定されていない場合、VM は Cloud Workstations サービスで提供されているサービス アカウントを使用して実行されます。また、イメージが一般公開されている必要があります。 |
serviceAccountScopes[] |
省略できます。 |
tags[] |
省略できます。ワークステーションをサポートする Compute Engine VM に追加するネットワーク タグ。このオプションは、このの構成で作成された VM にネットワーク タグを適用します。これらのネットワーク タグを使用すると、ファイアウォール ルールを作成できます。 |
poolSize |
省略できます。新しいユーザーのために新しいワークステーションを迅速に起動できるように、システムがアイドル状態のままにする必要がある VM の数。API のデフォルトは |
pooledInstances |
出力のみ。ワークステーションの起動を高速化するために、プール内で現在利用可能なインスタンスの数。 |
disablePublicIpAddresses |
省略できます。true に設定すると、VM のパブリック IP アドレスが無効になります。パブリック IP アドレスを無効にする場合は、ネットワークで限定公開の Google アクセスまたは Cloud NAT を設定する必要があります。限定公開の Google アクセスを使用し、Container Registry と Artifact Registry に |
enableNestedVirtualization |
省略できます。ネストされた仮想化を、このワークステーション構成を使用して作成された Cloud Workstations VM で有効にするかどうか。 ネストされた仮想化では、ワークステーション内で仮想マシン(VM)インスタンスを実行できます。ネストされた仮想化を有効にする前に、次の重要な考慮事項を考慮してください。Cloud Workstations インスタンスには、Compute Engine インスタンスと同じ制限に従います。
|
shieldedInstanceConfig |
省略可。一連の Compute Engine のシールドされたインスタンス オプション。 |
confidentialInstanceConfig |
省略できます。一連の Compute Engine Confidential VM のインスタンス オプション。 |
bootDiskSizeGb |
省略できます。VM のブートディスクのサイズ(GB)ブートディスクの最小サイズは |
accelerators[] |
省略可。インスタンスに接続されているアクセラレータ カードのタイプと数のリスト。 |
disableSsh |
省略可。VM への SSH アクセスを無効にするかどうか。 |
GceShieldedInstanceConfig
一連の Compute Engine のシールドされたインスタンス オプション。
JSON 表現 |
---|
{ "enableSecureBoot": boolean, "enableVtpm": boolean, "enableIntegrityMonitoring": boolean } |
フィールド | |
---|---|
enableSecureBoot |
省略できます。インスタンスでセキュアブートが有効になっているかどうか。 |
enableVtpm |
省略できます。インスタンスで vTPM が有効になっているかどうか。 |
enableIntegrityMonitoring |
省略できます。インスタンスで整合性モニタリングが有効になっているかどうか。 |
GceConfidentialInstanceConfig
一連の Compute Engine Confidential VM のインスタンス オプション。
JSON 表現 |
---|
{ "enableConfidentialCompute": boolean } |
フィールド | |
---|---|
enableConfidentialCompute |
省略できます。インスタンスで Confidential Compute が有効になっているかどうか。 |
アクセラレータ
インスタンスに接続されたアクセラレータ カード。
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 リージョン永続ディスクでバックアップされる Persistent Directory。persistentDirectories
フィールドは繰り返されていますが、含まれるエントリは 1 つだけです。これにより、セッションの開始時に /home
でワークステーション VM にマウントされ、セッションが終了すると切断される永続ディスクが作成されます。このフィールドが空の場合、この構成で作成されたワークステーションには永続ホーム ディレクトリがありません。
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 の場合、ディスクは複数の VM で共有される可能性があり、 |
Container
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 |
省略できます。設定されている場合は、イメージで指定された USER を、指定された uid でオーバーライドします。 |
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」権限を持っている、指定されたクラスタ内のすべてのワークステーション構成を返します。 |
|
既存のワークステーション構成を更新します。 |
|
指定したリソースにアクセス制御ポリシーを設定します。 |
|
指定されたリソースに対して呼び出し元が持っている権限を返します。 |