

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 Amazon ECS à l’aide de la console
<a name="create-task-definition"></a>

Vous créez une définition de tâche afin de pouvoir définir l’application que vous exécutez en tant que tâche ou service.

Lorsque vous créez une définition de tâche pour le type de lancement externe, vous devez créer la définition de tâche à l’aide de l’éditeur JSON et définir le `requireCapabilities` paramètre sur `EXTERNAL`.

Vous pouvez créer une définition de tâche en utilisant l’expérience de console ou en spécifiant un fichier JSON. Vous pouvez demander à Amazon Q de fournir des recommandations lorsque vous utilisez l’éditeur JSON. Pour de plus amples informations, consultez [Utilisation d’Amazon Q Developer pour proposer des recommandations de définition de tâche dans la console Amazon ECS](using-amazon-q.md).

## Validation JSON
<a name="json-validate-for-create"></a>

L'éditeur JSON de la console Amazon ECS valide les éléments suivants dans le fichier JSON :
+ Le fichier est un fichier JSON valide.
+ Le fichier ne contient aucune clé superflue.
+ Le fichier contient le paramètre `familyName`.
+ Il y a au moins une entrée en dessous de`containerDefinitions`.

## CloudFormation piles
<a name="cloudformation-stack"></a>

Le comportement suivant s’applique aux définitions de tâches qui ont été créées dans la nouvelle console avant le 12 janvier 2023.

Lorsque vous créez une définition de tâche, la console Amazon ECS crée automatiquement une CloudFormation pile dont le nom commence par`ECS-Console-V2-TaskDefinition-`. Si vous avez utilisé le AWS CLI ou un AWS SDK pour annuler l'enregistrement de la définition de tâche, vous devez supprimer manuellement la pile de définitions de tâches. Pour plus d’informations, consultez la section [Suppression d’une pile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) dans le *Guide de l’utilisateur CloudFormation *.

Aucune CloudFormation pile n'est créée automatiquement pour les définitions de tâches créées après le 12 janvier 2023.

## Procédure
<a name="create-task-procedure"></a>

------
#### [ Amazon ECS console ]

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Dans le panneau de navigation, choisissez **Task definitions** (Définition des tâches).

1. Dans le menu **Créer une définition de tâche**, choisissez **Créer une définition de tâche**.

1. Pour **Task definition family** (Famille de définition de tâche), spécifiez un nom unique pour la définition de tâche.

1. Pour **Type de lancement**, choisissez l'environnement de l'application. La console par défaut est **AWS Fargate** (qui est sans serveur). Amazon ECS utilise cette valeur pour effectuer une validation afin de s’assurer que les paramètres de définition de tâche sont valides pour le type d’infrastructure.

1. Pour **Operating system/Architecture** (Système d'exploitation/architecture), choisissez le système d'exploitation et l'architecture du processeur pour la tâche. 

   Pour exécuter votre tâche sur une architecture ARM 64 bits, choisissez **Linux/ ARM64**. Pour de plus amples informations, veuillez consulter [Plateforme d'exécution](task_definition_parameters.md#runtime-platform).

   Pour exécuter vos tâches **AWS Fargate** sur les conteneurs Windows, choisissez un système d'exploitation Windows pris en charge. Pour de plus amples informations, veuillez consulter [Systèmes d’exploitation et architectures](fargate-tasks-services.md#fargate-task-os).

1. Pour **Task size** (Taille de la tâche), choisissez les valeurs du processeur et de la mémoire à réserver pour la tâche. La valeur du processeur est spécifiée comme v CPUs et la mémoire est spécifiée comme Go.

   Pour les tâches hébergées sur Fargate, le tableau suivant indique les combinaisons de processeur et de mémoire valides.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/create-task-definition.html)

   Pour les tâches qui utilisent des instances EC2 ou des instances externes, les valeurs de processeur de tâche prises en charge sont comprises entre 128 unités de processeur (0,125 vCPUs) et 196 608 unités de processeur (192 v). CPUs

   Pour spécifier la valeur de la mémoire en Go, saisissez **Go** après la valeur. Par exemple, pour définir la **valeur de la mémoire** sur 3 Go, saisissez **3 Go**.
**Note**  
Les paramètres d'UC et de mémoire de niveau tâche sont ignorés pour les conteneurs Windows.

1. Pour **Network mode** (Mode réseau), choisissez le mode réseau à utiliser. La valeur par défaut est le mode **awsvpc**. Pour plus d'informations, consultez [Réseaux des tâches Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html).

   Si vous choisissez **pont**, sous **Mappages de port**, pour **Port hôte**, saisissez le numéro de port sur l’instance de conteneur à réserver pour votre conteneur.

1. (Facultatif) Développez la section **Rôles des tâches** pour configurer les rôles Gestion des identités et des accès AWS (IAM) de la tâche :

   1. Pour **Task role** (Rôle de tâche), choisissez le rôle IAM à assigner à la tâche. Un rôle IAM de tâche autorise les conteneurs d'une tâche à appeler des opérations d' AWS API.

   1. Pour **Rôle d'exécution de tâche**, choisissez le rôle.

      Pour savoir quand utiliser un rôle d'exécution de tâche, veuillez consulter [Rôle IAM d'exécution de tâche Amazon ECS](task_execution_IAM_role.md). Si vous n’avez pas besoin du rôle, choisissez **Aucun**.

