サンドボックスを管理する

このページでは、Python SDK を使用してサンドボックス環境のライフサイクルを管理する方法について説明します。既存のサンドボックスの一覧表示、詳細の表示、一時停止と再開、不要になった場合の削除を行うことができます。

始める前に

サンドボックスを管理するには、プロジェクトに対する次のロールが必要です。

  • Agent Platform ユーザー(roles/aiplatform.user)

サンドボックスを管理する

Agent Platform インスタンスに関連付けられたサンドボックス環境の一覧表示、詳細の表示、一時停止、再開、削除を行うことができます。一時停止と再開を使用すると、アイドル状態のサンドボックスのコンピューティング リソースのスケジュールを解除し、ファイル システムの状態や接続 ID を失うことなく、後でオンラインに戻すことができます。既存のサンドボックスの構成を変更するには、サンドボックスを削除して新しいサンドボックスを作成する必要があります。

サンドボックスを一覧表示する

Agent Platform インスタンスに関連付けられているすべてのサンドボックスを一覧表示するには:

import agentplatform

client = agentplatform.Client(project='PROJECT_ID', location='LOCATION')
instance_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID'

sandboxes = client.sandboxes.list(name=instance_name)

for sandbox in sandboxes:
    print(sandbox.name)

次のように置き換えます。

  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • LOCATION: Agent Platform インスタンスの Google Cloud リージョン。サポートされているリージョンをご覧ください。
  • INSTANCE_ID: Agent Platform インスタンス ID。

サンドボックスの詳細を表示する

特定のサンドボックスの構成とステータスを表示するには:

sandbox_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'

sandbox = client.sandboxes.get(name=sandbox_name)
print(sandbox)

次のように置き換えます。

  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • LOCATION: Agent Platform インスタンスの Google Cloud リージョン。サポートされているリージョンをご覧ください。
  • INSTANCE_ID: サンドボックスを含む Agent Platform インスタンス ID。
  • SANDBOX_ID: 既存のサンドボックス ID。

出力には、作成時間、状態(STATE_RUNNING など)、サンドボックス仕様などの詳細が含まれます。

サンドボックスを一時停止する

サンドボックスを一時停止すると、ディスクの状態と接続メタデータが保持されたまま、コンピューティング リソースが解放されます。一時停止したサンドボックスの費用は、実行中のサンドボックスよりも大幅に低く、数秒で再開できます。サンドボックスが長期間アイドル状態になっているが、セッション状態と接続 ID を後で使用するために保持したい場合は、一時停止を使用します。

一時停止中のサンドボックス:

  • サンドボックス ID、接続メタデータ、Private Service Connect エンドポイントを保持します。
  • 一時停止時のコンテナ内のファイル システムの状態をすべて保持します。
  • STATE_PAUSED に移行します。再開するまで、データプレーン エンドポイントへのリクエストはエラーを返します。
import agentplatform

client = agentplatform.Client(project='PROJECT_ID', location='LOCATION')
sandbox_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'

pause_operation = client.sandboxes.pause(
    name=sandbox_name,
    config={
        "wait_for_completion": True,  # Optional. Blocks until the sandbox reaches STATE_PAUSED.
    },
)
paused_sandbox = pause_operation.response
print(f"Sandbox {paused_sandbox.name} state: {paused_sandbox.state}")  # STATE_PAUSED

次のように置き換えます。

  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • LOCATION: Agent Platform インスタンスの Google Cloud リージョン。サポートされているリージョンをご覧ください。
  • INSTANCE_ID: サンドボックスを含む Agent Platform インスタンス ID。
  • SANDBOX_ID: 既存のサンドボックス ID。

サンドボックスを再開する

一時停止したサンドボックスを再開すると、コンピューティングがオンラインに戻ります。サンドボックスは、一時停止した時点と同じ ID、接続エンドポイント(Private Service Connect サービス アタッチメントを含む)、ファイル システムの状態を保持します。再開オペレーションが完了すると、すぐにサンドボックスに対してデータプレーン リクエストを行うことができます。

sandbox_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'

resume_operation = client.sandboxes.resume(
    name=sandbox_name,
    config={
        "wait_for_completion": True,  # Optional. Blocks until the sandbox reaches STATE_RUNNING.
    },
)
resumed_sandbox = resume_operation.response
print(f"Sandbox {resumed_sandbox.name} state: {resumed_sandbox.state}")  # STATE_RUNNING

次のように置き換えます。

  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • LOCATION: Agent Platform インスタンスの Google Cloud リージョン。サポートされているリージョンをご覧ください。
  • INSTANCE_ID: サンドボックスを含む Agent Platform インスタンス ID。
  • SANDBOX_ID: 一時停止されたサンドボックス ID。

サンドボックスを削除する

サンドボックス環境を明示的に削除してリソースを解放するには:

client.sandboxes.delete(name=sandbox_name)
print("Sandbox deleted.")