すべてのサンドボックスは、実行する コンテナ イメージを記述するサンドボックス環境テンプレートによってサポートされています。サンドボックス テンプレートは、 カスタム コンテナ サンドボックスのブループリントとして機能します。このページでは、Agent Platform SDK を使用してサンドボックス テンプレートのライフサイクルを管理する方法について説明します。既存のテンプレートを一覧表示したり、詳細を表示したり、不要になったテンプレートを削除したりできます。
テンプレートの構成(コンテナ イメージの変更など)を変更するには、既存のテンプレートを削除し、更新された構成で新しいテンプレートを作成します。
始める前に
サンドボックス テンプレートを管理するには、プロジェクトに対する次のロールが必要です。
- Agent Platform ユーザー(
roles/aiplatform.user)
サンドボックス間でテンプレートを再利用する
コンピューティングの使用とシェル サンドボックスの場合、テンプレートを指定しないと、デフォルトのテンプレート(DEFAULT_CONTAINER_CATEGORY_COMPUTER_USE または DEFAULT_CONTAINER_CATEGORY_SHELL_SANDBOX)がサンドボックス用に作成されます。
テンプレートを指定しない create() 呼び出しを行うたびに、新しいテンプレートが作成されます。サンドボックスを削除してもテンプレートは削除されないため、テンプレートを個別に削除する必要があります。多くのサンドボックスを作成する場合は、リソースを節約するためにテンプレートを再利用することをおすすめします。
テンプレートを作成します。
from agentplatform._genai import types
template_op = client.agent_engines.sandboxes.templates.create(
name=instance_name,
display_name="shell-sandbox-template",
config=types.CreateSandboxEnvironmentTemplateConfig(
default_container_environment=types.SandboxEnvironmentTemplateDefaultContainerEnvironment(
default_container_category=types.DefaultContainerCategory.DEFAULT_CONTAINER_CATEGORY_SHELL_SANDBOX,
),
),
)
template = template_op.response.name
sandbox_environment_template を設定して、各サンドボックスをテンプレートに関連付けます。
operation = client.sandboxes.create(
name=instance_name,
spec={"shell_environment": {}},
config={
"sandbox_environment_template": template,
"wait_for_completion": True,
},
)
テンプレートの一覧表示
Agent Platform インスタンスに関連付けられているすべてのサンドボックス テンプレートを一覧表示するには:
import agentplatform
client = agentplatform.Client(project='PROJECT_ID', location='LOCATION')
instance_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID'
templates_response = client.sandboxes.templates.list(name=instance_name)
for template in templates_response.sandbox_environment_templates:
print(template.name)
次のように置き換えます。
PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。LOCATION: Agent Platform インスタンスの Cloud de Confiance リージョン。 サポートされているリージョンをご覧ください。INSTANCE_ID: Agent Platform インスタンス ID。
テンプレートの詳細を表示する
特定のサンドボックス テンプレートの構成を表示するには:
template_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/SandboxEnvironmentTemplate/TEMPLATE_ID'
template = client.sandboxes.templates.get(name=template_name)
print(template)
次のように置き換えます。
PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。LOCATION: Agent Platform インスタンスの Cloud de Confiance リージョン。 サポートされているリージョンをご覧ください。INSTANCE_ID: サンドボックス テンプレートを含む Agent Platform インスタンス ID。TEMPLATE_ID: サンドボックス テンプレート ID。
サンドボックスのテンプレートを表示する
サンドボックスに関連付けられているサンドボックス テンプレートを表示するには、次のコマンドを実行します。
print(sandbox.sandbox_environment_template)
テンプレートを削除する
サンドボックス テンプレートを削除するには:
client.sandboxes.templates.delete(name=template_name)
print("Template deleted.")