Gemini Enterprise Agent Platform의 샌드박스 스냅샷을 사용하면 샌드박스의 현재 상태를 저장하고 나중에 복원할 수 있습니다. 이는 알려진 양호한 상태를 복원하거나 변형 브랜치를 탐색하는 등의 수명 주기 관리 작업에 유용합니다.
스냅샷은 에이전트 워크플로를 관리하는 데 다음과 같은 여러 이점을 제공합니다.
- 상태 지속성: 설치된 라이브러리, 파일 시스템 변경사항, 메모리 상태를 비롯한 샌드박스의 정확한 상태를 저장합니다.
- 효율성: 복잡한 환경을 처음부터 다시 만드는 대신 스냅샷에서 몇 초 만에 복원할 수 있습니다.
- 체크포인트: 장기 실행 에이전트 작업 중에 체크포인트를 만들어 문제가 발생할 경우 복구할 수 있도록 합니다.
- 브랜칭: 동일한 스냅샷에서 여러 샌드박스를 만들어 다양한 경로를 탐색하거나 변형을 테스트합니다.
제한사항
다음 조건 중 하나라도 참인 경우 샌드박스 스냅샷을 새 샌드박스 환경으로 복원할 수 없습니다.
- 새 샌드박스에서 다른 서버 아키텍처 (예:
amd64대arm64)를 사용합니다. - 새 샌드박스에서 다른 샌드박스 런타임 버전 (예: GKE 클러스터 업그레이드 후)을 사용합니다.
- 새 샌드박스에서 다른 컨테이너 이미지 URI를 사용합니다.
보관
스냅샷을 만들면 ttl 속성에 지정된 기간 동안 보관됩니다. TTL이 만료되기 전에 스냅샷을 삭제하려면
스냅샷 삭제를 참고하세요.
스냅샷 만들기
샌드박스의 스냅샷을 만들려면 Python SDK를 사용하세요.
import agentplatform
client = agentplatform.Client(project='PROJECT_ID', location='LOCATION')
sandbox_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'
snapshot_operation = client.sandboxes.snapshots.create(
source_sandbox_environment_name=sandbox_name,
config={
"display_name": "DISPLAY_NAME",
"ttl": "3600s",
}
)
print(f"Snapshot creation initiated: {snapshot_operation.name}")
다음을 바꿉니다.
PROJECT_ID: Cloud de Confiance 프로젝트 ID입니다.LOCATION: Cloud de Confiance 리전입니다. 지원되는 리전을 참고하세요.INSTANCE_ID: Agent Platform 인스턴스 ID입니다.SANDBOX_ID: 스냅샷을 만들 기존 샌드박스 ID입니다.DISPLAY_NAME: 스냅샷의 설명이 포함된 표시 이름입니다.
스냅샷을 사용하여 복원
새 샌드박스 환경을 만들 때 저장된 스냅샷을 참조하여 샌드박스 상태를 복원할 수 있습니다.
agent_instance_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID
snapshot_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'
# Restore from a snapshot
new_sandbox_operation = client.sandboxes.create(
name=agent_instance_name,
config={
"display_name": "restored-sandbox",
"sandbox_environment_snapshot": snapshot_name,
}
)
스냅샷 나열
Agent Platform 인스턴스와 연결된 모든 샌드박스 스냅샷을 나열하려면 다음 단계를 따르세요.
snapshots_response = client.sandboxes.snapshots.list(name=agent_instance_name)
for snapshot in snapshots_response.sandbox_environment_snapshots:
print(snapshot.name)
스냅샷 세부정보 보기
특정 샌드박스 스냅샷의 구성을 보려면 다음 단계를 따르세요.
snapshot = client.sandboxes.snapshots.get(name=snapshot_name)
print(snapshot)
스냅샷 삭제
더 이상 필요하지 않은 경우 샌드박스 스냅샷을 명시적으로 삭제하려면 다음 단계를 따르세요.
client.sandboxes.snapshots.delete(name=snapshot_name)
print("Snapshot deleted.")