Skip to main content
소스: src/cwsandbox/_defaults.py:261
샌드박스 생성을 위한 불변 설정 기본값입니다. 모든 필드에는 적절한 기본값이 지정되어 있습니다. 필요한 항목만 재정의하세요. timeout에는 서로 다른 두 가지 개념이 있습니다:
  • request_timeout_seconds: API 응답을 기다리는 시간 (클라이언트 측)
  • max_lifetime_seconds: 샌드박스가 자동으로 종료되기 전까지 실행되는 시간 (서버 측) 설정하지 않으면 백엔드에서 기본 실행 시간을 결정합니다.
태그를 사용하면 샌드박스를 필터링하고 정리할 수 있습니다. 태그는 백엔드로 전달되며, 태그를 기준으로 샌드박스를 쿼리하는 데 사용할 수 있습니다. 속성
  • container_image (str) : 샌드박스 컨테이너에 사용할 도커 이미지입니다. 기본값: DEFAULT_CONTAINER_IMAGE.
  • command (str) : 실행할 엔트리포인트 명령입니다. 기본값: DEFAULT_COMMAND.
  • args (tuple[str, ...]) : 명령에 전달되는 인수입니다. 기본값: DEFAULT_ARGS.
  • base_url (str) : CWSandbox API endpoint URL입니다. 기본값: DEFAULT_BASE_URL.
  • auth (AuthConfig | None) : 인증 방식을 선택합니다. AuthStrategy, 확인된 AuthHeaders 또는 AuthProvider를 받습니다. None이면 레거시 프로세스 전역 재정의가 설치된 경우 이를 유지하고, 그렇지 않으면 AuthStrategy.COREWEAVE_API_KEY를 사용합니다. 기본값: field(default=None, repr=False).
  • request_timeout_seconds (float) : 대부분의 RPC에 적용되는 클라이언트 측 HTTP timeout(초)입니다. 폴링 조회 RPC에는 이 값 대신 poll_rpc_timeout_seconds가 적용됩니다. 기본값: DEFAULT_REQUEST_TIMEOUT_SECONDS.
  • poll_retry_budget_seconds (float) : 재시도 버스트(안정 상태에 도달하기까지의 한 번의 과정)당 허용되는 실제 경과 시간 예산입니다. 예산은 응답이 성공할 때마다 초기화되므로, 오래 실행되는 샌드박스가 일시적 오류에서 복구된 뒤 한참 후에 다시 오류가 발생하더라도 매번 새 예산을 받습니다. 재시도 대상인 일시적 오류 코드는 UNAVAILABLE, DEADLINE_EXCEEDED, RESOURCE_EXHAUSTED입니다. 재시도를 완전히 비활성화하려면 0.0으로 설정하세요. 기본값: DEFAULT_POLL_RETRY_BUDGET_SECONDS.
  • poll_rpc_timeout_seconds (float) : 폴링 조회 RPC의 호출당 timeout입니다. request_timeout_seconds와 별도로 관리되므로, 멈춘 폴링이 더 긴 요청 timeout 동안 대기하지 않고 빠르게 실패합니다. 기본값: DEFAULT_POLL_RPC_TIMEOUT_SECONDS.
  • max_lifetime_seconds (float | None) : 서버 측 샌드박스 수명 제한(초)입니다. None이면 백엔드가 기본값을 결정합니다. 기본값: DEFAULT_MAX_LIFETIME_SECONDS.
  • temp_dir (str) : 샌드박스 내부의 임시 디렉터리 경로입니다. 기본값: DEFAULT_TEMP_DIR.
  • tags (tuple[str, ...]) : 샌드박스를 필터링하고 정리하는 데 사용하는 태그입니다. 기본값: field(default_factory=tuple).
  • runner_ids (tuple[str, ...] | None) : 특정 러너 ID(CKS)로 제한합니다. 기본값을 명시적으로 지우려면 빈 목록을 전달하고, 설정된 기본값을 상속하려면 None(기본값)을 전달하세요. serverless 배치와 함께 사용할 수 없습니다.
  • placement_mode (PlacementMode | str | None) : PlacementMode(serverless / cks) 또는 문자열입니다.
  • placement_spillover (PlacementSpillover | str) : 기본(primary) 모드가 스필 가능한 용량/배치 사유로 실패했을 때 대체 모드에서 생성을 한 번 재시도할지 결정하는 PlacementSpillover 정책입니다. 기본값은 STRICT(스필 없음)입니다. 템플릿 샌드박스에는 STRICT를 사용해야 합니다. 기본값: PlacementSpillover.STRICT.
  • resources (ResourceOptions | dict[str, Any] | None) : 리소스 설정입니다. requests/limits를 별도로 지정하려면 ResourceOptions를, 이전 버전과 호환되는 Guaranteed QoS를 사용하려면 평면 dict를 전달하세요.
  • network (NetworkOptions | None) : NetworkOptions로 지정하는 거부 플래그 네트워크 옵션 및 선택적 생성 시점 호스트 이름 허용 설정입니다.
  • services (tuple[Service, ...] | None) : PUBLIC/PRIVATE/CUSTOM용 타입 지정 서비스 포트(Service)입니다.
  • volumes (tuple[ScratchVolumeOptions | RegisteredVolumeOptions, ...] | None) : 스크래치 볼륨 또는 등록된 볼륨(ScratchVolumeOptions 또는 RegisteredVolumeOptions)입니다.
  • runtime_class (str | None) : 고정할 runtime-class입니다(선택, 예: "gvisor").
  • security_context (SecurityContext | dict[str, Any] | None) : 단일 컨테이너 경로의 게스트 내부 권한입니다. containers= 또는 defaults.containers를 사용하는 경우에는 적용되지 않습니다.
  • working_dir (str | None) : 단일 컨테이너 경로의 작업 디렉터리입니다. 컨테이너 목록을 사용하는 경우에는 적용되지 않습니다.
  • object_storage_access (ObjectStorageAccess | dict[str, Any] | None) : 임시 오브젝트 스토리지 자격 증명입니다.
  • file_system_snapshot (FileSystemSnapshotOptions | dict[str, Any] | None) : FileSystemSnapshotOptions로 지정하는 편의용 단일 마운트 FSS 옵션입니다. 공유 가능한 마운트 기본값(mount_path, size)이며, run()에 값을 명시하면 이 값 전체가 대체됩니다. 여러 볼륨을 구성할 때는 volumes=를 사용하는 것이 좋습니다.
  • containers (tuple[Container, ...] | None) : 선택적 다중 container 사양 (Container). Sandbox.run()의 단일 container 필드와 상호 배타적입니다. 이 목록을 사용하면 secrets, environment_variables, security_context, working_dir는 이러한 defaults에 적용되지 않습니다. 각 Container에 설정하세요.
  • secrets (tuple[Secret, ...] | None) : 단일 container 경로의 시크릿입니다. containers= 또는 defaults.containers를 사용할 때는 적용되지 않습니다.
  • environment_variables (dict[str, str]) : 단일 container 경로의 환경 변수입니다. container 목록을 사용할 때는 적용되지 않습니다. Default: field(default_factory=dict).
  • annotations (dict[str, str]) : Kubernetes 파드 어노테이션 (키-값 문자열 쌍). 샌드박스별 어노테이션과 병합되며, 명시적 값은 defaults를 오버라이드합니다. 민감하지 않은 메타데이터에만 사용하세요. Default: field(default_factory=dict).
  • data_plane_mode (DataPlaneMode | str) : exec, logs, file operations에 대한 Transport policy. auto (default)는 direct mTLS를 우선하고 게이트웨이로 폴백합니다. gateway는 직접 액세스를 비활성화합니다. direct는 이를 요구합니다. Default: DataPlaneMode.AUTO.

