Executar código não confiável ou automatizar navegadores para agentes de IA em um sistema host representa um risco de segurança. Uma função sandbox oferece um ambiente de execução isolado, seguro e com estado. Cada sessão possui sua própria instância de função dedicada, o que torna esse recurso ideal para cenários como interpretadores de código e automação de navegador. Este tópico descreve como criar uma função sandbox no console do Function Compute.
Antes de começar
As funções sandbox estão disponíveis apenas em algumas regiões. Para visualizar as regiões suportadas, consulte Sandbox function usage limits. Caso a região atual não seja suportada, a aba Sandbox Function não será exibida na área de seleção de tipo de função do console.
Obrigatório
Ativar o Function Compute: Ative o service no console do Function Compute.
Função vinculada ao service (SLR): A função sandbox utiliza a função vinculada ao service (SLR) do Alibaba Cloud
AliyunServiceRoleForFC(nome da função:aliyunserviceroleforfc) para criar funções e sessões do Function Compute. O próprio Function Compute cria e gerencia essa função automaticamente; portanto, geralmente nenhuma ação manual é necessária.Permissões do RAM: Verifique se seu usuário ou função atual possui as permissões necessárias para criar e gerenciar funções sandbox.
Opcional (para configurações personalizadas)
Configuração de VPC (necessária para montar NAS ou PolarFS): Prepare o ID da VPC (
vpcId), o ID do grupo de segurança (securityGroupId) e os IDs dos vSwitches (vSwitchIds).ARN da função de execução (necessário para montar OSS): Crie uma função do RAM e obtenha seu ARN.
Acesso ao Container Registry (ACR) (necessário para usar uma imagem de contêiner personalizada): Garanta que você tenha permissão para acessar o repositório do ACR.
Início rápido
Esta seção orienta você na criação de uma função sandbox usando todas as configurações padrão: a imagem Code Interpreter, 2 vCPU / 4096 MB de memória / 512 MB de disco e afinidade de sessão baseada em cookies.
Faça login no console do Function Compute. Na barra de navegação superior, selecione uma região que suporte funções sandbox, como China (Hangzhou).
No painel de navegação à esquerda, selecione Function Management > Function List e clique em Create Function.
Na janela pop-up de seleção de tipo de função, clique na aba Sandbox Function e, em seguida, clique no botão Create Sandbox Function na parte inferior.
Na seção de configuração de imagem, a imagem predefinida Code Interpreter vem selecionada por padrão. Para utilizar tanto a execução de código quanto os recursos de automação de navegador, mude para a imagem All-in-One.
Insira um Function Name, como
my-first-sandbox, e mantenha as demais configurações com seus valores padrão.Clique em Create e aguarde a criação da função.
Após a criação da função, você será redirecionado automaticamente para a página de detalhes da função. Clique na aba Session Management, clique em Create Session e aguarde até que o status da sessão mude para Active.
-
Na página de detalhes da sessão, execute os seguintes comandos no terminal integrado para verificar se a função sandbox está funcionando corretamente:
echo 'Hello, FC Sandbox!' python3 -c "print(1 + 1)"
Saída esperada:
Hello, FC Sandbox!
2
Para configurações personalizadas, consulte Procedure (full configuration).
Procedimento (configuração completa)
Etapa 1: Selecionar o tipo de função e inserir informações básicas
Faça login no console do Function Compute.
No painel de navegação à esquerda, selecione Function Management > Function List e clique em Create Function.
Na janela de seleção de tipo de função, clique na aba Sandbox Function e, em seguida, clique no botão Create Sandbox Function na parte inferior.
Insira um Function Name (obrigatório): de 1 a 64 caracteres. Deve começar com uma letra ou sublinhado e pode conter letras, dígitos, sublinhados (_) e hifens (-). Não é possível alterar o nome após a criação.
Ao selecionar o tipo de função sandbox, o sistema define automaticamente os parâmetros abaixo. Esses parâmetros não podem ser modificados e não aparecem no console:
|
Parâmetro |
Valor definido automaticamente |
Descrição |
|
runtime |
custom container |
Uma função sandbox sempre executa a partir de uma imagem de contêiner. |
|
modo de isolamento de instância |
Session Exclusive ( |
Cada sessão possui uma instância de função dedicada. |
|
concorrência da instância ( |
200 |
Número máximo de solicitações simultâneas que uma única instância pode processar. |
|
concorrência de sessão por instância ( |
1 |
Cada instância atende apenas uma sessão por vez. |
Etapa 2: Configurar especificações da instância
No painel Auto scaling and instance specification, configure as especificações de recursos para a instância sandbox. A função sandbox exige requisitos mínimos de especificação da instância. O console impede o envio caso os valores estejam abaixo dos mínimos exigidos.
|
Parâmetro |
Padrão |
Mínimo |
Valores disponíveis |
Descrição |
|
CPU |
2 vCPU |
2 vCPU |
Selecione entre as especificações disponíveis |
Quantidade de núcleos vCPU para a função sandbox. |
|
Memória |
4096 MB (4 GB) |
4096 MB |
Selecione entre as especificações disponíveis |
Tamanho da memória para a função sandbox. |
|
Tamanho do disco |
512 MB |
— |
512 MB, 10240 MB |
Para cenários de sandbox, recomendamos selecionar 10240 MB para garantir espaço de armazenamento temporário suficiente. |
Este painel também inclui configurações de política de Auto Scaling, onde é possível definir o número de instâncias reservadas e regras de dimensionamento agendado.
Etapa 3: Configurar imagem do contêiner
No painel Code Configuration, selecione uma source de imagem. As origens suportadas incluem Sample Image, ACR Personal Edition Image, ACR Enterprise Edition Image, Other Public Image e Custom Image Repository. Por padrão, Sample Image vem selecionada.
O console fornece as seguintes imagens sandbox pré-construídas (Code Interpreter Sandbox é selecionada por padrão):
|
Nome da imagem |
URL da imagem |
Porta padrão |
Descrição |
|
Code Interpreter Sandbox |
|
5000 |
Suporta execução de código Python/Node.js. Ideal para sandboxes de código de agentes de IA, análise de dados e cenários semelhantes. |
|
Browser Tool Sandbox |
|
3000 |
Ambiente de automação de navegador. Adequado para web scraping, captura de telas, interações com páginas e outras tarefas relacionadas ao navegador. |
|
All-in-One Sandbox |
|
5000 |
Integra o interpretador de código e as ferramentas de navegador. Recomendado para cenários que exigem ambas as capacidades. |
A URL da imagem pré-construída é selecionada automaticamente com base na região. O registro serverless-registry.cn-hangzhou.cr.aliyuncs.com é utilizado para regiões na China continental (Hangzhou, Xangai, Pequim e Shenzhen). O registro serverless-registry.ap-southeast-1.cr.aliyuncs.com é usado para as regiões de Singapore e China (Hong Kong). A versão atual da imagem é v0.9.30.
Este painel também inclui a configuração de Timeout (padrão: 60 segundos, intervalo: 1 a 86.400 segundos), que define o tempo limite para uma única solicitação. Esse valor é independente do ciclo de vida da sessão.
Guia de seleção de imagem: A primeira imagem (Code Interpreter Sandbox) vem selecionada por padrão. Utilize Code Interpreter Sandbox apenas para execução de código. Escolha Browser Tool Sandbox somente para automação de navegador. Se precisar de ambas as capacidades ou estiver em dúvida, selecione All-in-One Sandbox. Para usar sua própria imagem sandbox, escolha o ACR ou um repositório de imagens personalizado como source da imagem.
Etapa 4: Configurar isolamento e ciclo de vida da sessão
As configurações de sessão de uma função sandbox ficam localizadas em um painel dedicado chamado Session Isolation and Affinity, diferente do painel expansível Advanced Configuration usado em funções comuns.
Modo de isolamento de instância: Fixo em Session Exclusive (SESSION_EXCLUSIVE) e não pode ser modificado.
Session affinity: A afinidade de sessão é obrigatória para funções sandbox, sendo o padrão Cookie affinity (GENERATED_COOKIE). O sistema gera e gerencia automaticamente um cookie para identificar a sessão, garantindo que as solicitações da mesma sessão sejam roteadas para a mesma instância sandbox. Também é possível selecionar Header field affinity (HEADER_FIELD), que usa um campo de cabeçalho personalizado para identificar a sessão. Tipos de afinidade suportados:
|
Tipo de afinidade |
Descrição |
|
Cookie Affinity (Padrão) |
Utiliza um cookie gerado pelo sistema. Nenhuma configuração extra é necessária. Adequado para acesso via navegador, aplicações web e cenários similares. |
|
Header Field Affinity |
Usa um cabeçalho http personalizado para afinidade de sessão. É necessário configurar um Header Name que comece com uma letra, contenha de 5 a 40 caracteres (letras, dígitos, sublinhados e hifens) e não inicie com |
Configuração do ciclo de vida da sessão:
|
Parâmetro |
Padrão |
Intervalo |
Descrição |
|
Session lifecycle ( |
86.400 segundos (24 horas) |
60 a 86.400 segundos |
Tempo máximo de vida de uma sessão. Após esse período, o sistema encerra automaticamente a sessão e sua instância vinculada. |
|
Session idle timeout ( |
1.800 segundos (30 minutos) |
De 60 segundos até a duração do ciclo de vida da sessão |
Período de inatividade antes que o sistema encerre automaticamente uma sessão ociosa. Este valor não pode exceder o tempo máximo de vida da sessão. |
Etapa 5: Configurar opções avançadas (opcional)
No painel Advanced Configuration, defina as seguintes opções conforme necessário.
Função RAM e rede
Função RAM: Selecione a função usada para acessar outros recursos da cloud.
Configuração de rede: Configure o acesso à rede VPC para recursos privados. Isso é obrigatório ao montar NAS ou PolarFS.
Montagem de armazenamento
A função sandbox suporta a montagem dos seguintes tipos de armazenamento para fornecer persistência ou compartilhamento de dados às instâncias sandbox.
|
Tipo de armazenamento |
Máximo de pontos de montagem |
Pré-requisitos |
|
NAS |
5 |
Configuração de VPC |
|
OSS |
5 |
ARN da função de execução |
|
PolarFS |
5 |
Configuração de VPC |
Montar NAS ou PolarFS exige uma configuração completa de VPC (ID da VPC, ID do grupo de segurança e IDs dos vSwitches).
Ao montar NAS e PolarFS simultaneamente, seus
UserIDeGroupIDdevem ser idênticos.O
mountDirdeve ser único entre todos os tipos de armazenamento montados.
Observabilidade
Configuração de log: Configure o Log Service para coletar logs de execução da função. A coleta automática de logs vem ativada por padrão.
Rastreamento: Configure o rastreamento para monitorar cadeias de chamadas.
Outras configurações
Grupo de recursos: Selecione um grupo de recursos para categorização e controle de permissões.
Fuso horário: Defina o fuso horário de execução da função. O padrão é UTC.
Variáveis de ambiente: Configure pares chave-valor que podem ser lidos como variáveis de ambiente durante a execução.
Tempo limite de ociosidade: Defina o tempo após o qual instâncias ociosas são recuperadas.
Etapa 6: Concluir a criação
Após confirmar que todas as configurações estão corretas, clique em Create. Depois que a função for criada com sucesso, o sistema redirecionará você automaticamente para a página de detalhes da função.
Cotas e limites
|
Limite |
Restrição |
|
modo de isolamento de instância |
Fixo em |
|
concorrência da instância |
Fixo em 200 e não pode ser modificado. |
|
concorrência de sessão por instância |
Fixo em 1 e não pode ser modificado. |
|
Número de pontos de montagem |
Máximo de 5 pontos de montagem para cada tipo de armazenamento. O |
|
Nome da função |
1 a 64 caracteres. Deve começar com uma letra ou sublinhado. |
|
Timeout |
1 a 86.400 segundos |
|
Ciclo de vida de sessão única |
60 a 86.400 segundos |
|
Tempo limite de ociosidade da sessão |
De 60 segundos até a duração configurada do ciclo de vida da sessão |