> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Variables d’environnement

> Variables d’environnement définies par CoreWeave dans chaque sandbox, et comment les remplacer.

<Note>
  Les exemples sans `auth` utilisent un jeton d’accès à l’API CoreWeave lu depuis `CWSANDBOX_API_KEY`. Pour vous authentifier avec une clé API Forge, suivez [Premiers pas](/fr/products/sandboxes/get-started#forge-api-key) et transmettez les `AuthHeaders` obtenus à l’opération.
</Note>

Cette page décrit les variables d’environnement que CoreWeave définit dans chaque sandbox et explique comment les lire depuis le code exécuté dans la sandbox. La plateforme les définit à la création, en plus des variables que vous fournissez vous-même, afin que votre code puisse identifier son propre environnement d’exécution.

Pour définir vos propres variables, consultez [Définir vos propres variables d’environnement](/fr/products/sandboxes/client/guides/environment-variables).

<h2 id="variables">
  Variables
</h2>

La plateforme définit la variable suivante dans chaque sandbox :

| Variable | Valeur | Description |
| - | - | - |
| `CW_SANDBOX_ID` | UUID | L’ID propre à la sandbox. Il est identique à l’ID renvoyé lors de la création de la sandbox et correspond à l’ID que vous utilisez dans les appels d’API et de SDK qui agissent sur la sandbox. |

La plateforme définit ces variables quelle que soit la version du SDK ou de l’API que vous utilisez.

<Note>
  N’analysez pas le nom d’hôte pour obtenir l’ID de la sandbox. Le nom d’hôte d’une sandbox commence par l’ID de la sandbox, mais il comporte un suffixe généré qui change si le pod sous-jacent redémarre. Utilisez plutôt `CW_SANDBOX_ID`.
</Note>

<h2 id="read-a-variable">
  Lire une variable
</h2>

Les variables de plateforme sont accessibles au processus principal de chaque conteneur, à tout processus qu’il lance, ainsi qu’aux processus lancés avec `exec` ou par exécution en diffusion en continu. Seule exception : un programme qui efface son environnement avant de lancer un processus enfant.

<Tabs>
  <Tab title="Python">
    ```python theme={"system"}
    import os

    sandbox_id = os.environ["CW_SANDBOX_ID"]
    print(f"running in sandbox {sandbox_id}")
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript theme={"system"}
    const sandboxId = process.env.CW_SANDBOX_ID;

    console.log(`running in sandbox ${sandboxId}`);
    ```
  </Tab>

  <Tab title="Shell">
    ```bash theme={"system"}
    echo "$CW_SANDBOX_ID"
    ```
  </Tab>
</Tabs>

Un usage courant consiste à étiqueter les journaux ou les métriques émis depuis la sandbox, afin de pouvoir ensuite corréler les enregistrements avec la sandbox dont ils proviennent.

<h2 id="override-a-variable">
  Remplacer une variable
</h2>

Les variables de plateforme sont des valeurs par défaut, et non des noms réservés. Si vous définissez une variable portant le même nom sur votre sandbox, celle-ci utilise votre valeur et la plateforme n’applique pas sa valeur par défaut.

Remplacez `[YOUR-VALUE]` par la valeur que la sandbox doit renvoyer :

<Tabs>
  <Tab title="Python">
    ```python theme={"system"}
    from cwsandbox import Sandbox

    sandbox = Sandbox.run(
        container_image="ubuntu:22.04",
        environment_variables={"CW_SANDBOX_ID": "[YOUR-VALUE]"},
    )
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript theme={"system"}
    import { createSandboxClientFromEnv } from "@coreweave/cwsandbox/node";

    const client = createSandboxClientFromEnv();

    const sandbox = await client.create({
      containerImage: "ubuntu:22.04",
      environmentVariables: { CW_SANDBOX_ID: "[YOUR-VALUE]" },
    });
    ```
  </Tab>
</Tabs>

Les règles suivantes s’appliquent aux remplacements :

* **Toute valeur est prise en compte, y compris une chaîne vide.** Définir `CW_SANDBOX_ID` sur `""` crée une variable présente mais vide. La plateforme ne considère pas une valeur vide comme non définie et ne la remplace pas.

* **Une politique ne peut pas remplacer les variables de plateforme.** Le nom est protégé contre la configuration de l’opérateur : la [politique](/fr/products/sandboxes/profiles/configure) d’un cluster ne peut donc pas remplacer à votre insu une valeur que vous avez définie.

* **Les secrets valent remplacement.** Un [secret](/fr/products/sandboxes/secrets) associé au même nom de variable neutralise la valeur par défaut de la plateforme, exactement comme une valeur définie directement.

<h2 id="metadata-only-not-identity">
  Simple métadonnée, pas une identité
</h2>

`CW_SANDBOX_ID` est une métadonnée purement indicative. Comme sa valeur peut être remplacée, le code exécuté dans une sandbox peut déclarer n’importe quelle valeur.

<Warning>
  N’utilisez pas `CW_SANDBOX_ID` pour l’authentification, l’autorisation ou l’attribution dans le cadre d’un audit. Vos propres systèmes ont enregistré un ID de sandbox au moment de créer la sandbox. C’est cet ID qui fait foi, et non une valeur déclarée depuis l’intérieur de la sandbox.
</Warning>

<h2 id="sandboxes-with-more-than-one-container">
  Sandbox comportant plusieurs conteneurs
</h2>

Chaque conteneur reçoit la valeur définie sur le premier conteneur de la sandbox, sauf s’il définit lui-même `CW_SANDBOX_ID`. Une valeur explicite prévaut pour le conteneur qui la définit.

Il en découle deux conséquences :

* Si vous remplacez la variable sur le premier conteneur, tous les autres conteneurs qui ne la définissent pas reçoivent votre valeur de remplacement.
* Si vous la remplacez par une chaîne vide sur le premier conteneur, les autres conteneurs ne reçoivent pas du tout la variable.

<h2 id="behavior-across-the-sandbox-lifecycle">
  Comportement au cours du cycle de vie de la sandbox
</h2>

`CW_SANDBOX_ID` se comporte comme suit pendant la durée de vie d’une sandbox :

* **La valeur reste fixe pendant toute la durée de vie de la sandbox.** La plateforme l’attribue lors de la création, et elle ne change pas si le pod sous-jacent redémarre.
* **Une sandbox restaurée est une nouvelle sandbox.** La restauration à partir d’un instantané du système de fichiers crée une sandbox dotée d’un nouvel ID, et `CW_SANDBOX_ID` prend cette nouvelle valeur. Tout ID antérieur que votre application a écrit dans un volume d’instantané est enregistré en tant que données propres et n’est pas mis à jour.