1. (Facultatif) Développez la section **Placement de tâche** pour ajouter des contraintes de placement. Les contraintes de placement de tâche vous permettent de filtrer les instances de conteneur utilisées pour le placement de vos tâches à l’aide d’attributs intégrés ou personnalisés.

1. (Facultatif) Développez la section **Injection de pannes** pour activer l’injection de pannes. L’injection de pannes vous permet de tester la façon dont votre application réagit à certains scénarios de défaillance.

1. Pour chaque conteneur à définir dans votre définition de tâche, effectuez les étapes suivantes.

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

   1. Pour **Image URI** (URI de l'image), saisissez l'image à utiliser pour démarrer un conteneur. Les images de la galerie publique Amazon ECR peuvent être spécifiées uniquement à l’aide du nom de registre Amazon ECR public. Par exemple, si `public.ecr.aws/ecs/amazon-ecs-agent:latest` est spécifié, le conteneur Amazon Linux hébergé dans la galerie publique Amazon ECR est utilisé. Pour tous les autres référentiels, spécifiez le référentiel en utilisant les formats `repository-url/image:tag` ou `repository-url/image@digest`.

   1. Si votre image se trouve dans un registre privé en dehors d'Amazon ECR, sous **Registre privé**, activez **Authentification du registre privé**. Ensuite, dans **ARN ou nom Secrets Manager**, saisissez l'Amazon Resource Name (ARN) du secret.

   1. Pour **Conteneur essentiel**, si deux conteneurs ou plus sont définis dans votre définition de tâche, vous pouvez spécifier si le conteneur doit être considéré comme essentiel. Si un conteneur est marqué comme **Essentiel** et qu’il s’arrête, la tâche est interrompue. Chaque définition de tâche doit contenir au moins un conteneur essentiel.

   1. Un mappage de ports permet aux conteneurs d'accéder aux ports de l'hôte pour envoyer ou recevoir du trafic. Sous **Port mappings** (Mappages de port), effectuez l'une des actions suivantes : 
      + Lorsque vous utilisez le mode réseau **awsvpc**, pour**Container port** (Port du conteneur) et **Protocol** (Protocole), choisissez le mappage de port à utiliser pour le conteneur.
      + Lorsque vous utilisez le mode réseau **bridge** (pont), pour **Container port** (Port du conteneur) et **Protocol** (Protocole), choisissez le mappage de port à utiliser pour le conteneur.

      Choisissez **Add more port mappings** (Ajouter d'autres mappages de ports) pour spécifier des mappages de ports de conteneur supplémentaires.

   1. Pour donner au conteneur un accès en lecture seule à son système de fichiers racine, pour **Système de fichiers racine en lecture seule**, sélectionnez **Lecture seule**.

   1. (Facultatif) Pour définir les limites d’UC, de GPU et de mémoire au niveau du conteneur qui sont différentes des valeurs au niveau des tâches sous **Limites d’allocation de ressources**, procédez comme suit :
      + Dans **UC**), saisissez le nombre d’UC que l’agent de conteneur Amazon ECS réserve pour le conteneur.
      + Dans **GPU**, entrez le nombre d'unités GPU pour l'instance de conteneur. 

        Une instance Amazon EC2 prenant en charge les GPU possède une unité GPU pour chaque GPU. Pour de plus amples informations, veuillez consulter [Définitions de tâches Amazon ECS pour les charges de travail GPU](ecs-gpu.md).
      + Pour **Limite stricte de mémoire**, saisissez la quantité de mémoire, en Go, à attribuer au conteneur. Si le conteneur tente de dépasser la limite stricte, il s'arrête.
      + Le démon Docker 20.10.0 ou version ultérieure réserve un minimum de 6 Mio de mémoire pour un conteneur. Vous ne devez donc pas spécifier moins de 6 Mio de mémoire pour vos conteneurs.

        Le démon Docker 19.03.13-ce ou version antérieure réserve un minimum de 4 Mio de mémoire pour un conteneur. Vous ne devez donc pas spécifier moins de 4 Mio de mémoire pour vos conteneurs.
      + Pour **Limite flexible de mémoire**, saisissez la limite flexible (en Go) de mémoire à réserver pour le conteneur. 

        En cas de contention de la mémoire système, Docker tente de garder la mémoire du conteneur en deçà de cette limite flexible. Si vous ne spécifiez pas de mémoire au niveau de la tâche, vous devez indiquer un nombre entier différent de zéro pour **Limite stricte de mémoire** et/ou **Limite flexible de mémoire**. Si vous spécifiez les deux, **Limite stricte de mémoire** doit être supérieure à **Limite flexible de mémoire**. 

        Cette fonctionnalité n’est pas prise en charge sur les conteneurs Windows.

   1. (Facultatif) Développez la section **Variables d'environnement** pour spécifier les variables d'environnement à injecter dans le conteneur. Vous pouvez spécifier des variables d’environnement soit individuellement à l’aide de paires clé-valeur, soit en bloc en spécifiant un fichier de variables d’environnement hébergé dans un compartiment Amazon S3. Pour plus d’informations sur le formatage d’un fichier de variable d’environnement, consultez la section [Transmission d’une variable d’environnement individuelle à un conteneur Amazon ECS](taskdef-envfiles.md).

      Lorsque vous spécifiez une variable d’environnement pour le stockage des secrets, saisissez le nom du secret dans le champ **Clé**. Ensuite **ValueFrom**, entrez l'ARN complet du secret Parameter Store ou du secret Secrets Manager 

   1. (Facultatif) Sélectionnez l'option **Use log collection** (Utiliser la collecte de journaux) pour spécifier une configuration de journal. Pour chaque pilote de journal disponible, il existe des options de pilote de journal à spécifier. L'option par défaut envoie les journaux des conteneurs à Amazon CloudWatch Logs. Les autres options du pilote de journal sont configurées à l'aide de AWS FireLens. Pour de plus amples informations, veuillez consulter [Envoyer les journaux Amazon ECS à un AWS service ou AWS Partner](using_firelens.md).

      Voici une description plus détaillée de chaque destination de journal de conteneur.
      + **Amazon CloudWatch** — Configurez la tâche pour envoyer les journaux des conteneurs à CloudWatch Logs. Les options du pilote de journal par défaut sont fournies, ce qui permet de créer un groupe de CloudWatch journaux en votre nom. Pour spécifier un autre nom de groupe de journaux, modifiez les valeurs des options de pilote.
      + **Exporter des journaux vers Splunk** : configurez la tâche pour envoyer les journaux des conteneurs au pilote Splunk qui envoie les journaux à un service distant. Vous devez saisir l’URL de votre service Web Splunk. Le paramètre de jeton Splunk est spécifiée en tant qu’option secrète, car il peut être traité comme des données sensibles.
      + **Exporter des journaux vers Amazon Data Firehose** : configurez la tâche pour envoyer les journaux de conteneur à Firehose. Les options par défaut du pilote de journalisation sont fournies. Les journaux sont alors envoyés vers un flux de livraison Firehose. Pour spécifier un autre nom de flux de diffusion, modifiez les valeurs des options de pilote.
      + **Exporter des journaux vers Amazon Kinesis Data Streams** : configurez la tâche pour envoyer les journaux de conteneur à Kinesis Data Streams. Les options par défaut du pilote de journalisation sont fournies. Les journaux sont alors envoyés vers un flux Kinesis Data Streams. Pour spécifier un autre nom de flux, modifiez les valeurs des options de pilote.
      + **Exporter les journaux vers Amazon OpenSearch Service** : configurez la tâche pour envoyer les journaux des conteneurs vers un domaine OpenSearch de service. Les options de pilote de journal doivent être fournies.
      + **Exporter des journaux vers Amazon S3** : configurez la tâche pour envoyer les journaux de conteneur à un compartiment Amazon S3. Les options de pilote de journal par défaut sont fournies, mais vous devez spécifier un nom de compartiment Simple Storage Service (Amazon S3) valide.

   1. (Facultatif) Configurez des paramètres de conteneur supplémentaires.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/create-task-definition.html)

   1. (Facultatif) Choisissez **Add more containers** (Ajouter des conteneurs supplémentaires) pour ajouter des conteneurs supplémentaires à la définition de tâche. 

