Configurar
Ao criar uma sandbox, passe uma configuraçãolifecycle. Isso controla o comportamento de tempo limite e se uma sandbox pausada pode despertar automaticamente.
Opções de ciclo de vida
A configuraçãolifecycle oferece suporte a estes campos:
Se a retomada automática estiver desabilitada ou omitida, uma sandbox pausada ainda poderá ser retomada manualmente com
Sandbox.connect().
Pausa automática
Por padrão, uma sandbox é encerrada quando seu tempo limite expira. Para manter o estado em vez disso, definaonTimeout em JavaScript ou on_timeout em Python para pausar no tempo limite.
Retomada automática
A retomada automática pode despertar uma sandbox pausada quando uma atividade compatível chega. Isso funciona somente quando a sandbox está configurada para pausar no tempo limite.Tempo limite após a retomada automática
Após uma retomada automática, a sandbox recebe um tempo limite de pelo menos cinco minutos. Se o tempo limite original era maior que cinco minutos, o valor original mais longo é reutilizado. O temporizador de tempo limite começa quando a sandbox é retomada, não quando ela foi criada originalmente. Exemplo com um tempo limite de dois minutos:- A sandbox é executada por dois minutos e então pausa.
- Uma nova atividade chega à sandbox, fazendo com que ela seja retomada.
- A sandbox retomada recebe um tempo limite de cinco minutos porque esse é o mínimo.
- Se nada redefinir o temporizador, a sandbox pausará novamente após cinco minutos.
- A sandbox é retomada com um tempo limite de uma hora, porque o tempo limite original é maior que o mínimo de cinco minutos.
Você pode atualizar o tempo limite após retomar usando
setTimeout() em JavaScript ou set_timeout() em Python.O que conta como atividade
A retomada automática pode ser acionada por ações do SDK e tráfego HTTP. Exemplos compatíveis incluem:sandbox.commands.run(...)sandbox.files.read(...)sandbox.files.write(...)- Visitar a URL de uma aplicação em túnel
- Enviar solicitações para um serviço em execução dentro da sandbox
Sandbox.connect() primeiro.
Exemplo de SDK: pausar e depois ler um arquivo
Este exemplo cria uma sandbox, grava um arquivo, pausa a sandbox e depois lê o arquivo. A operação de leitura faz com que a sandbox seja retomada.Exemplo: servidor Web com retomada automática
A retomada automática funciona bem para ambientes de pré-visualização e servidores Web. Depois que a sandbox pausa, uma solicitação HTTP de entrada para o serviço exposto pode despertá-la. O exemplo abaixo inicia um servidor HTTP Python simples e imprime uma URL pública de pré-visualização. Você pode usargetHost() em JavaScript ou get_host() em Python para obter o hostname público de uma porta.
Limpeza
A retomada automática permanece habilitada ao longo de ciclos repetidos de retomada e pausa. Cada retomada inicia um novo período de tempo limite, usando pelo menos cinco minutos ou o tempo limite original mais longo. Depois que a sandbox é retomada, os clientes devem se reconectar a todos os serviços que estavam usando. Conexões HTTP, WebSocket, de banco de dados e de terminal existentes não permanecem abertas enquanto a sandbox está pausada. Você pode chamar.kill() para excluir a sandbox permanentemente. Depois disso, ela não poderá ser retomada.