

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.

# Création d'une définition de tâche à nœud unique
<a name="create-job-definition"></a>

Avant de pouvoir exécuter des tâches AWS Batch, vous devez créer une définition de tâche. Ce processus varie légèrement entre les tâches parallèles à nœud unique et à nœuds multiples. Cette rubrique explique spécifiquement comment créer une définition de tâche pour une tâche qui n'est pas une AWS Batch tâche parallèle à plusieurs nœuds (également connue sous le nom de *planification en groupe*).

Vous pouvez créer une définition de tâche parallèle à plusieurs nœuds sur les ressources Amazon Elastic Container Service. Pour de plus amples informations, veuillez consulter [Création d'une définition de tâche parallèle à nœuds multiples](create-multi-node-job-def.md). 

**Topics**
+ [Création d'une définition de tâche à nœud unique sur les ressources Amazon EC2](create-job-definition-EC2.md)
+ [Création d'une définition de tâche à nœud unique sur les ressources Fargate](create-job-definition-Fargate.md)
+ [Création d'une définition de tâche à nœud unique sur les ressources Amazon EKS](create-job-definition-eks.md)
+ [Création d'une définition de tâche à nœud unique avec plusieurs conteneurs sur les ressources Amazon EC2](create-job-definition-single-node-multi-container.md)

# Création d'une définition de tâche à nœud unique sur les ressources Amazon EC2
<a name="create-job-definition-EC2"></a>

Procédez comme suit pour créer une définition de tâche à nœud unique sur les ressources Amazon Elastic Compute Cloud (Amazon EC2).

**Pour créer une nouvelle définition de tâche sur les ressources Amazon EC2 :**

1. Ouvrez la AWS Batch console à l'adresse [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Dans la barre de navigation, choisissez le Région AWS à utiliser.

1. Dans le volet de navigation de gauche, choisissez **Job definitions**.

1. Choisissez **Créer**.

1. Pour le **type d'orchestration,** choisissez **Amazon Elastic Compute Cloud (Amazon EC2).**

1. Pour la **configuration de la plate-forme EC2**, désactivez l'**option Activer le traitement parallèle à nœuds multiples**.

1. Dans **Nom**, entrez un nom unique pour votre définition de tâche. Le nom peut comporter jusqu'à 128 caractères. Il peut contenir des lettres majuscules et minuscules, des chiffres, des traits d'union (-) et des traits de soulignement (\$1).

1. (Facultatif) Pour le **délai d'exécution**, entrez la valeur du délai d'expiration (en secondes). Le délai d'exécution est le délai avant la fin d'une tâche inachevée. Si une tentative dépasse le délai imparti, elle est arrêtée et passe à un `FAILED` statut. Pour de plus amples informations, veuillez consulter [Expiration des délais d'exécution des tâches](job_timeouts.md). La valeur minimale est 60 secondes.

1. (Facultatif) Activez la **priorité de planification**. Entrez une valeur de priorité de planification comprise entre 0 et 100. Les valeurs les plus élevées reçoivent une priorité plus élevée.

1. (Facultatif) Pour les **tentatives de tâche**, entrez le nombre de AWS Batch tentatives de transfert de la tâche vers le `RUNNABLE` statut. Entrez un nombre compris entre 1 et 10.

1. (Facultatif) Pour les **conditions de la stratégie Réessayer**, choisissez **Ajouter une évaluation à la sortie**. Entrez au moins une valeur de paramètre, puis choisissez une **action**. Pour chaque ensemble de conditions, l'**action** doit être définie sur **Réessayer** ou sur **Quitter**. Ces actions signifient ce qui suit :
   + **Réessayer** — AWS Batch Réessaie jusqu'à ce que le nombre de tentatives de travail que vous avez spécifié soit atteint.
   + **Quitter** : AWS Batch arrête de réessayer la tâche.
**Important**  
Si vous choisissez **Ajouter une évaluation à la sortie**, vous devez configurer au moins un paramètre et soit choisir une **action**, soit choisir **Supprimer l'évaluation à la sortie**.

1. (Facultatif) Développez les **balises**, puis choisissez **Ajouter une balise** pour ajouter des balises à la ressource. Entrez une clé et une valeur facultative, puis choisissez **Ajouter une étiquette**.

1. (Facultatif) Activez les **balises de propagation** pour propager les balises de la tâche et de la définition de la tâche vers la tâche Amazon ECS.

1. Choisissez **Page suivante**.

1. Dans la section **Configuration du conteneur** :

   1. Dans **Image**, choisissez l'Dockerimage à utiliser pour votre travail. Par défaut, les images dans le registre Docker Hub sont disponibles. Vous pouvez également spécifier d'autres référentiels avec `repository-url/image:tag`. Le nom peut comporter jusqu'à 225 caractères. Il peut contenir des lettres majuscules et minuscules, des chiffres, des traits d'union (-), des traits de soulignement (\$1), des deux-points (:), des barres obliques (/) et des signes numériques (\$1). Ce paramètre se mappe à `Image` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Création d'un conteneur) de [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) (L'API Docker à distance) et le paramètre `IMAGE` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).
**Note**  
L'architecture des images Docker doit correspondre à l'architecture du processeur des ressources de calcul sur lesquelles elles sont planifiées. Par exemple, les images Docker basées sur ARM ne peuvent s'exécuter que sur des ressources de calcul basées sur ARM.
      + Les images contenues dans les référentiels publics Amazon ECR utilisent les conventions complètes `registry/repository[:tag]` ou de `registry/repository[@digest]` dénomination (par exemple,`public.ecr.aws/registry_alias/my-web-app:latest`).
      + Les images contenues dans les référentiels Amazon ECR utilisent la convention de `registry/repository[:tag]` dénomination complète (par exemple, `aws_account_id.dkr.ecr.region.amazonaws.com``/my-web-app:latest`).
      + Les images dans les référentiels officiels sur Docker Hub utilisent un nom unique (par exemple, `ubuntu` ou `mongo`).
      + Les images dans les autres référentiels sur Docker Hub sont qualifiées par un nom d'organisation (par exemple, `amazon/amazon-ecs-agent`).
      + Les images dans les autres référentiels en ligne sont qualifiées par un nom de domaine (par exemple, `quay.io/assemblyline/ubuntu`).

   1. Pour **Command**, entrez les commandes dans le champ en tant qu'équivalent dans un tableau de chaînes **JSON**.

      Ce paramètre correspond à `Cmd` dans la section [Create a container (Création d'un conteneur)](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de [Docker Remote API (API distante Docker)](https://docs.docker.com/engine/api/v1.38/) et au paramètre `COMMAND` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Pour plus d'informations sur le Docker `CMD` paramètre, consultez [https://docs.docker.com/engine/reference/builder/](https://docs.docker.com/engine/reference/builder/#cmd) \$1cmd.
**Note**  
Vous pouvez utiliser des valeurs par défaut pour la substitution de paramètres et des espaces réservés dans votre commande. Pour de plus amples informations, veuillez consulter [Paramètres](job_definition_parameters.md#parameters).

   1. (Facultatif) Pour **le rôle d'exécution**, spécifiez un rôle IAM qui autorise les agents de conteneur Amazon ECS à effectuer des appels d' AWS API en votre nom. Cette fonctionnalité utilise les rôles IAM d'Amazon ECS pour les tâches. Pour plus d'informations, consultez les [rôles IAM d'exécution de tâches Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) dans le manuel *Amazon Elastic Container Service Developer Guide*. 

   1. Pour la **configuration du rôle Job**, choisissez un rôle IAM autorisé à accéder au AWS APIs. Cette fonctionnalité utilise les rôles IAM d'Amazon ECS pour les tâches. Pour plus d’informations, consultez [Rôles IAM pour les tâches](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dans le *Guide du développeur Amazon Elastic Container Service*.
**Note**  
Seuls les rôles dotés d'une relation de confiance avec **Amazon Elastic Container Service Task** Role sont présentés ici. Pour plus d'informations sur la création d'un rôle IAM pour vos AWS Batch tâches, consultez la section [Création d'un rôle IAM et d'une politique pour vos tâches](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role) dans le manuel *Amazon Elastic Container Service Developer Guide*.

1. Pour **Paramètres**, choisissez **Ajouter des paramètres** pour ajouter des espaces réservés de substitution de paramètres sous forme de paires **clé** et **valeur** facultatives.

1. Dans la section **Configuration de l'environnement** :

   1. Pour **v CPUs**, entrez le nombre de v CPUs à réserver pour le conteneur. Ce paramètre correspond à `CpuShares` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Créer un conteneur) de l'[API Docker à distance](https://docs.docker.com/engine/api/v1.38/) et l'option `--cpu-shares` correspond à [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Chaque processeur virtuel est équivalente à 1 024 parts de processeur. Vous devez spécifier au moins un vCPU.

   1. Pour **Mémoire**, entrez la limite de mémoire disponible pour le conteneur. Si votre conteneur tente de dépasser la quantité de mémoire spécifiée ici, il est arrêté. Ce paramètre correspond à `Memory` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Créer un conteneur) de l'[API Docker à distance](https://docs.docker.com/engine/api/v1.38/) et l'option `--memory` correspond à [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Vous devez spécifier au moins 4 Mio de mémoire pour une tâche.
**Note**  
Pour optimiser l'utilisation de vos ressources, donnez la priorité à la mémoire pour les tâches d'un type d'instance spécifique. Pour de plus amples informations, veuillez consulter [Gestion de la mémoire des ressources informatiques](memory-management.md).

   1. Dans **le champ Nombre de GPUs**, choisissez le nombre de GPUs à réserver pour le conteneur.

   1. (Facultatif) Pour les **variables d'environnement**, choisissez **Ajouter une variable d'environnement** pour ajouter des variables d'environnement sous forme de paires nom-valeur. Ces variables sont transmises au conteneur.

   1. (Facultatif) Pour **les secrets**, choisissez **Ajouter un secret** pour ajouter des secrets sous forme de paires nom-valeur. Ces secrets sont exposés dans le contenant. [Pour plus d'informations, consultez : LogConfiguration SecretOptions.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

1. Choisissez **Page suivante**.

1. Dans la section **de configuration Linux** :

   1. Dans **Interface**, saisissez le nom d'utilisateur à utiliser à l'intérieur du conteneur. Ce paramètre correspond à `User` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Créer un conteneur) de l'[API Docker à distance](https://docs.docker.com/engine/api/v1.38/) et l'option `--user` correspond à [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).

   1. (Facultatif) Pour accorder au conteneur de tâches des autorisations élevées sur l'instance hôte (comme pour l'`root`utilisateur), faites glisser le curseur **Privileged** vers la droite. Ce paramètre correspond à `Privileged` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Créer un conteneur) de l'[API Docker à distance](https://docs.docker.com/engine/api/v1.38/) et l'option `--privileged` correspond à [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).

   1. (Facultatif) **Activez Activer le processus d'initialisation** pour exécuter un `init` processus dans le conteneur. Ce processus transmet les signaux et récolte les processus.

1. (Facultatif) Dans la section **Configuration du système de fichiers** :

   1. **Activez l'option Activer le système de fichiers en lecture seule** pour supprimer l'accès en écriture au volume.

   1. Pour **Taille de la mémoire partagée**, entrez la taille (en MiB) du `/dev/shm` volume.

   1. Pour **Taille maximale de swap**, entrez la quantité totale de mémoire d'échange (en MiB) que le conteneur peut utiliser.

   1. Pour **Swappiness**, entrez une valeur comprise entre 0 et 100 pour indiquer le comportement de swappiness du conteneur. Si vous ne spécifiez aucune valeur et que le swap est activé, la valeur par défaut est 60. [Pour plus d'informations, consultez : LinuxParameters swappiness.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LinuxParameters.html#Batch-Type-LinuxParameters-swappiness)

   1. (Facultatif) Développez **la configuration supplémentaire**.

   1. (Facultatif) Pour les fichiers **Tmpfs**, choisissez **Ajouter des fichiers tmpfs** pour ajouter un montage. `tmpfs`

   1. (Facultatif) Pour **Appareils**, choisissez **Ajouter un appareil** pour ajouter un appareil :

      1. Sous **Chemin du conteneur**, spécifiez le chemin d'accès de l'instance du conteneur pour exposer l'appareil mappé à l'instance de l'hôte. Si vous laissez ce champ vide, le chemin de l'hôte est utilisé dans le conteneur.

      1. Sous **Host path (Chemin de l'hôte)**, spécifiez le chemin d'accès d'un appareil dans l'instance de l'hôte.

      1. Pour **Autorisations**, choisissez une ou plusieurs autorisations à appliquer à l'appareil. Les autorisations disponibles sont **READ**, **WRITE** et **MKNOD**.

   1. (Facultatif) Pour **la configuration des volumes**, choisissez **Ajouter un volume** pour créer une liste de volumes à transmettre au conteneur. Entrez **le nom** et le **chemin source** du volume, puis choisissez **Ajouter un volume**. Vous pouvez également choisir d'activer **Activer EFS**.

   1. (Facultatif) Pour les **points de montage**, choisissez **Ajouter une configuration de points de montage** pour ajouter des points de montage pour les volumes de données. Vous devez spécifier le volume source et le chemin du conteneur. Ces points de montage sont transmis Docker daemon à une instance de conteneur. Vous pouvez également choisir de rendre le volume en **lecture seule**.

   1. (Facultatif) Pour **la configuration Ulimits**, choisissez **Add ulimit** pour ajouter une `ulimits` valeur au conteneur. Entrez les valeurs **Nom**, **Limite souple** et **Limite stricte**, puis choisissez **Ajouter une limite**.

1. Dans la section **Propriétés de la tâche** :

   1. Pour **Rôle d'exécution - conditionnel**, choisissez un rôle pour autoriser les agents Amazon ECS à effectuer des appels d' AWS API en votre nom. Pour plus d'informations sur la création d'un **rôle d'exécution**, consultez[Tutoriel : Création du rôle d'exécution IAM](create-execution-role.md).

   1. Choisissez la **commande Enable ECS execute** pour permettre l'accès direct au shell du conteneur Amazon ECS et contourner le système d'exploitation hôte. Vous devez choisir un **rôle de tâche**.
**Important**  
La commande **ECS execute** nécessite que le système de fichiers soit accessible en écriture. 

   1. Pour **le rôle Task**, choisissez un rôle Amazon ECS Identity and Access Management (IAM) pour autoriser le conteneur à effectuer des appels d' AWS API en votre nom. Pour plus d'informations, consultez le [rôle IAM de la tâche Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dans le *manuel du développeur Amazon Elastic Container Service*.

1. (Facultatif) Dans la section **Configuration de la journalisation** :

   1. Pour **Log driver**, choisissez le log driver à utiliser. [Pour plus d'informations sur les pilotes de journal disponibles, voir : LogDriverLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)
**Note**  
Par défaut, le pilote de `awslogs` journal est utilisé.

   1. Pour **Options**, choisissez **Ajouter une option** pour ajouter une option. Entrez une paire nom-valeur, puis choisissez **Ajouter** une option.

   1. Pour **Secrets**, choisissez **Ajouter un secret**. Entrez une paire nom-valeur, puis choisissez **Ajouter un secret** pour ajouter un secret.
**Astuce**  
[Pour plus d'informations, consultez : LogConfiguration SecretOptions.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

1. Choisissez **Page suivante**.

1. Pour la **révision de la définition du Job**, passez en revue les étapes de configuration. Si vous devez apporter des modifications, choisissez **Modifier**. Lorsque vous avez terminé, choisissez **Créer une définition de tâche**.

# Création d'une définition de tâche à nœud unique sur les ressources Fargate
<a name="create-job-definition-Fargate"></a>

Procédez comme suit pour créer une définition de tâche à nœud unique sur les AWS Fargate ressources.

**Pour créer une nouvelle définition de tâche sur les ressources Fargate :**

1. Ouvrez la AWS Batch console à l'adresse [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Dans la barre de navigation supérieure, choisissez le Région AWS à utiliser.

1. Dans le volet de navigation de gauche, choisissez **Job definitions**.

1. Choisissez **Créer**.

1. Pour le **type d'orchestration**, choisissez **Fargate**. Pour de plus amples informations, veuillez consulter [Environnements informatiques Fargate](fargate.md).

1. Dans **Nom**, entrez un nom unique pour votre définition de tâche. Le nom peut comporter jusqu'à 128 caractères. Il peut contenir des lettres majuscules et minuscules, des chiffres, des traits d'union (-) et des traits de soulignement (\$1).

1. (Facultatif) Pour le **délai d'exécution**, entrez la valeur du délai d'expiration (en secondes). Le délai d'exécution est le délai avant la fin d'une tâche inachevée. Si une tentative dépasse le délai imparti, elle est arrêtée et passe à un `FAILED` statut. Pour de plus amples informations, veuillez consulter [Expiration des délais d'exécution des tâches](job_timeouts.md). La valeur minimale est 60 secondes.

1. (Facultatif) Activez la **priorité de planification**. Entrez une valeur de priorité de planification comprise entre 0 et 100. Les valeurs les plus élevées ont une priorité plus élevée que les valeurs faibles.

1. (Facultatif) Développez les **balises**, puis choisissez **Ajouter une balise** pour ajouter des balises à la ressource. Activez **Propager les balises pour propager les balises** à partir de la tâche et de la définition de la tâche.

1. Dans la section de **configuration de la plateforme Fargate** :

   1. Pour **Runtime Platform**, choisissez l'architecture de l'environnement de calcul.

   1. Pour **Famille de systèmes d'exploitation**, choisissez le système d'exploitation pour l'environnement informatique.

   1. Pour **Architecture du processeur**, choisissez l'architecture vCPU.

   1. Pour la version **de la plateforme Fargate**, `LATEST` entrez ou une version d'environnement d'exécution spécifique.

   1. (Facultatif) Activez l'option **Attribuer une adresse IP publique** pour attribuer une adresse IP publique à une interface réseau de tâches Fargate. Pour qu'une tâche exécutée dans un sous-réseau privé envoie du trafic sortant vers Internet, le sous-réseau privé nécessite qu'une passerelle NAT soit attachée pour acheminer les demandes vers Internet. Vous pouvez le faire afin de pouvoir extraire des images de conteneurs. Pour plus d'informations, consultez [Mise en réseau des tâches Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) dans le *Guide du développeur Amazon Elastic Container Service*.

   1. (Facultatif) Pour **Stockage éphémère, entrez la quantité de stockage** éphémère à allouer à la tâche. La quantité de stockage éphémère doit être comprise entre 21 GiB et 200 GiB. Par défaut, 20 GiB de stockage éphémère sont alloués si vous ne saisissez aucune valeur.
**Note**  
Le stockage éphémère nécessite la version 1.4 ou ultérieure de la plateforme Fargate.

   1. Pour **le rôle d'exécution**, spécifiez un rôle IAM qui autorise le conteneur Amazon ECS et les agents Fargate à AWS effectuer des appels d'API en votre nom. Cette fonctionnalité utilise les rôles IAM d'Amazon ECS pour la fonctionnalité des tâches. Pour plus d'informations, notamment sur les prérequis de configuration, consultez les [rôles IAM d'exécution de tâches Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) dans le manuel *Amazon Elastic Container Service Developer Guide*. 

   1. Pour les **tentatives de tâche**, entrez le nombre de AWS Batch tentatives de transfert de la tâche vers un `RUNNABLE` statut. Entrez un nombre compris entre 1 et 10.

   1. (Facultatif) Pour les **conditions de la stratégie Réessayer**, choisissez **Ajouter une évaluation à la sortie**. Entrez au moins une valeur de paramètre, puis choisissez une **action**. Pour chaque ensemble de conditions, l'**action** doit être définie sur **Réessayer** ou sur **Quitter**. Ces actions signifient ce qui suit :
      + **Réessayer** — AWS Batch Réessaie jusqu'à ce que le nombre de tentatives de travail que vous avez spécifié soit atteint.
      + **Quitter** : AWS Batch arrête de réessayer la tâche.
**Important**  
Si vous choisissez **Ajouter une évaluation à la sortie**, vous devez configurer au moins un paramètre et choisir une **action** ou choisir **Supprimer l'évaluation à la sortie**.

1. Choisissez **Page suivante**.

1. Dans la section **Configuration du conteneur** :

   1. Dans **Image**, choisissez l'image Docker à utiliser pour votre travail. Par défaut, les images dans le registre Docker Hub sont disponibles. Vous pouvez également spécifier d'autres référentiels avec `repository-url/image:tag`. Le nom peut comporter jusqu'à 225 caractères. Il peut contenir des majuscules et des minuscules, des chiffres, des tirets (-), des traits de soulignement (\$1), deux points (:), des points (.), des barres obliques (/) et des signes dièse (\$1). Ce paramètre se mappe à `Image` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Création d'un conteneur) de [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) (L'API Docker à distance) et le paramètre `IMAGE` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).
**Note**  
L'architecture des images Docker doit correspondre à l'architecture du processeur des ressources de calcul sur lesquelles elles sont planifiées. Par exemple, les images Docker basées sur ARM ne peuvent s'exécuter que sur des ressources de calcul basées sur ARM.
      + Les images contenues dans les référentiels publics Amazon ECR utilisent les conventions complètes `registry/repository[:tag]` ou de `registry/repository[@digest]` dénomination (par exemple,`public.ecr.aws/registry_alias/my-web-app:latest`).
      + Les images contenues dans les référentiels Amazon ECR utilisent la convention de `registry/repository[:tag]` dénomination complète (par exemple, `aws_account_id.dkr.ecr.region.amazonaws.com``/my-web-app:latest`).
      + Les images dans les référentiels officiels sur Docker Hub utilisent un nom unique (par exemple, `ubuntu` ou `mongo`).
      + Les images dans les autres référentiels sur Docker Hub sont qualifiées par un nom d'organisation (par exemple, `amazon/amazon-ecs-agent`).
      + Les images dans les autres référentiels en ligne sont qualifiées par un nom de domaine (par exemple, `quay.io/assemblyline/ubuntu`).

   1. Pour **Command**, entrez les commandes dans le champ en tant qu'équivalent dans un tableau de chaînes JSON.

      Ce paramètre correspond à `Cmd` dans la section [Create a container (Création d'un conteneur)](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de [Docker Remote API (API distante Docker)](https://docs.docker.com/engine/api/v1.38/) et au paramètre `COMMAND` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Pour plus d'informations sur le Docker `CMD` paramètre, consultez [https://docs.docker.com/engine/reference/builder/](https://docs.docker.com/engine/reference/builder/#cmd) \$1cmd.
**Note**  
Vous pouvez utiliser des valeurs par défaut pour la substitution de paramètres et des espaces réservés dans votre commande. Pour de plus amples informations, veuillez consulter [Paramètres](job_definition_parameters.md#parameters).

   1. (Facultatif) Ajoutez des paramètres à la définition de tâche sous forme de mappages nom-valeur pour remplacer les valeurs par défaut de définition de tâche. Pour ajouter un paramètre :

      1. Pour **Paramètres**, choisissez **Ajouter des paramètres**, entrez une paire nom-valeur, puis choisissez **Ajouter** un paramètre.
**Important**  
Si vous choisissez **Ajouter un paramètre**, vous devez configurer au moins un paramètre ou choisir **Supprimer le paramètre**

   1. Dans la section **Configuration de l'environnement** :

      

      1. Pour la **configuration du rôle Job**, choisissez un rôle IAM autorisé à. AWS APIs Cette fonctionnalité utilise les rôles IAM d'Amazon ECS pour la fonctionnalité des tâches. Pour plus d’informations, consultez [Rôles IAM pour les tâches](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dans le *Guide du développeur Amazon Elastic Container Service*.
**Note**  
Seuls les rôles dotés d'une relation de confiance avec **Amazon Elastic Container Service Task** Role sont présentés ici. Pour plus d'informations sur la création d'un rôle IAM pour vos AWS Batch tâches, consultez la section [Création d'un rôle IAM et d'une politique pour vos tâches](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role) dans le manuel *Amazon Elastic Container Service Developer Guide*.

      1. Pour **v CPUs**, entrez le nombre de v CPUs à réserver pour le conteneur. Ce paramètre correspond à `CpuShares` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Créer un conteneur) de l'[API Docker à distance](https://docs.docker.com/engine/api/v1.38/) et l'option `--cpu-shares` correspond à [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Chaque processeur virtuel est équivalente à 1 024 parts de processeur. Vous devez spécifier au moins un vCPU.

      1. Pour **Mémoire**, entrez la limite de mémoire disponible pour le conteneur. Si votre conteneur tente de dépasser la mémoire spécifiée ici, il est arrêté. Ce paramètre correspond à `Memory` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Créer un conteneur) de l'[API Docker à distance](https://docs.docker.com/engine/api/v1.38/) et l'option `--memory` correspond à [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Vous devez spécifier au moins 4 Mio de mémoire pour une tâche.

         Si vous utilisez la surveillance du temps GuardDuty d'exécution, l'agent de GuardDuty sécurité est légèrement surchargé en mémoire. La limite de mémoire doit donc inclure la taille de l'agent GuardDuty de sécurité. Pour plus d'informations sur les limites de mémoire des agents de GuardDuty sécurité, consultez la section [Limites de processeur et de mémoire](https://docs.aws.amazon.com/guardduty/latest/ug/prereq-runtime-monitoring-ecs-support.html#ecs-runtime-agent-cpu-memory-limits) dans le *Guide de GuardDuty l'utilisateur*. Pour plus d'informations sur les meilleures pratiques, consultez la section [Comment corriger les erreurs liées au manque de mémoire sur mes tâches Fargate après avoir activé la surveillance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-guard-duty-troubleshooting.html#memory-error) du temps d'exécution dans le manuel *Amazon* ECS Developer Guide.
**Note**  
Pour optimiser l'utilisation de vos ressources, donnez la priorité à la mémoire pour les tâches d'un type d'instance spécifique. Pour de plus amples informations, veuillez consulter [Gestion de la mémoire des ressources informatiques](memory-management.md).

   1. (Facultatif) Pour les **variables d'environnement**, choisissez **Ajouter une variable d'environnement** pour ajouter des variables d'environnement sous forme de paires nom-valeur. Ces variables sont transmises au conteneur.

   1. (Facultatif) Pour **les secrets**, choisissez **Ajouter un secret** pour ajouter des secrets sous forme de paires nom-valeur. Ces secrets sont exposés dans le contenant. [Pour plus d'informations, consultez : LogConfiguration SecretOptions.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. Choisissez **Page suivante**.

1. (Facultatif) Dans la section **de configuration Linux** :

   1. Pour **Utilisateur**, entrez un nom d'utilisateur à utiliser dans le conteneur.

   1. **Activez Activer le processus d'initialisation** pour exécuter un processus d'initialisation dans le conteneur. Ce processus transmet les signaux et récolte les processus.

   1. **Activez l'option Activer le système de fichiers en lecture seule** pour supprimer l'accès en écriture au volume.

   1. (Facultatif) Développez **la configuration supplémentaire**.

   1. Pour la **configuration des points de montage**, choisissez **Ajouter une configuration de points de montage** pour ajouter des points de montage pour les volumes de données. Vous devez spécifier le volume source et le chemin du conteneur. Ces points de montage sont transmis Docker daemon à une instance de conteneur.

   1. Pour **la configuration des volumes**, choisissez **Ajouter un volume** pour créer une liste de volumes à transmettre au conteneur. Entrez un **nom** et un **chemin source** pour le volume, puis choisissez **Ajouter un volume**. 

   1. Dans la section **Propriétés de la tâche** :

      1. Pour **Rôle d'exécution - conditionnel**, choisissez un rôle pour autoriser les agents Amazon ECS à effectuer des appels d' AWS API en votre nom. Pour plus d'informations sur la création d'un **rôle d'exécution**, consultez[Tutoriel : Création du rôle d'exécution IAM](create-execution-role.md).

      1. Choisissez la **commande Enable ECS execute** pour permettre l'accès direct au shell du conteneur Amazon ECS et contourner le système d'exploitation hôte. Vous devez choisir un **rôle de tâche**.
**Important**  
La commande **ECS execute** nécessite que le système de fichiers soit accessible en écriture. 

      1. Pour **le rôle Task**, choisissez un rôle Amazon ECS Identity and Access Management (IAM) pour autoriser le conteneur à effectuer des appels d' AWS API en votre nom. Pour plus d'informations, consultez le [rôle IAM de la tâche Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dans le *manuel du développeur Amazon Elastic Container Service*.

   1. Dans la section **Configuration de la journalisation** :

      1. (Facultatif) Pour **Log driver**, choisissez le log driver à utiliser. [Pour plus d'informations sur les pilotes de journal disponibles, voir : LogDriverLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)
**Note**  
Par défaut, le pilote de `awslogs` journal est utilisé.

      1. (Facultatif) Pour **Options**, choisissez **Ajouter une option** pour ajouter une option. Entrez une paire nom-valeur, puis choisissez **Ajouter** une option.

      1. (Facultatif) Pour **Secrets**, choisissez **Ajouter un secret** pour ajouter un secret. Entrez ensuite une paire nom-valeur, puis choisissez **Ajouter** un secret.
**Astuce**  
[Pour plus d'informations, consultez : LogConfiguration SecretOptions.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

1. Choisissez **Page suivante**.

1. Pour la **révision de la définition du Job**, passez en revue les étapes de configuration. Si vous devez apporter des modifications, choisissez **Modifier**. Lorsque vous avez terminé, choisissez **Créer une définition de tâche**.

# Création d'une définition de tâche à nœud unique sur les ressources Amazon EKS
<a name="create-job-definition-eks"></a>

Procédez comme suit pour créer une définition de tâche à nœud unique sur Amazon Elastic Kubernetes Service (Amazon EKS).

**Pour créer une nouvelle définition de tâche sur les ressources Amazon EKS :**

1. Ouvrez la AWS Batch console à l'adresse [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Dans la barre de navigation supérieure, choisissez le Région AWS à utiliser.

1. Dans le volet de navigation de gauche, choisissez **Job definitions**.

1. Choisissez **Créer**.

1. Pour le **type d'orchestration**, choisissez **Elastic Kubernetes Service** (EKS).

1. Dans **Nom**, entrez un nom unique pour votre définition de tâche. Le nom peut comporter jusqu'à 128 caractères. Il peut contenir des lettres majuscules et minuscules, des chiffres, des traits d'union (-) et des traits de soulignement (\$1).

1. (Facultatif) Pour le **délai d'exécution**, entrez la valeur du délai d'expiration (en secondes). Le délai d'exécution est le délai avant la fin d'une tâche inachevée. Si une tentative dépasse le délai imparti, elle est arrêtée et passe à un `FAILED` statut. Pour de plus amples informations, veuillez consulter [Expiration des délais d'exécution des tâches](job_timeouts.md). La valeur minimale est 60 secondes.

1. (Facultatif) Activez la **priorité de planification**. Entrez une valeur de priorité de planification comprise entre 0 et 100. Les valeurs les plus élevées ont une priorité plus élevée que les valeurs faibles.

1. (Facultatif) Développez les **balises**, puis choisissez **Ajouter une balise** pour ajouter des balises à la ressource.

1. Choisissez **Page suivante**.

1. Dans la section des **podpropriétés d'EKS** :

   1. Pour le **nom du compte de service**, entrez un compte qui fournit une identité pour les processus exécutés dans unpod.

   1. Activez le **réseau hôte** pour utiliser le modèle de Kubernetes pod réseau et ouvrez un port d'écoute pour les connexions entrantes. Désactivez ce paramètre pour les communications sortantes uniquement.

   1. Pour la **politique DNS**, choisissez l'une des options suivantes :
      + **Aucune valeur (null)** : pod ignore les paramètres DNS de l'Kubernetesenvironnement.
      + **Par défaut** : pod hérite de la configuration de résolution des noms du nœud sur lequel il s’exécute.
**Note**  
Si aucune politique DNS n’est spécifiée, **Valeur par défaut** n’est pas la politique DNS par défaut. Au lieu de cela, **ClusterFirst**est utilisé.
      + **ClusterFirst**— Toute requête DNS qui ne correspond pas au suffixe de domaine du cluster configuré est transmise au serveur de noms en amont hérité du nœud. 
      + **ClusterFirstWithHostNet**— À utiliser si le **réseau hôte** est activé.

   1. (Facultatif) Pour **Volumes**, sélectionnez **Ajouter un volume**, puis :

      1. Ajoutez un **nom** à votre volume.

      1. (Facultatif) Ajoutez le **chemin de l'hôte** pour le répertoire sur l'hôte. 

      1. (Facultatif) Ajoutez une limite de **taille** et une **limite de taille** pour configurer un [Kubernetes](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) EmptyDir.

      1. (Facultatif) Indiquez un **nom secret** pour le module et indiquez si le secret est **facultatif**.

      1. **(Facultatif) Définissez un **nom de réclamation** pour associer une [réclamation de volume persistant](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) Kubernetes au pod, et indiquez si elle est en lecture seule.**

   1. (Facultatif) Pour les **étiquettes du module**, choisissez **Ajouter des étiquettes du module**, puis entrez une paire nom-valeur. 
**Important**  
Le préfixe d'une étiquette de module ne peut pas contenir `kubernetes.io/``k8s.io/`, ou`batch.amazonaws.com/`.

   1. (Facultatif) Pour les **annotations Pod**, choisissez **Ajouter des annotations**, puis entrez une paire nom-valeur. 
**Important**  
Le préfixe d'une annotation de module ne peut pas contenir `kubernetes.io/``k8s.io/`, ou`batch.amazonaws.com/`.

   1. Choisissez **Page suivante**.

   1. Dans la section **Configuration du conteneur** :

      1. Dans **Nom**, entrez un nom unique pour le conteneur. Le nom doit commencer par une lettre ou un chiffre et peut comporter jusqu'à 63 caractères. Il peut contenir des lettres majuscules et minuscules, des chiffres et des traits d'union (-).

      1. Dans **Image**, choisissez l'Dockerimage à utiliser pour votre travail. Par défaut, les images dans le registre Docker Hub sont disponibles. Vous pouvez également spécifier d'autres référentiels avec `repository-url/image:tag`. Le nom peut comporter jusqu’à 255 caractères. Il peut contenir des majuscules et des minuscules, des chiffres, des tirets (-), des traits de soulignement (\$1), deux points (:), des points (.), des barres obliques (/) et des signes dièse (\$1). Ce paramètre correspond `Image` à la section [Créer un conteneur](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de l'[API Docker Remote](https://docs.docker.com/engine/api/v1.38/) et au `IMAGE` paramètre de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/)
**Note**  
L'architecture des images Docker doit correspondre à l'architecture du processeur des ressources de calcul sur lesquelles elles sont planifiées. Par exemple, les images Docker basées sur ARM ne peuvent s'exécuter que sur des ressources de calcul basées sur ARM.
         + Les images contenues dans les référentiels publics Amazon ECR utilisent les conventions complètes `registry/repository[:tag]` ou de `registry/repository[@digest]` dénomination (par exemple,`public.ecr.aws/registry_alias/my-web-app:latest`).
         + Les images contenues dans les référentiels Amazon ECR utilisent la convention de `registry/repository[:tag]` dénomination complète (par exemple, `aws_account_id.dkr.ecr.region.amazonaws.com``/my-web-app:latest`).
         + Les images dans les référentiels officiels sur Docker Hub utilisent un nom unique (par exemple, `ubuntu` ou `mongo`).
         + Les images dans les autres référentiels sur Docker Hub sont qualifiées par un nom d'organisation (par exemple, `amazon/amazon-ecs-agent`).
         + Les images dans les autres référentiels en ligne sont qualifiées par un nom de domaine (par exemple, `quay.io/assemblyline/ubuntu`).

      1. (Facultatif) Pour la **politique d'extraction** d'images, choisissez quand les images sont extraites.

      1. (Facultatif) Dans **Commande**, entrez une JSON commande à transmettre au conteneur.

      1. (Facultatif) **Dans Arguments**, entrez les arguments à transmettre au conteneur. Si aucun argument n'est fourni, la commande container image est utilisée.

   1. (Facultatif) Vous pouvez ajouter des paramètres à la définition de tâche sous forme de mappages nom-valeur pour remplacer les valeurs par défaut de définition de tâche. Pour ajouter un paramètre :

      1. Pour **Paramètres**, entrez une paire nom-valeur, puis choisissez **Ajouter** un paramètre.
**Important**  
Si vous choisissez **Ajouter un paramètre**, vous devez configurer au moins un paramètre ou choisir **Supprimer le paramètre**

   1. Dans la section **Configuration de l'environnement** :

      1. Pour **v CPUs**, entrez le nombre de v CPUs à réserver pour le conteneur. Ce paramètre correspond à `CpuShares` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Créer un conteneur) de l'[API Docker à distance](https://docs.docker.com/engine/api/v1.38/) et l'option `--cpu-shares` correspond à [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Chaque processeur virtuel est équivalente à 1 024 parts de processeur. Vous devez spécifier au moins un vCPU.

      1. Pour **Mémoire**, entrez la limite de mémoire disponible pour le conteneur. Si votre conteneur tente de dépasser la mémoire spécifiée ici, il est arrêté. Ce paramètre correspond à `Memory` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Créer un conteneur) de l'[API Docker à distance](https://docs.docker.com/engine/api/v1.38/) et l'option `--memory` correspond à [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Vous devez spécifier au moins 4 Mio de mémoire pour une tâche.
**Note**  
Pour optimiser l'utilisation de vos ressources, donnez la priorité à la mémoire pour les tâches d'un type d'instance spécifique. Pour de plus amples informations, veuillez consulter [Gestion de la mémoire des ressources informatiques](memory-management.md).

   1. (Facultatif) Pour les **variables d'environnement**, choisissez **Ajouter une variable d'environnement** pour ajouter des variables d'environnement sous forme de paires nom-valeur. Ces variables sont transmises au conteneur.

   1. (Facultatif) Pour **le montage du volume** :

      1. Choisissez **Ajouter un montage de volume**.

      1. Entrez un **nom**, puis un **chemin de montage** dans le conteneur dans lequel le volume est monté. Entrez a **SubPath**pour spécifier un sous-chemin à l'intérieur du volume référencé au lieu de sa racine. 

      1. Choisissez **Lecture seule** pour supprimer les autorisations d'écriture sur le volume.

      1. Choisissez **Ajouter un montage de volume**.

   1. (Facultatif) Pour **Exécuter en tant qu'utilisateur**, entrez un ID utilisateur pour exécuter le processus de conteneur.
**Note**  
L'ID utilisateur doit figurer dans l'image pour que le conteneur puisse fonctionner.

   1. (Facultatif) Pour **Exécuter en tant que groupe**, entrez un ID de groupe pour exécuter le runtime du processus de conteneur.
**Note**  
L'ID de groupe doit exister dans l'image pour que le conteneur puisse fonctionner.

   1. (Facultatif) Pour accorder au conteneur de votre tâche des autorisations élevées sur l'instance hôte (comme pour l'`root`utilisateur), faites glisser le curseur **Privileged** vers la droite. Ce paramètre correspond à `Privileged` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Créer un conteneur) de l'[API Docker à distance](https://docs.docker.com/engine/api/v1.38/) et l'option `--privileged` correspond à [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).

   1. (Facultatif) Activez le système de **fichiers racine en lecture seule pour supprimer l'accès en écriture au système** de fichiers racine.

   1. (Facultatif) Activez **Exécuter en tant qu'utilisateur non-root** pour exécuter les conteneurs en pod tant qu'utilisateur non-root.
**Note**  
Si l'**option Exécuter en tant que non-root** est activée, l'image est kubelet validée au moment de l'exécution pour vérifier qu'elle ne s'exécute pas avec l'UID 0. 

   1. Choisissez **Page suivante**.

1. Pour la **révision de la définition du Job**, passez en revue les étapes de configuration. Si vous devez apporter des modifications, choisissez **Modifier**. Lorsque vous avez terminé, choisissez **Créer une définition de tâche**.

# Création d'une définition de tâche à nœud unique avec plusieurs conteneurs sur les ressources Amazon EC2
<a name="create-job-definition-single-node-multi-container"></a>

Procédez comme suit pour créer une définition de tâche à nœud unique avec plusieurs conteneurs sur les ressources Amazon Elastic Compute Cloud (Amazon EC2).

**Pour créer une nouvelle définition de tâche sur les ressources Amazon EC2 :**

1. Ouvrez la AWS Batch console à l'adresse [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Dans la barre de navigation, choisissez le Région AWS à utiliser.

1. Dans le volet de navigation de gauche, choisissez **Job definitions**.

1. Choisissez **Créer**.

1. Pour le **type d'orchestration,** choisissez **Amazon Elastic Compute Cloud (Amazon EC2).**

1. Pour la **structure de définition du Job**, désactivez le traitement de la **structure Use legacy ContainerProperties**.

1. Pour la **configuration de la plate-forme EC2**, désactivez l'**option Activer le traitement parallèle à nœuds multiples**.

1. Choisissez **Suivant**.

1. Dans la section **Configuration générale**, entrez ce qui suit :

   1. Dans **Nom**, entrez un nom unique pour votre définition de tâche. Le nom peut comporter jusqu'à 128 caractères. Il peut contenir des lettres majuscules et minuscules, des chiffres, des traits d'union (-) et des traits de soulignement (\$1).

   1. Pour **Execution timeout (*facultatif)***, entrez la valeur du délai (en secondes). Le délai d'exécution est le délai avant la fin d'une tâche inachevée. Si une tentative dépasse le délai imparti, elle est arrêtée et passe à un `FAILED` statut. Pour de plus amples informations, veuillez consulter [Expiration des délais d'exécution des tâches](job_timeouts.md). La valeur minimale est 60 secondes.

   1. Activez la **priorité de planification *(facultatif)***. Entrez une valeur de priorité de planification comprise entre 0 et 100. Les valeurs les plus élevées reçoivent une priorité plus élevée.

   1. Développer les **balises : *facultatif***, puis choisissez **Ajouter une balise** pour ajouter des balises à la ressource. Entrez une clé et une valeur facultative, puis choisissez **Ajouter une étiquette**.

   1. Activez les **balises de propagation** pour propager les balises de la tâche et de la définition de la tâche vers la tâche Amazon ECS.

1. Dans la section **Stratégie de réessayer - *facultatif***, entrez ce qui suit :

   1. Pour les **tentatives de tâche**, entrez le nombre de AWS Batch tentatives de transfert de la tâche vers le `RUNNABLE` statut. Entrez un nombre compris entre 1 et 10.

   1. Pour les **conditions de la stratégie Réessayer**, choisissez **Ajouter une évaluation à la sortie**. Entrez au moins une valeur de paramètre, puis choisissez une **action**. Pour chaque ensemble de conditions, l'**action** doit être définie sur **Réessayer** ou sur **Quitter**. Ces actions signifient ce qui suit :
      + **Réessayer** — AWS Batch Réessaie jusqu'à ce que le nombre de tentatives de travail que vous avez spécifié soit atteint.
      + **Quitter** : AWS Batch arrête de réessayer la tâche.
**Important**  
Si vous choisissez **Ajouter une évaluation à la sortie**, vous devez configurer au moins un paramètre et soit choisir une **action**, soit choisir **Supprimer l'évaluation à la sortie**.

1. Dans la section **Propriétés de la tâche**, entrez les informations suivantes :

   1. Pour **Rôle d'exécution - *conditionnel***, choisissez un rôle pour autoriser les agents Amazon ECS à effectuer des appels d' AWS API en votre nom. Pour plus d'informations sur la création d'un **rôle d'exécution**, consultez[Tutoriel : Création du rôle d'exécution IAM](create-execution-role.md).

   1. Choisissez la **commande Enable ECS execute** pour permettre l'accès direct au shell du conteneur Amazon ECS et contourner le système d'exploitation hôte. Vous devez choisir un **rôle de tâche**.
**Important**  
La commande **ECS execute** nécessite que le système de fichiers soit accessible en écriture. 

   1. Pour **le rôle Task**, choisissez un rôle Amazon ECS Identity and Access Management (IAM) pour autoriser le conteneur à effectuer des appels d' AWS API en votre nom. Pour plus d'informations, consultez le [rôle IAM de la tâche Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dans le *manuel du développeur Amazon Elastic Container Service*.

   1. Pour le **mode IPC**`host`, sélectionnez`task`, ou`none`. Si cette option `host` est spécifiée, tous les conteneurs inclus dans les tâches qui ont spécifié le mode IPC hôte sur la même instance de conteneur partagent les mêmes ressources IPC avec l'instance hôte Amazon EC2. Si une tâche est spécifiée, tous les conteneurs qui se trouvent dans la tâche spécifiée partagent les mêmes ressources IPC. Si aucune n'est spécifiée, les ressources IPC présentes dans les conteneurs d'une tâche sont privées et ne sont pas partagées avec les autres conteneurs d'une tâche ou de l'instance de conteneur. Si aucune valeur n'est spécifiée, le partage de l'espace de noms de ressource IPC dépend du paramètre du démon Docker sur l'instance de conteneur.

   1. Pour le **mode PID**, choisissez `host` ou`task`. Par exemple, la surveillance des sidecars peut avoir besoin de `pidMode` pour accéder à des informations sur d'autres conteneurs exécutés dans le cadre de la même tâche. Si cette `host` option est spécifiée, tous les conteneurs des tâches qui ont spécifié le mode PID hôte sur la même instance de conteneur partagent le même espace de noms de processus avec l'instance hôte Amazon EC2. Si `task` est spécifié, tous les conteneurs de la tâche spécifiée partagent le même espace de noms de processus. Si aucune valeur n'est spécifiée, la valeur par défaut est un espace de noms privé pour chaque conteneur. 

1. Dans la section **Ressources consommables**, entrez ce qui suit :

   1. Entrez un **nom** unique et la **valeur demandée**.

   1. Vous pouvez ajouter d'autres ressources consommables en choisissant **Ajouter une ressource consommable**.

1. Dans la section **Stockage**, entrez les informations suivantes :

   1. Entrez un **nom** et un **chemin source** pour le volume, puis choisissez **Ajouter un volume**. Vous pouvez également choisir d'activer Activer EFS.

   1. Vous pouvez ajouter d'autres volumes en choisissant **Ajouter un volume**.

1. Pour **Paramètres**, choisissez **Ajouter des paramètres** pour ajouter des espaces réservés de substitution de paramètres sous forme de paires **clé** et **valeur** facultatives.

1. Choisissez **Page suivante**.

1. Dans la section **Configuration du conteneur** :

   1. Pour **Name** (Nom), saisissez un nom pour le conteneur.

   1. Pour **le conteneur essentiel**, activez si le contenant est essentiel.

   1. Dans **Image**, choisissez l'Dockerimage à utiliser pour votre travail. Par défaut, les images dans le registre Docker Hub sont disponibles. Vous pouvez également spécifier d'autres référentiels avec `repository-url/image:tag`. Le nom peut comporter jusqu'à 225 caractères. Il peut contenir des lettres majuscules et minuscules, des chiffres, des traits d'union (-), des traits de soulignement (\$1), des deux-points (:), des barres obliques (/) et des signes numériques (\$1). Ce paramètre se mappe à `Image` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Création d'un conteneur) de [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) (L'API Docker à distance) et le paramètre `IMAGE` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).
**Note**  
L'architecture des images Docker doit correspondre à l'architecture du processeur des ressources de calcul sur lesquelles elles sont planifiées. Par exemple, les images Docker basées sur ARM ne peuvent s'exécuter que sur des ressources de calcul basées sur ARM.
      + Les images contenues dans les référentiels publics Amazon ECR utilisent les conventions complètes `registry/repository[:tag]` ou de `registry/repository[@digest]` dénomination (par exemple,`public.ecr.aws/registry_alias/my-web-app:latest`).
      + Les images contenues dans les référentiels Amazon ECR utilisent la convention de `registry/repository[:tag]` dénomination complète (par exemple, `aws_account_id.dkr.ecr.region.amazonaws.com``/my-web-app:latest`).
      + Les images dans les référentiels officiels sur Docker Hub utilisent un nom unique (par exemple, `ubuntu` ou `mongo`).
      + Les images dans les autres référentiels sur Docker Hub sont qualifiées par un nom d'organisation (par exemple, `amazon/amazon-ecs-agent`).
      + Les images dans les autres référentiels en ligne sont qualifiées par un nom de domaine (par exemple, `quay.io/assemblyline/ubuntu`).

   1. Pour les **besoins en ressources**, configurez chacune des options suivantes :

      1. Pour **v CPUs**, choisissez le numéro de CPUs pour le conteneur.

      1. Pour **Mémoire**, choisissez la quantité de mémoire pour le conteneur.

      1. Pour le **GPU, *en option***, choisissez le nombre de GPUs pour le conteneur.

   1. Dans **Interface**, saisissez le nom d'utilisateur à utiliser à l'intérieur du conteneur.

   1. **Activez l'option Activer le système de fichiers en lecture seule** pour supprimer l'accès en écriture au volume.

   1. Activez **Privileged** pour accorder au conteneur de tâches des autorisations élevées sur l'instance hôte, comme pour l'utilisateur root. 

   1. Pour **Command**, entrez les commandes dans le champ en tant qu'équivalent dans un tableau de chaînes **JSON**.

      Ce paramètre correspond à `Cmd` dans la section [Create a container (Création d'un conteneur)](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de [Docker Remote API (API distante Docker)](https://docs.docker.com/engine/api/v1.38/) et au paramètre `COMMAND` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Pour plus d'informations sur le Docker `CMD` paramètre, consultez [https://docs.docker.com/engine/reference/builder/](https://docs.docker.com/engine/reference/builder/#cmd) \$1cmd.
**Note**  
Vous pouvez utiliser des valeurs par défaut pour la substitution de paramètres et des espaces réservés dans votre commande. Pour de plus amples informations, veuillez consulter [Paramètres](job_definition_parameters.md#parameters).

   1. Pour les **informations d'identification du référentiel *(facultatif)***, entrez l'ARN du secret contenant vos informations d'identification.

   1. Pour les **variables d'environnement *(facultatif)***, choisissez **Ajouter des variables** d'environnement pour ajouter des variables d'environnement à transmettre au conteneur.

   1. Dans la section **Paramètres Linux - *facultatif*** :

      1. **Activez Activer le processus d'initialisation** pour exécuter un processus d'initialisation dans le conteneur. 

      1. Pour **Taille de la mémoire partagée**, entrez la taille (en MiB) du volume /dev/shm

      1. Pour **Taille maximale de swap**, entrez la quantité totale de mémoire d'échange (en MiB) que le conteneur peut utiliser.

      1. Pour **Swappiness**, entrez une valeur comprise entre 0 et 100 pour indiquer le comportement de swappiness du conteneur. Si vous ne spécifiez aucune valeur et que le swap est activé, la valeur par défaut est 60. 

      1. Pour **Appareils**, choisissez **Ajouter un appareil** pour ajouter un appareil :

         1. Sous **Chemin du conteneur**, spécifiez le chemin d'accès de l'instance du conteneur pour exposer l'appareil mappé à l'instance de l'hôte. Si vous laissez ce champ vide, le chemin de l'hôte est utilisé dans le conteneur.

         1. Sous **Host path (Chemin de l'hôte)**, spécifiez le chemin d'accès d'un appareil dans l'instance de l'hôte.

         1. Pour **Autorisations**, choisissez une ou plusieurs autorisations à appliquer à l'appareil. Les autorisations disponibles sont **READ**, **WRITE** et **MKNOD**.

      1. Pour **Tmpfs**, choisissez **Ajouter des tmpfs** pour ajouter un montage. `tmpfs`

   1. 
**Note**  
L'enregistrement de Firelens doit être effectué dans un conteneur dédié. Pour configurer la journalisation de Firelens :  
Dans chaque conteneur, à l'exception de votre conteneur Firelens dédié, configurez le pilote **Logging** sur `awsfirelens`
*Dans votre conteneur Firelens, définissez la configuration **Firelens (facultative) et la configuration de journalisation (facultative)** pour la **destination de journalisation**.*

      Dans la section **Configuration de Firelens - optionnelle :**
**Important**  
AWS Batch applique le mode `host` réseau aux tâches Amazon ECS autres que MNP et Fargate. [L'utilisateur root est requis](https://github.com/aws/aws-for-fluent-bit/blob/mainline/troubleshooting/debugging.md#amazon-ecs-firelens-root-is-required) pour Amazon ECS Firelens. Lors de l'exécution de tâches utilisant le mode `host` réseau, Amazon ECS déconseille d'exécuter des conteneurs en utilisant l'utilisateur root (UID 0) pour [une meilleure sécurité](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#network_mode). Par conséquent, toutes les tâches ECS autres que MNP et Fargate avec journalisation Firelens ne respecteront pas les meilleures pratiques en matière de sécurité.

      1. Pour **Type**, choisissez `fluentd` soit`fluentbit`. 

      1. Dans le **champ Options**, entrez la name/value paire de l'option. Vous pouvez ajouter d'autres **options** à l'aide de l'**option Ajouté**.

   1.  Dans la section **Configuration de la journalisation - *optionnelle*** :

      1. Pour **Log driver**, choisissez le log driver à utiliser. [Pour plus d'informations sur les pilotes de journal disponibles, voir : LogDriverLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)
**Note**  
Par défaut, le pilote de `awslogs` journal est utilisé.

      1. Pour **Options**, choisissez **Ajouter une option** pour ajouter une option. Entrez une paire nom-valeur, puis choisissez **Ajouter** une option.

      1. Pour **Secrets**, choisissez **Ajouter un secret**. Entrez une paire nom-valeur, puis choisissez **Ajouter un secret** pour ajouter un secret.
**Astuce**  
[Pour plus d'informations, consultez : LogConfiguration SecretOptions.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. Pour **Points de montage *(facultatif)***, choisissez **Ajouter des points de montage** pour ajouter des points de montage pour les volumes de données. Vous devez spécifier le volume source et le chemin du conteneur. 

   1. Pour les **secrets *(facultatif)***, choisissez **Ajouter un secret** pour ajouter un secret. Entrez ensuite une paire nom-valeur, puis choisissez **Ajouter** un secret.
**Astuce**  
[Pour plus d'informations, consultez : LogConfiguration SecretOptions.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. Pour **Ulimits *(facultatif)***, choisissez **Add ulimit** pour ajouter une `ulimits` valeur au conteneur. Entrez les valeurs **Nom**, **Limite souple** et **Limite stricte**, puis choisissez **Ajouter une limite**.

   1. Pour **Dépendances *(facultatif)***, choisissez **Ajouter des dépendances de conteneur**. Choisissez le nom du conteneur et son état pour déterminer quand ce conteneur démarre.

1. Si vous n'avez configuré qu'un seul conteneur, vous devez choisir **Ajouter un conteneur** et terminer la configuration du nouveau conteneur. Dans le cas contraire, choisissez **Next** pour passer en revue. 