메서드

merge_tags

기본 태그와 추가 태그를 결합합니다. 두 소스의 태그가 모두 포함됩니다. 순서는: defaults가 먼저, 그 다음에 additional 태그가 추가됩니다.

merge_environment_variables

기본 환경 변수를 추가 환경 변수와 결합합니다. 추가 환경 변수는 동일한 키를 가진 기본값을 재정의합니다.

merge_annotations

기본 어노테이션과 추가 어노테이션을 병합합니다. 추가 어노테이션은 키가 같은 기본값을 재정의합니다.

with_overrides

일부 값을 재정의한 새 기본값을 생성합니다.

from_dict

매핑을 기반으로 SandboxDefaults를 구축하면서 중첩된 필드의 타입을 강제 변환합니다. 일반 딕셔너리 또는 OmegaConf DictConfig 객체를 허용합니다. 알 수 없는 키는 별도의 알림 없이 무시되므로 호출자는 추가 필드가 포함된 설정 섹션을 전달할 수 있습니다. 적용되는 강제 변환:
  • network 딕셔너리 -> NetworkOptions
  • secrets 딕셔너리 목록 -> Secret 튜플
  • services 딕셔너리 목록 -> Service 튜플
  • volumes 딕셔너리 목록 -> 스크래치/등록된 볼륨 옵션 튜플
  • containers 딕셔너리 목록 -> Container 튜플
  • security_context 딕셔너리 -> SecurityContext
  • object_storage_access 딕셔너리 -> ObjectStorageAccess
  • args, tags, runner_ids, services, volumes, containers 목록 -> 튜플
  • resources, environment_variables -> 일반 dict
마지막 수정일 2026년 10월 15일