L'exécution de code non fiable ou l'automatisation de navigateur pour des agents d'IA sur un système hôte présente des risques de sécurité. Une fonction sandbox offre un environnement d'exécution sécurisé, isolé et avec état. Chaque session dispose de sa propre instance de fonction dédiée, ce qui la rend idéale pour des scénarios tels que les interpréteurs de code et l'automatisation de navigateur. Cette rubrique explique comment créer une fonction sandbox dans la console Function Compute.
Prérequis
Les fonctions sandbox sont disponibles uniquement dans certaines régions. Pour consulter la liste des régions prises en charge, voir Limites d'utilisation des fonctions sandbox. Si la région actuelle n'est pas prise en charge, l'onglet Sandbox Function n'apparaît pas dans la zone de sélection du type de fonction de la console.
Obligatoire
Activer Function Compute : activez le service dans la console Function Compute.
Rôle lié au service (SLR) : une fonction sandbox utilise le rôle lié au service Alibaba Cloud (SLR)
AliyunServiceRoleForFC(nom du rôle :aliyunserviceroleforfc) pour créer des fonctions et des sessions Function Compute. Ce rôle est créé et géré automatiquement par Function Compute ; aucune action manuelle n'est généralement requise.Autorisations RAM : assurez-vous que votre utilisateur ou rôle actuel dispose des autorisations nécessaires pour créer et gérer des fonctions sandbox.
Facultatif (pour les configurations personnalisées)
Configuration VPC (requise pour le montage de NAS ou PolarFS) : préparez l'ID VPC (
vpcId), l'ID du groupe de sécurité (securityGroupId) et les ID vSwitch (vSwitchIds).ARN du rôle d'exécution (requis pour le montage d'OSS) : créez un rôle RAM et récupérez son ARN.
Accès à Container Registry (ACR) (requis pour l'utilisation d'une image de conteneur personnalisée) : assurez-vous de disposer des autorisations d'accès au dépôt ACR.
Démarrage rapide
Cette section vous guide dans la création d'une fonction sandbox en utilisant tous les paramètres par défaut : l'image Code Interpreter, 2 vCPU / 4 096 Mo de mémoire / 512 Mo de disque et l'affinité de session basée sur les cookies.
Connectez-vous à la console Function Compute. Dans la barre de navigation supérieure, sélectionnez une région qui prend en charge les fonctions sandbox, par exemple Chine (Hangzhou).
Dans le volet de navigation de gauche, sélectionnez Function Management > Function List, puis cliquez sur Create Function.
Dans la fenêtre contextuelle de sélection du type de fonction, cliquez sur l'onglet Sandbox Function, puis sur le bouton Create Sandbox Function en bas de page.
Dans la section de configuration de l'image, l'image prédéfinie Code Interpreter est sélectionnée par défaut. Pour bénéficier à la fois des capacités d'exécution de code et d'automatisation de navigateur, basculez vers l'image All-in-One.
Saisissez un Function Name, par exemple
my-first-sandbox, et laissez les autres paramètres avec leurs valeurs par défaut.Cliquez sur Create et attendez la création de la fonction.
Une fois la fonction créée, vous êtes automatiquement redirigé vers la page des détails de la fonction. Cliquez sur l'onglet Session Management, puis sur Create Session et attendez que le statut de la session passe à Active.
-
Sur la page des détails de la session, exécutez les commandes suivantes dans le terminal intégré pour vérifier que la fonction sandbox fonctionne correctement :
echo 'Hello, FC Sandbox!' python3 -c "print(1 + 1)"
Sortie attendue :
Hello, FC Sandbox!
2
Pour les configurations personnalisées, voir Procédure (configuration complète).
Procédure (configuration complète)
Étape 1 : Sélectionner le type de fonction et saisir les informations de base
Connectez-vous à la console Function Compute.
Dans le volet de navigation de gauche, sélectionnez Function Management > Function List, puis cliquez sur Create Function.
Dans la fenêtre de sélection du type de fonction, cliquez sur l'onglet Sandbox Function, puis sur le bouton Create Sandbox Function en bas de page.
Saisissez un Function Name (obligatoire) : 1 à 64 caractères. Le nom doit commencer par une lettre ou un trait de soulignement et peut contenir des lettres, des chiffres, des traits de soulignement (_) et des tirets (-). Le nom ne peut pas être modifié après la création.
Après avoir sélectionné le type de fonction sandbox, le système définit automatiquement les paramètres suivants. Ces paramètres ne peuvent pas être modifiés et ne s'affichent pas dans la console :
|
Paramètre |
Valeur définie automatiquement |
Description |
|
runtime |
custom container |
Une fonction sandbox s'exécute toujours à partir d'une image de conteneur. |
|
instance isolation mode |
Session Exclusive ( |
Chaque session dispose d'une instance de fonction dédiée. |
|
instance concurrency ( |
200 |
Nombre maximal de requêtes simultanées qu'une seule instance peut traiter. |
|
session concurrency per instance ( |
1 |
Chaque instance ne sert qu'une seule session à la fois. |
Étape 2 : Configurer les spécifications de l'instance
Dans le panneau Auto scaling and instance specification, configurez les spécifications des ressources pour l'instance sandbox. Une fonction sandbox impose des exigences minimales en matière de spécifications d'instance. La console empêche la soumission si les valeurs sont inférieures aux minimums requis.
|
Paramètre |
Par défaut |
Minimum |
Valeurs disponibles |
Description |
|
CPU |
2 vCPU |
2 vCPU |
Sélectionnez parmi les spécifications disponibles |
Nombre de cœurs vCPU pour la fonction sandbox. |
|
Mémoire |
4 096 Mo (4 Go) |
4 096 Mo |
Sélectionnez parmi les spécifications disponibles |
Taille de la mémoire pour la fonction sandbox. |
|
Taille du disque |
512 Mo |
— |
512 Mo, 10 240 Mo |
Pour les scénarios sandbox, nous recommandons de sélectionner 10 240 Mo afin de garantir un espace de stockage temporaire suffisant. |
Ce panneau inclut également les paramètres de politique Auto Scaling, où vous pouvez configurer le nombre d'instances réservées et les règles de mise à l'échelle planifiée.
Étape 3 : Configurer l'image de conteneur
Dans le panneau Code Configuration, sélectionnez une source d'image. Les sources prises en charge incluent Sample Image, ACR Personal Edition Image, ACR Enterprise Edition Image, Other Public Image et Custom Image Repository. Par défaut, Sample Image est sélectionné.
La console fournit les images sandbox préconstruites suivantes (Code Interpreter Sandbox est sélectionné par défaut) :
|
Nom de l'image |
URL de l'image |
Port par défaut |
Description |
|
Code Interpreter Sandbox |
|
5000 |
Prend en charge l'exécution de code Python/Node.js. Idéal pour les bacs à sable de code d'agents IA, l'analyse de données et des scénarios similaires. |
|
Browser Tool Sandbox |
|
3000 |
Environnement d'automatisation de navigateur. Adapté au web scraping, à la capture d'écran, aux interactions avec les pages et à d'autres tâches liées au navigateur. |
|
All-in-One Sandbox |
|
5000 |
Intègre l'interpréteur de code et les outils de navigateur. Idéal pour les scénarios nécessitant les deux capacités. |
L'URL de l'image préconstruite est sélectionnée automatiquement en fonction de la région. Le registre serverless-registry.cn-hangzhou.cr.aliyuncs.com est utilisé pour les régions de Chine continentale (Hangzhou, Shanghai, Pékin et Shenzhen). Le registre serverless-registry.ap-southeast-1.cr.aliyuncs.com est utilisé pour les régions Singapour et Chine (Hong Kong). La version actuelle de l'image est la v0.9.30.
Ce panneau inclut également le paramètre Timeout (par défaut : 60 secondes, plage : 1 à 86 400 secondes), qui définit le délai d'expiration pour une seule requête. Ce paramètre est indépendant du cycle de vie de la session.
Guide de sélection d'image : la première image (Code Interpreter Sandbox) est sélectionnée par défaut. Utilisez Code Interpreter Sandbox uniquement pour l'exécution de code. Utilisez Browser Tool Sandbox uniquement pour l'automatisation de navigateur. Si vous avez besoin des deux capacités ou si vous hésitez, sélectionnez All-in-One Sandbox. Pour utiliser votre propre image sandbox, sélectionnez ACR ou un dépôt d'images personnalisé comme source d'image.
Étape 4 : Configurer l'isolation de session et le cycle de vie
Les paramètres de session d'une fonction sandbox se trouvent dans un panneau dédié Session Isolation and Affinity, différent du panneau déroulant Advanced Configuration utilisé pour les fonctions classiques.
Instance isolation mode : ce paramètre est fixé sur Session Exclusive (SESSION_EXCLUSIVE) et ne peut pas être modifié.
Session affinity : l'affinité de session est appliquée pour les fonctions sandbox, et la valeur par défaut est Cookie affinity (GENERATED_COOKIE). Le système génère et gère automatiquement un cookie pour identifier la session, garantissant que les requêtes provenant de la même session sont routées vers la même instance sandbox. Vous pouvez également sélectionner Header field affinity (HEADER_FIELD), qui utilise un champ d'en-tête personnalisé pour identifier la session. Types d'affinité pris en charge :
|
Type d'affinité |
Description |
|
Cookie Affinity (par défaut) |
Utilise un cookie généré par le système. Aucune configuration supplémentaire n'est nécessaire. Convient à l'accès via navigateur, aux applications web et à des scénarios similaires. |
|
Header Field Affinity |
Utilise un en-tête HTTP personnalisé pour l'affinité de session. Vous devez configurer un Header Name commençant par une lettre, contenant de 5 à 40 caractères (lettres, chiffres, traits de soulignement et tirets) et ne commençant pas par |
Configuration du cycle de vie de la session :
|
Paramètre |
Par défaut |
Plage |
Description |
|
Session lifecycle ( |
86 400 secondes (24 heures) |
60 à 86 400 secondes |
Durée de vie maximale d'une session. À l'issue de cette période, le système met automatiquement fin à la session et à l'instance associée. |
|
Session idle timeout ( |
1 800 secondes (30 minutes) |
60 secondes à la durée du cycle de vie de la session |
Période d'inactivité avant que le système ne mette automatiquement fin à une session inactive. Cette valeur ne peut pas dépasser la durée de vie maximale de la session. |
Étape 5 : Configurer les options avancées (facultatif)
Dans le panneau Advanced Configuration, configurez les options suivantes selon vos besoins.
Rôle RAM et réseau
RAM role : sélectionnez le rôle que la fonction utilise pour accéder à d'autres ressources cloud.
Network configuration : configurez l'accès au réseau VPC aux ressources privées. Cette configuration est requise lors du montage de NAS ou PolarFS.
Montage du stockage
Une fonction sandbox prend en charge le montage des types de stockage suivants afin de fournir un stockage de données persistant ou partagé pour les instances sandbox.
|
Type de stockage |
Nombre maximal de points de montage |
Prérequis |
|
NAS |
5 |
Configuration VPC |
|
OSS |
5 |
ARN du rôle d'exécution |
|
PolarFS |
5 |
Configuration VPC |
Le montage de NAS ou PolarFS nécessite une configuration VPC complète (ID VPC, ID du groupe de sécurité et ID vSwitch).
Lorsque vous montez simultanément NAS et PolarFS, leurs
UserIDetGroupIDdoivent être identiques.Le
mountDirdoit être unique pour tous les types de stockage montés.
Observabilité
Log configuration : configurez Log Service pour collecter les journaux d'exécution de la fonction. La collecte automatique des journaux est activée par défaut.
Tracing : configurez le traçage pour surveiller les chaînes d'appels.
Autres configurations
Resource group : sélectionnez un groupe de ressources pour la catégorisation des ressources et le contrôle des autorisations.
Time zone : définissez le fuseau horaire d'exécution de la fonction. La valeur par défaut est UTC.
Environment variables : configurez des paires clé-valeur pouvant être lues comme des variables d'environnement au moment de l'exécution.
Idle timeout : définissez le délai après lequel les instances inactives sont récupérées.
Étape 6 : Finaliser la création
Après avoir confirmé que toutes les configurations sont correctes, cliquez sur Create. Une fois la fonction créée avec succès, le système vous redirige automatiquement vers la page des détails de la fonction.
Quotas et limites
|
Limite |
Contrainte |
|
instance isolation mode |
Fixé sur |
|
instance concurrency |
Fixé sur 200 et ne peut pas être modifié. |
|
session concurrency per instance |
Fixé sur 1 et ne peut pas être modifié. |
|
Nombre de points de montage |
Maximum de 5 points de montage pour chaque type de stockage. Le |
|
Nom de la fonction |
1 à 64 caractères. Doit commencer par une lettre ou un trait de soulignement. |
|
Timeout |
1 à 86 400 secondes |
|
Single Session Lifecycle |
60 à 86 400 secondes |
|
Session idle timeout |
60 secondes à la durée configurée du cycle de vie de la session |