샌드박스 템플릿 관리

모든 샌드박스는 실행할 컨테이너 이미지를 설명하는 샌드박스 환경 템플릿으로 지원됩니다. 샌드박스 템플릿은 커스텀 컨테이너 샌드박스의 청사진 역할을 합니다. 이 페이지에서는 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.")