E2B
E2B
E2B를 자체 호스팅 샌드박스 제공자로 사용하는 방법을 안내하는 가이드예요. 애플리케이션 관리 또는 웹훅 관리 모드로 E2B 샌드박스를 만들고 executor를 연결하는 방법을 배워요.
출처: 문서
본문
OpenAI Cookbook의 application-managed 및 webhook-managed 예시를 참고하세요.
프로비저닝 모드를 선택하세요:
- Application-managed: 여러분의 애플리케이션이 E2B 샌드박스를 직접 만들고 연결해요.
- Webhook-managed: OpenAI 웹훅에서 샌드박스를 시작하거나 다시 연결하는 핸들러를 배포하세요.
두 모드를 비교하려면 Sandbox lifecycle을 참고하세요.
시작하기 전에
E2B_API_KEY를 설정하고 애플리케이션 요청에는 OPENAI_API_KEY를 사용하세요. OPENAI_EXECUTOR_API_KEY를 environment key로 설정하고, 그 키만 CODEX_API_KEY로 샌드박스에 전달하세요.
웹훅 관리
OpenAI 웹훅을 검증하고 각 세션에 대해 별도의 E2B 워커를 프로비저닝하는 컨트롤러를 구현하세요. 자격 증명, 엔드포인트 등록, 서명 검증은 Deploy and connect a handler를 따르세요.
세션-샌드박스 매핑을 유지하세요. 연결 요청 시 일시 중지된 워커를 재개하거나 삭제된 것을 교체하세요. 일시 중지는 파일을 보존하지만 교체는 그렇지 않아요. 컨트롤러와 워커에 실행 타임아웃을 설정하고, 컨트롤러 사용을 중단할 때 OpenAI 웹훅을 제거하세요.
애플리케이션 관리
애플리케이션에서 E2B SDK 또는 API를 사용해 샌드박스를 관리하세요:
- self-hosted session을 만들고 환경 ID를 저장하세요.
- 세션의 작업 디렉토리로 격리된 E2B 샌드박스를 만들고 그 안에 Codex CLI를 설치하세요.
- 환경 ID와 환경 키로 샌드박스에서 executor를 시작하세요.
- Run and continue sessions을 사용해 입력을 보내고 턴 결과를 확인하세요.
- 작업이 끝나면 세션을 삭제하고 E2B 샌드박스를 중지하세요.
샌드박스 수명을 executor 명령의 타임아웃과 별도로 설정하세요. 타임아웃이 없는 명령은 만료된 샌드박스를 계속 실행 상태로 두지 않아요.
참고 자료
- E2B 문서 읽기
- E2B Python SDK 읽기
- E2B TypeScript SDK 읽기
더 알아보기 (Learn more)
관련 문서: 자체 호스팅 샌드박스와 샌드박스 수명 주기를 참고하세요.