인증 선택
섹션에서 CoreWeave Kubernetes Service(CKS)를 지정하지 않는 한, 이 예시는 서버리스 용량에서 실행됩니다. 샌드박스를 소유한 계정의 사용자 인증 정보를 선택하세요. 키 또는 토큰을 획득하는 방법은 사용자 인증 정보 선택 및 가져오기를 참조하세요. 사용하는 언어에 맞는 설정 파일을 이 페이지의 스크립트를 실행하는 위치에 함께 저장하세요. Python 예시는sandbox_auth.py에서 AUTH를 임포트하고, TypeScript 예시는 sandbox-client.mts에서 client를 임포트합니다. 이 파일은 사용자 인증 정보를 저장하지 않고 인증 방식만 선택합니다. Python에서는 활성화된 가상 환경을 사용하세요. TypeScript에서는 먼저 npm install @coreweave/cwsandbox@1.0.0로 클라이언트를 설치하세요.
- Forge API 키
- CoreWeave API 액세스 토큰
SDK의
wandb 인테그레이션으로 Forge API 키를 사용하세요. [WANDB-API-KEY]를 본인의 API 키로 바꾸세요.- Python
- TypeScript
sandbox_auth.py
SandboxDefaults에서 placement_mode="cks"를 설정하세요. TypeScript에서는 CoreWeave 토큰을 선택한 뒤 비어 있지 않은 runnerIds 배열을 설정하면 CKS가 선택됩니다. auth=AUTH로 Python 세션을 생성하면 해당 세션이 소유한 샌드박스도 함께 인증됩니다. 샌드박스에 다시 연결하거나, 목록을 조회하거나, 정리할 때도 동일한 사용자 인증 정보를 사용하세요.
변수
플랫폼은 모든 샌드박스에 다음 변수를 설정합니다:
플랫폼은 사용하는 SDK 또는 API 버전에 관계없이 이 변수를 설정합니다.
샌드박스 ID를 획득하기 위해 호스트 이름을 파싱하지 마세요. 샌드박스의 호스트 이름은 샌드박스 ID로 시작하지만, 기반 파드가 다시 시작되면 변경되는 자동 생성 접미사가 붙습니다. 대신
CW_SANDBOX_ID를 사용하세요.변수 조회
플랫폼 변수는 각 컨테이너의 메인 프로세스, 해당 프로세스가 시작하는 모든 프로세스,exec 및 스트리밍 실행으로 시작된 프로세스에서 사용할 수 있습니다. 단, 자식 프로세스를 시작하기 전에 환경을 비우는 프로그램은 예외입니다.
- Python
- TypeScript
- 셸
변수 재정의
플랫폼 변수는 기본값이며, 예약된 이름이 아닙니다. 샌드박스에 같은 이름의 변수를 설정하면 샌드박스는 사용자가 지정한 값을 사용하고 플랫폼은 기본값을 적용하지 않습니다.[YOUR-VALUE]를 샌드박스가 보고하도록 할 값으로 바꾸세요:
- Python
- TypeScript
-
빈 문자열을 포함한 모든 값이 유효합니다.
CW_SANDBOX_ID를""로 설정하면 존재하지만 값이 비어 있는 변수가 생성됩니다. 플랫폼은 빈 값을 미설정 상태로 간주하지 않으며 이를 대체하지 않습니다. - 정책은 플랫폼 변수를 재정의할 수 없습니다. 이 이름은 운영자의 설정에서 사용할 수 없도록 예약되어 있으므로, 클러스터의 정책이 사용자가 설정한 값을 알리지 않고 대체할 수 없습니다.
- 시크릿도 재정의로 간주됩니다. 같은 변수 이름에 매핑된 시크릿은 값을 직접 지정한 경우와 동일하게 플랫폼 기본값이 적용되지 않도록 합니다.
ID가 아닌 메타데이터일 뿐입니다
CW_SANDBOX_ID는 참고용 메타데이터입니다. 이 값은 재정의될 수 있으므로 샌드박스 내부의 코드가 임의의 값을 보고할 수 있습니다.
컨테이너가 두 개 이상인 샌드박스
각 컨테이너는CW_SANDBOX_ID를 직접 설정하지 않는 한 샌드박스의 첫 번째 컨테이너에 설정된 값을 받습니다. 값을 명시적으로 설정한 컨테이너에서는 해당 값이 우선 적용됩니다.
이에 따라 다음 두 가지 결과가 발생합니다:
- 첫 번째 컨테이너에서 변수를 재정의하면, 아무 값도 설정하지 않은 다른 모든 컨테이너는 재정의된 값을 받습니다.
- 첫 번째 컨테이너에서 변수를 빈 문자열로 재정의하면, 다른 컨테이너는 해당 변수를 아예 받지 않습니다.
샌드박스 라이프사이클 전반의 동작
CW_SANDBOX_ID는 샌드박스의 수명 동안 다음과 같이 동작합니다:
- 값은 샌드박스의 수명 동안 고정됩니다. 플랫폼이 생성 시 값을 부여하며, 기반 파드가 다시 시작되어도 값은 변경되지 않습니다.
- 복원된 샌드박스는 새로운 샌드박스입니다. 파일 시스템 스냅샷에서 복원하면 새 ID를 가진 샌드박스가 생성되며,
CW_SANDBOX_ID에는 이 새 값이 들어갑니다. 애플리케이션이 스냅샷 볼륨에 기록한 이전 ID는 사용자 데이터로 유지되며 업데이트되지 않습니다.