Avant de commencer
L’injection de secrets W&B nécessite une sandbox authentifiée avec une clé API W&B. Elle est disponible pour les sandboxes serverless, mais pas pour les sandboxes exécutées sur votre propre cluster CoreWeave Kubernetes Service (CKS). Le placement sur CKS utilise un jeton d’accès à l’API CoreWeave. Vous ne pouvez pas combiner ce jeton avec une clé W&B distincte pour résoudre les secrets d’une sandbox CKS.
Pour suivre les exemples, vous devez disposer des éléments suivants :
- Un compte W&B SaaS (software-as-a-service) avec un accès aux sandboxes serverless.
- Un secret nommé
HF_TOKENdans le Secret Manager de votre équipe W&B. Si ce secret n’existe pas, demandez à un administrateur W&B de l’ajouter. - Une clé API W&B ayant accès à cette équipe.
WANDB_API_KEY dans l’environnement du processus qui crée la sandbox. Remplacez [WANDB-API-KEY] par votre clé API W&B :
WANDB_ENTITY est facultatif et correspond par défaut à l’entity par défaut de la clé API. Si le secret appartient à une autre équipe, définissez WANDB_ENTITY sur cette équipe. Remplacez [WANDB-TEAM] par le nom de l’équipe :
- Python
- TypeScript
Utilisez Python 3.11 ou une version ultérieure et, si nécessaire, installez
uv. Dans votre environnement Python, installez le client avec sa dépendance d’authentification W&B :Injecter un secret
Utilisezstore="wandb" en Python ou store: "wandb" en TypeScript. Ce magasin résout les secrets pour l’équipe W&B authentifiée. Vous n’avez pas besoin d’enregistrer de magasin de secrets d’organisation pour ce flux.
Les exemples suivants injectent HF_TOKEN et vérifient sa présence sans afficher sa valeur. Dans le sandbox, la variable d’environnement porte par défaut le nom du secret.
- Python
- TypeScript
Sélectionnez explicitement l’authentification W&B avec
AuthStrategy.WANDB :Secret is available et arrêtent le sandbox une fois l’opération terminée. Le code exécuté dans le sandbox peut lire la valeur depuis HF_TOKEN.
Dans secrets, transmettez le nom du secret, et non sa valeur. C’est le serveur qui résout la valeur. Ne l’affichez pas et ne l’écrivez pas dans les journaux.
Champs de référence de secret
Utilisez ces champs dans unSecret Python ou dans une entrée secrets TypeScript :
Utiliser un nom de variable d’environnement personnalisé
Pour choisir la variable d’environnement qui reçoit le secret, définissezenv_var en Python ou envVar en TypeScript. Les exemples suivants exposent le secret HF_TOKEN sous le nom HUGGINGFACE_TOKEN :
- Python
- TypeScript
Secret is available après avoir vérifié la présence de HUGGINGFACE_TOKEN.
Sélectionner un champ d’un secret structuré
Pour injecter une seule valeur d’un objet JSON, définissezfield sur sa clé de premier niveau. Les chemins imbriqués ne sont pas pris en charge. Si la valeur est une chaîne JSON, elle est injectée sans les guillemets JSON qui l’entourent.
Pour cet exemple, ajoutez un secret d’équipe nommé DB_CREDENTIALS dont la valeur est un objet JSON tel que {"password":"[DB-PASSWORD]"}. Remplacez [DB-PASSWORD] par le mot de passe avant d’enregistrer le secret. Les exemples injectent son champ password dans DB_PASSWORD :
- Python
- TypeScript
Secret is available sans révéler le mot de passe. La sélection d’un champ échoue si le secret n’est pas un objet JSON, si la clé n’existe pas ou si sa valeur est null.
Réutiliser les références de secrets
Pour les sessions Python, placez les références de secrets partagées dansSandboxDefaults. En TypeScript, réutilisez un même tableau secrets lorsque vous créez des sandboxes :
- Python
- TypeScript
secrets propres à chaque sandbox, en ignorant les doublons exacts. Si des références différentes ciblent la même variable d’environnement, le client lève une ValueError avant de créer la sandbox. Pour la signature de type Python, consultez la référence Secret.Résoudre les problèmes d’injection de secrets
Si le sandbox ne parvient pas à démarrer avec une référence de secret, servez-vous du texte de l’erreur pour vérifier l’authentification, l’équipe sélectionnée et le placement :
L’injection de secrets W&B n’est pas disponible pour le placement CKS, même si vous définissez à la fois un jeton d’accès à l’API CoreWeave et une clé API W&B.