1. (Facultatif) La section **Stockage** permet d’étendre la quantité de magasins éphémères pour les tâches hébergées sur Fargate. Vous pouvez également utiliser cette section pour ajouter une configuration de volume de données à la tâche.

   1. Pour étendre le stockage éphémère disponible au-delà de la valeur par défaut de 20 gibibytes (GiB) pour vos tâches Fargate pour **Amount** (Quantité), spécifiez une valeur allant jusqu'à 200 GiB.

1. (Facultatif) Pour ajouter une configuration de volume de données à la définition de tâche, sélectionnez **Ajouter un volume**, puis procédez comme suit.

   1. Pour **Volume name** (Nom du volume), saisissez un nom pour le volume de données. Le nom du volume de données est utilisé lors de la création d'un point de montage de conteneur.

   1. Pour **Configuration du volume**, indiquez si vous souhaitez configurer votre volume lors de la création de la définition de tâche ou lors du déploiement.
**Note**  
Les volumes qui peuvent être configurés lors de la création d'une définition de tâche incluent Bind mountDocker, Amazon EFS et Amazon FSx pour Windows File Server. Les volumes qui peuvent être configurés lors du déploiement lors de l’exécution d’une tâche, ou lors de la création ou de la mise à jour d’un service incluent Amazon EBS.

   1. Pour **Type de volume**, sélectionnez un type de volume compatible avec le type de configuration que vous avez sélectionné, puis configurez le type de volume.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/create-task-definition.html)

