SDK Sandbox — pacote estável
Ambientes Linux isolados nos Containers Cloudflare, acionados a partir de Workers.
Prefira a documentação principal do Sandbox e os tipos estáveis instalados em vez da memória. Esta skill é um portal, um contrato e um mapa de recuperação — não um manual completo.
Esta linha é o pacote npm estável atual. A documentação principal do Sandbox o descreve. Aplicativos existentes podem permanecer aqui e continuar sendo publicados.
Recomendamos novos projetos em @cloudflare/sandbox@next com sandbox-next. Quando possível, planeje uma migração com sandbox-migrate-to-next para estar pronto quando a versão 1.0 se tornar o lançamento estável. Não force essa migração a menos que o usuário solicite.
1. Portal — confirme a linha do pacote
Antes de escrever código, inspecione o aplicativo:
| Verificação | Deve corresponder |
|---|---|
| Dependência npm | @cloudflare/sandbox padrão (não tags @next / pré-visualização) |
| Imagem do container | Imagem estável correspondente (não cloudflare/sandbox:next) |
| Se você encontrar… | Ação |
|---|---|
@cloudflare/sandbox@next ou uma imagem next | Pare. Carregue sandbox-next. |
Usuário deseja migrar para 1.0 / @next | Pare. Carregue sandbox-migrate-to-next. Não aplique parcialmente APIs de pré-visualização em um pacote estável. |
| Apenas limpeza de APIs estáveis obsoletas | Fique aqui; use o guia de descontinuação 2026. Isso não é uma migração para @next. |
Nunca misture um pacote Worker estável com uma imagem de container @next (ou o inverso).
Instalação de skills: Configuração do agente · cloudflare/skills
2. Contrato — inegociáveis
await sandbox.exec(command)recebe uma string de comando e resolve quando o comando termina, comstdout/stderr/exitCodearmazenados em buffer (e campos relacionados).- Trabalhos de longa duração e streaming usam as APIs de comando estáveis (
startProcess,execStreame auxiliares relacionados) — não o modelo de alça única do@next. Consulte a documentação de Comandos; não invente handlesoutput()do@nextno estável. - Sessões podem preservar o diretório de trabalho e o ambiente entre comandos (sessão padrão /
enableDefaultSession,createSession). Consulte a documentação de Sessões quando o estado precisar ser transferido entre chamadas. - Terminais interativos do navegador geralmente usam
sandbox.terminal(request)e auxiliares de sessão/xterm no estável — nãocreateTerminalde pré-visualização, a menos que o pacote seja@next. - Prefira transporte RPC ao usar túneis ou streaming grande/binário. Transportes HTTP/WebSocket estão obsoletos (guia de limpeza abaixo).
- Arquivos, montagens, portas, túneis, backups, ciclo de vida e interpretador: use a documentação principal para assinaturas; confie nos tipos estáveis instalados.
- Configuração não secreta no ambiente do sandbox; credenciais ao vivo no Worker. Use manipuladores de saída quando processos chamarem APIs externas.
- Nomes de host de pré-visualização de produção precisam de DNS curinga em um domínio personalizado ao usar esses padrões de URL.
- Não aplique APIs de argv/
process.output()do@nextenquanto a dependência ainda for estável. - Bridge auto-implantado permanece no pacote e imagem estáveis. Bridge
Forma mínima:
import { getSandbox, proxyToSandbox, Sandbox } from "@cloudflare/sandbox";
export { Sandbox };
const sandbox = getSandbox(env.Sandbox, "user-123");
const result = await sandbox.exec('python3 -c "print(2 + 2)"');
// result.stdout, result.exitCode, result.success
3. Recupere — abra a documentação para a tarefa
Busque a página antes de implementar. Os tipos estáveis instalados têm precedência sobre suposições.
Limpeza de API obsoleta (permaneça no estável)
Atualize o pacote + imagem correspondente primeiro, depois siga o guia. Pesquisa típica:
rg 'SANDBOX_TRANSPORT|transport:|exposePort\(|enableDefaultSession|execStream\(|readFileStream|writeFileStream'
Este caminho não o leva para @next.
4. Antes de publicar
- Pacote Worker e imagem de container na mesma linha estável
- Verificação de tipos com os tipos estáveis instalados
- Sem segredos ao vivo no ambiente do sandbox
- Se estiver usando transportes/auxiliares obsoletos, conclua ou acompanhe a limpeza do guia de descontinuação 2026
- Quando a equipe estiver pronta para 1.0, use
sandbox-migrate-to-next— não force a migração sem solicitação