Ces exemples utilisent un jeton d’accès à l’API CoreWeave défini dans CWSANDBOX_API_KEY. Pour l’authentification par clé API Forge, voir Premiers pas. Pour les exigences propres à CKS, voir Modes de placement.
Ce guide vous explique comment définir et gérer les variables d’environnement dans les instances CWSandbox. Les variables d’environnement permettent de transmettre à vos sandboxes des valeurs de configuration non sensibles, comme des niveaux de journalisation ou des identifiants de projet. Vous pouvez les définir sur un sandbox donné, les partager entre les sandboxes d’une même session ou limiter leur portée à des fonctions distantes.
Ne codez pas en dur de clés API, de mots de passe ni d’autres identifiants d’authentification dans environment_variables, et ne les écrivez pas dans les journaux. Privilégiez les références de secret plutôt que la transmission d’identifiants d’authentification en clair. Conservez les valeurs sensibles dans un gestionnaire de secrets, même lorsque l’injection de secrets Forge n’est pas disponible. Ces recommandations s’appliquent aussi bien aux sandboxes sans serveur qu’aux sandboxes CKS.
Pour les sandboxes sans serveur authentifiés avec Forge, utilisez les secrets Forge. Le serveur résout ces références et injecte les valeurs sous forme de variables d’environnement. L’injection de secrets Forge n’est disponible ni pour le placement CKS ni pour les sandboxes authentifiés avec un jeton d’accès à l’API CoreWeave. Pour CKS, utilisez la méthode approuvée par votre organisation pour transmettre des secrets aux charges de travail.
Utilisation de base
Pour rendre des valeurs disponibles aux processus exécutés dans la sandbox, transmettez un dictionnaire environment_variables à Sandbox.run :
Valeurs par défaut au niveau de la session
Lorsque vous avez besoin des mêmes variables dans plusieurs sandboxes, définissez-les une seule fois dans une session plutôt que de les répéter pour chaque sandbox. Chaque sandbox peut remplacer les valeurs par défaut de la session ou ajouter ses propres variables :
Fonctions distantes
Les fonctions distantes héritent des variables d’environnement de la session et peuvent déclarer les leurs à l’aide du décorateur @session.function. Au moment de l’appel, le SDK fusionne les variables définies au niveau de la fonction avec les valeurs par défaut de la session :
Les variables d’environnement sont transmises par référence. Les appels de fonctions ultérieurs tiennent compte des modifications apportées au dictionnaire après l’application du décorateur, comme le montre l’exemple suivant.