1. Pour ajouter un volume depuis un autre conteneur, choisissez **Ajouter un volume à partir de**, puis configurez les éléments suivants :
   + Pour **Conteneur**, choisissez le conteneur.
   + Pour **Source**, choisissez le conteneur contenant le volume que vous souhaitez monter.
   + Pour **Lecture seule**, indiquez si le conteneur dispose d'un accès en lecture seule au volume.

1. (Facultatif) Pour configurer les paramètres de suivi et de collecte de métriques de votre application à l'aide de AWS Distro for OpenTelemetry l'intégration, développez **Monitoring**, puis sélectionnez **Utiliser la collecte de métriques** pour collecter et envoyer des métriques pour vos tâches à Amazon CloudWatch ou à Amazon Managed Service for Prometheus. Lorsque cette option est sélectionnée, Amazon ECS crée un sidecar de AWS Distro for OpenTelemetry conteneur préconfiguré pour envoyer les métriques de l'application. Pour de plus amples informations, veuillez consulter [Corrélation des performances des applications Amazon ECS à l’aide des métriques d’application](metrics-data.md).

   1. Lorsque **Amazon CloudWatch** est sélectionné, les métriques personnalisées de votre application sont acheminées vers CloudWatch des métriques personnalisées. Pour de plus amples informations, veuillez consulter [Exporter les métriques des applications vers Amazon CloudWatch](application-metrics-cloudwatch.md).
