> ## 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.

# Configuration

> Configurez les ressources, les images et les paramètres d’environnement d’une sandbox.

Ces exemples utilisent un jeton d’accès à l’API CoreWeave défini dans `CWSANDBOX_API_KEY`. Pour l’authentification par clé API Forge, consultez [Premiers pas](/fr/products/sandboxes/get-started). Pour les exigences relatives à CKS, consultez [Modes de placement](/fr/products/sandboxes/placement).

Ce tutoriel explique comment configurer une sandbox au démarrage en transmettant des options à `Sandbox.run()`. Il s’adresse aux développeurs qui ont déjà créé une sandbox de base et qui souhaitent maîtriser l’image de conteneur, l’allocation des ressources et les fichiers préchargés pour leur charge de travail.

<h2 id="pass-configuration-to-sandboxrun">
  Transmettre la configuration à `Sandbox.run()`
</h2>

Les options de configuration déterminent la manière dont la sandbox est provisionnée. Transmettez-les directement à `Sandbox.run()` sous forme d’arguments nommés :

```python theme={"system"}
from cwsandbox import Sandbox

with Sandbox.run(
    container_image="python:3.11",
    max_lifetime_seconds=300,
    tags=["my-app"],
) as sandbox:
    sandbox.exec(["python", "--version"]).result()
```

<h2 id="resources">
  Ressources
</h2>

Configurez le CPU et la mémoire en fonction des besoins de votre charge de travail afin d'éviter tout surprovisionnement ou sous-provisionnement. Utilisez `ResourceOptions` pour définir les demandes de ressources et les limites :

```python theme={"system"}
from cwsandbox import ResourceOptions, Sandbox

with Sandbox.run(
    resources=ResourceOptions(
        requests={"cpu": "2", "memory": "2Gi"},
        limits={"cpu": "2", "memory": "2Gi"},
    ),
) as sandbox:
    sandbox.exec(["python", "compute.py"]).result()
```

`ResourceOptions` utilise la [syntaxe des ressources Kubernetes](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) :

| Ressource | Format | Exemples |
| - | - | - |
| CPU | Cœurs ou millicœurs | `"1"`, `"2"`, `"500m"` (0,5 CPU) |
| Mémoire | Octets avec suffixe d’unité | `"512Mi"`, `"1Gi"`, `"2Gi"` |

<h2 id="mounted-files">
  Fichiers montés
</h2>

Les fichiers montés vous permettent d’intégrer une configuration, des scripts ou tout autre contenu statique dans la sandbox avant son démarrage, afin que votre charge de travail dispose de tout le nécessaire dès son lancement. Préchargez des fichiers au démarrage de la sandbox :

```python theme={"system"}
with Sandbox.run(
    mounted_files=[
        {"mount_path": "/app/config.json", "file_content": b'{"debug": true}'},
        {"mount_path": "/app/script.py", "file_content": b"print('hello')"},
    ]
) as sandbox:
    sandbox.exec(["python", "/app/script.py"]).result()
```

Chaque entrée accepte `mount_path`, le chemin absolu dans la sandbox, et `file_content`, le contenu du fichier sous forme d'octets. Une valeur `str` est automatiquement encodée en UTF-8.

Les fichiers montés sont en lecture seule. Utilisez `write_file()` pour les fichiers qui doivent être modifiés.

<h2 id="next-steps">
  Étapes suivantes
</h2>

Vous disposez maintenant d’une sandbox qui démarre avec l’image de conteneur, l’allocation des ressources et les fichiers prémontés dont votre charge de travail a besoin.

Pour réutiliser une même configuration sur plusieurs bacs à sable, utilisez `SandboxDefaults`. Consultez le [guide de configuration du bac à sable](/fr/products/sandboxes/client/guides/sandbox-configuration) pour découvrir l’ensemble des champs de `ResourceOptions`, les ressources GPU, les classes de QoS et l’interopérabilité avec les bibliothèques de configuration.
