auth를 생략한 예시는 CWSANDBOX_API_KEY에 지정된 CoreWeave API 액세스 토큰을 사용합니다. Forge API 키로 인증하려면 시작하기의 안내에 따라 생성한 AuthHeaders를 오퍼레이션에 전달하세요.변수
플랫폼은 모든 샌드박스에 다음 변수를 설정합니다:
플랫폼은 사용하는 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는 사용자 데이터로 유지되며 업데이트되지 않습니다.