

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Comment Amazon SageMaker Processing gère votre image de conteneur de traitement
<a name="byoc-run-image"></a>

Amazon SageMaker Processing exécute votre image de conteneur de traitement de la même manière que la commande suivante, où se `AppSpecification.ImageUri` trouve l'URI de l'image Amazon ECR que vous spécifiez lors d'une `CreateProcessingJob` opération. 

```
docker run [AppSpecification.ImageUri]
```

Cette commande exécute la commande `ENTRYPOINT` configurée dans votre image Docker. 

Vous pouvez également remplacer la commande entrypoint dans l'image ou donner des arguments de ligne de commande à votre commande entrypoint à l'aide des paramètres `AppSpecification.ContainerEntrypoint` et `AppSpecification.ContainerArgument` de votre demande `CreateProcessingJob`. La spécification de ces paramètres permet à Amazon SageMaker Processing d'exécuter le conteneur de la même manière que la commande suivante. 

```
 docker run --entry-point [AppSpecification.ContainerEntrypoint] [AppSpecification.ImageUri] [AppSpecification.ContainerArguments]
```

Par exemple, si vous spécifiez `ContainerEntrypoint` ce qui doit être `[python3, -v, /processing_script.py]` dans votre `CreateProcessingJob ` demande`[data-format, csv]`, Amazon SageMaker Processing exécute votre conteneur `ContainerArguments` à l'aide de la commande suivante. 

```
 python3 -v /processing_script.py data-format csv 
```

 Lors de la génération de votre conteneur de traitement, tenez compte des éléments suivants  : 
+ Amazon SageMaker Processing décide si la tâche se termine ou échoue en fonction du code de sortie de la commande exécutée. Une tâche de traitement se termine si tous les conteneurs de traitement quittent avec succès avec un code de sortie égal à 0 et échoue si l'un des conteneurs quitte avec un code de sortie différent de zéro.
+  Amazon SageMaker Processing vous permet de remplacer le point d'entrée du conteneur de traitement et de définir des arguments de ligne de commande comme vous le pouvez avec l'API Docker. Les images Docker peuvent également configurer les arguments d'entrée et de ligne de commande à l'aide des instructions `ENTRYPOINT` et CMD. La méthode dont les paramètres `ContainerEntrypoint` et `ContainerArgument` de `CreateProcessingJob` configurent le point d'entrée et les arguments d'une image Docker reflète la façon dont Docker remplace le point d'entrée et les arguments via l'API Docker :
  + En l'absence de `ContainerEntrypoint` et `ContainerArguments`, Processing utilise la valeur par défaut `ENTRYPOINT` ou CMD dans l'image.
  + Si `ContainerEntrypoint` est fourni, mais pas `ContainerArguments`, Processing exécute l'image avec le point d'entrée donné, et ignore les instructions `ENTRYPOINT` et CMD dans l'image.
  + Si `ContainerArguments` est fourni, mais pas `ContainerEntrypoint`, Processing exécute l'image avec l'instruction par défaut `ENTRYPOINT` dans l'image et avec les arguments fournis.
  + Si `ContainerEntrypoint` et `ContainerArguments` sont fournis, Processing exécute l'image avec le point d'entrée et les arguments donnés, et ignore les instructions `ENTRYPOINT` et le CMD dans l'image.
+ Vous devez utiliser le formulaire exec de l'instruction `ENTRYPOINT` dans votre Dockerfile (`ENTRYPOINT` `["executable", "param1", "param2"])`) au lieu du formulaire shell (`ENTRYPOINT`` command param1 param2`). Cela permet à votre conteneur de traitement de recevoir des signaux `SIGINT` et `SIGKILL` que Processing utilise pour arrêter les tâches de traitement avec l'API `StopProcessingJob`.
+ `/opt/ml`et tous ses sous-répertoires sont réservés par SageMaker AI. Lors de la création de votre image Docker de traitement, ne placez aucune des données requises par votre conteneur de traitement dans ces répertoires.
+ Si vous envisagez d'utiliser des périphériques GPU, assurez-vous que vos conteneurs sont compatibles avec nvidia-docker. Incluez uniquement la boîte à outils CUDA dans les conteneurs. Ne regroupez pas des pilotes NVIDIA avec l’image. Pour plus d'informations sur nvidia-docker, consultez. [NVIDIA/nvidia-docker](https://github.com/NVIDIA/nvidia-docker)