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