**Important**  
Lorsque vous exportez des métriques d'application vers Amazon CloudWatch, votre définition de tâche nécessite un rôle IAM de tâche doté des autorisations requises. Pour de plus amples informations, veuillez consulter [Autorisations IAM requises pour AWS Distro pour OpenTelemetry l'intégration à Amazon CloudWatch](application-metrics-cloudwatch.md#application-metrics-cloudwatch-iam). 

   1. Lorsque vous sélectionnez **Amazon Managed Service for Prometheus (Prometheus libraries instrumentation)** (Amazon Managed Service for Prometheus [instrumentation de bibliothèques Prometheus]), vos métriques de processeur, de la mémoire, du réseau et du stockage au niveau des tâches et vos métriques d'application personnalisées sont acheminées vers Amazon Managed Service for Prometheus. Pour **Point de terminaison de l’écriture à distance de l’espace de travail**, saisissez l’URL du point de terminaison d’écriture à distance pour votre espace de travail Prometheus. Pour **Cible de récupération**, saisissez l’hôte et le port que le collecteur AWS Distro for OpenTelemetry peut utiliser pour récupérer des données de métriques. Pour de plus amples informations, veuillez consulter [Exportation des métriques d'application vers Amazon Managed Service for Prometheus](application-metrics-prometheus.md).
**Important**  
Lorsque vous exportez des métriques d'application vers Amazon Managed Service for Prometheus, votre définition de tâche nécessite un rôle IAM de tâche avec les autorisations nécessaires. Pour de plus amples informations, veuillez consulter [Autorisations IAM requises pour AWS Distro pour OpenTelemetry l'intégration à Amazon Managed Service for Prometheus](application-metrics-prometheus.md#application-metrics-prometheus-iam). 

   1. Lorsque vous sélectionnez **Amazon Managed Service for Prometheus OpenTelemetry (instrumentation**), vos indicateurs de processeur, de mémoire, de réseau et de stockage au niveau des tâches, ainsi que les indicateurs personnalisés de votre application, sont acheminés vers Amazon Managed Service for Prometheus. Pour **Point de terminaison de l’écriture à distance de l’espace de travail**, saisissez l’URL du point de terminaison d’écriture à distance pour votre espace de travail Prometheus. Pour de plus amples informations, veuillez consulter [Exportation des métriques d'application vers Amazon Managed Service for Prometheus](application-metrics-prometheus.md).
**Important**  
Lorsque vous exportez des métriques d'application vers Amazon Managed Service for Prometheus, votre définition de tâche nécessite un rôle IAM de tâche avec les autorisations nécessaires. Pour de plus amples informations, veuillez consulter [Autorisations IAM requises pour AWS Distro pour OpenTelemetry l'intégration à Amazon Managed Service for Prometheus](application-metrics-prometheus.md#application-metrics-prometheus-iam). 

1. (Facultatif) Développez la section **Tags** (Identifications) pour ajouter des identifications, sous forme de paires clé-valeur, à la définition de tâche.
   + [Ajouter une balise] Choisissez **Add tag** (Ajouter une balise), puis procédez comme suit :
     + Pour **Clé**, saisissez le nom de la clé.
     + Pour **Valeur**, saisissez la valeur de clé.
   + [Supprimer une balise] En regard de la balise, choisissez **Supprimer la balise**.

1. Choisissez **Créer** pour enregistrer la définition de tâche.

------
#### [ Amazon ECS console JSON editor ]

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Dans le panneau de navigation, choisissez **Task definitions** (Définition des tâches).

1. Choisissez **Créer une définition de tâche**, puis **Créer une définition de tâche avec JSON**.

1. Dans la zone de l'éditeur JSON, modifiez votre fichier JSON,

   Le JSON doit réussir les contrôles de validation spécifiés dans [Validation JSON](#json-validate-for-create).

1. Choisissez **Créer**.

------