サンドボックス テンプレートを管理する

すべてのサンドボックスは、実行する コンテナ イメージを記述するサンドボックス環境テンプレートによってサポートされています。サンドボックス テンプレートは、 カスタム コンテナ サンドボックスのブループリントとして機能します。このページでは、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.")