stream_logs()로 스트리밍하세요. 이 메서드는 Sandbox.run()에 전달된 명령어의 출력을 캡처합니다. exec() 명령어의 출력은 포함되지 않습니다. 해당 출력에는 Process.stdout 또는 Process.stderr를 사용하세요.
stream_logs()는 로그 줄을 생성하는 StreamReader를 반환합니다. 동기 또는 비동기 방식으로 순회하세요.
명령어 없이
Sandbox.run()을 호출하면 샌드박스의 기본 명령어가 stdout 또는 stderr에 쓰지 않으므로 stream_logs()는 출력을 반환하지 않습니다. stdout 또는 stderr에 쓰는 명령어를 전달하세요.인증 선택
섹션에서 CKS를 지정하지 않는 한 이 예시는 서버리스 용량에서 실행됩니다. 샌드박스를 소유한 계정의 사용자 인증 정보를 선택하세요. 키 또는 토큰을 획득하는 방법은 사용자 인증 정보 선택 및 조회를 참조하세요. 설치 명령어는 활성화된 Python 가상 환경에서 실행하세요. 사용 중인 사용자 인증 정보 탭의 Python 코드를sandbox_auth.py로 저장하세요. 이 파일은 이 페이지에서 실행할 Python script와 같은 위치에 두어야 합니다. 이 파일에는 사용자 인증 정보 자체가 아니라 어떤 인증 방식을 선택했는지만 저장됩니다. 예시에서는 이 파일에서 AUTH를 임포트한 다음, 새 샌드박스나 세션을 만들 때마다 명시적으로 전달합니다.
- Forge API 키
- CoreWeave API 액세스 토큰
SDK의 W&B 인증 전략으로 Forge API 키를 사용하세요.
sandbox_auth.py
SandboxDefaults에서 placement_mode="cks"를 설정하세요. auth=AUTH로 세션을 생성하면 해당 세션이 소유한 샌드박스도 함께 인증됩니다. 샌드박스에 다시 연결하거나, 샌드박스 목록을 조회하거나, 샌드박스를 정리할 때도 동일한 사용자 인증 정보를 사용하세요.
최근 로그 조회
tail_lines를 사용하여 전체 이력을 스트리밍하지 않고 가장 최근 로그 줄을 가져오세요. 실행 중인 샌드박스를 빠르게 확인할 때 유용합니다.
팔로우 모드
tail -f처럼 로그를 지속적으로 스트리밍합니다. iterator는 새 데이터가 도착할 때까지 대기합니다.
Ctrl+C를 누르세요.
시간별 필터링
since_time을 전달하면 특정 타임스탬프 이후의 로그만 가져옵니다. 이를 통해 출력을 배포 또는 인시던트 이후의 로그와 같은 관심 윈도우로 좁힐 수 있습니다.
타임스탬프
timestamps=True로 설정하면 각 줄 앞에 서버의 ISO 8601 타임스탬프가 추가됩니다. 서버 측 타임스탬프는 샌드박스 이벤트를 다른 시스템과 연관 짓는 데 도움이 됩니다.
비동기 순회
애플리케이션에서asyncio를 사용하는 경우, 이벤트 루프가 차단되지 않도록 async for로 동일한 StreamReader를 순회하세요.