

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éez des définitions de tâches à l'aide de EcsProperties
<a name="multi-container-jobs"></a>

Grâce aux définitions de AWS Batch tâches utilisées [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html), vous pouvez modéliser du matériel, des capteurs, des environnements 3D et d'autres simulations dans des conteneurs séparés. Vous pouvez utiliser cette fonctionnalité pour organiser de manière logique les composants de votre charge de travail et les séparer de l'application principale. Cette fonctionnalité peut être utilisée avec AWS Batch Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Kubernetes Service (Amazon EKS) et. AWS Fargate

## `ContainerProperties`par rapport aux définitions de `EcsProperties` poste
<a name="containerpropertions-vs-ecsproperties"></a>

Vous pouvez choisir d'utiliser [https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html)ou de [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html)définir des tâches selon votre cas d'utilisation. À un niveau élevé, l'exécution de AWS Batch tâches avec `EcsProperties` est similaire à l'exécution de tâches avec un`ContainerProperties`.

L'ancienne structure de définition des tâches, en utilisant`ContainerProperties`, reste prise en charge. Si vous disposez actuellement de flux de travail utilisant cette structure, vous pouvez continuer à les exécuter.

La principale différence réside dans le fait qu'un nouvel objet a été ajouté à la définition de tâche pour tenir compte des définitions `EcsProperties` basées sur des définitions.

Par exemple, une définition de tâche utilisée `ContainerProperties` sur Amazon ECS et Fargate possède la structure suivante :

```
{
   "containerProperties": {
     ...
     "image": "my_ecr_image1",
     ...
  },
...
}
```

Une définition de tâche utilisée `EcsProperties` sur Amazon ECS et Fargate possède la structure suivante :

```
{
  "ecsProperties": {
    "taskProperties": [{
      "containers": [
        { 
          ...
          "image": "my_ecr_image1",
          ...
        },
        { 
          ...
          "image": "my_ecr_image2",
          ...
        },
```

## Modifications générales apportées au AWS Batch APIs
<a name="multi-container-general"></a>

Vous trouverez ci-dessous un aperçu de certaines des principales différences entre les types de données `ContainerProperties` et les `EcsProperties` API :
+ La plupart des paramètres utilisés y `ContainerProperties` apparaissent`TaskContainerProperties`. Certains exemples incluent`command`,`image`,`privileged`,`secrets`, et`users`. Ils se trouvent tous à l'intérieur [TaskContainerProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html).
+ Certains `TaskContainerProperties` paramètres n'ont pas d'équivalent fonctionnel dans l'ancienne structure. Certains exemples incluent`dependsOn`,`essential`,`name`,`ipcMode`, et`pidMode`. Pour plus d’informations, consultez [EcsTaskDetails](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskDetails.html) et [TaskContainerProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html).

  De plus, certains `ContainerProperties` paramètres n'ont pas d'équivalent ou d'application dans la `EcsProperties` structure. In [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html#Batch-Type-EcsProperties-taskProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html#Batch-Type-EcsProperties-taskProperties), `container` a été remplacé par de `containers` sorte que le nouvel objet puisse accepter jusqu'à dix éléments. [https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-containerProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-containerProperties)
+ `taskRoleArn`est fonctionnellement équivalent à. `jobRoleArn` Pour plus d'informations, voir [EcsTaskProperties: taskRoleArn](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html) et [ContainerProperties: jobRoleArn](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html).
+ Vous pouvez inclure de un (1) à dix (10) conteneurs dans la `EcsProperties` structure. [Pour plus d'informations, voir : conteneursEcsTaskProperties.](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html)
+ Les objets `taskProperties` et InstanceTypes sont des tableaux, mais ils n'acceptent actuellement qu'un seul élément. [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html)

## Définitions de tâches multi-conteneurs pour Amazon ECS
<a name="multi-container-ecs-updates"></a>

Pour s'adapter à la structure multi-conteneurs d'Amazon ECS, certains types de données d'API sont différents. Par exemple, 
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-ecsProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-ecsProperties)est le même niveau que `containerProperties` dans la définition du conteneur unique. Pour plus d'informations, consultez [EcsProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html) dans le *Guide de référence des API AWS Batch *.
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html#Batch-Type-EcsProperties-taskProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html#Batch-Type-EcsProperties-taskProperties)contient les propriétés définies pour la tâche Amazon ECS. Pour plus d'informations, consultez [EcsProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html) dans le *Guide de référence des API AWS Batch *.
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html#Batch-Type-EcsTaskProperties-containers](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html#Batch-Type-EcsTaskProperties-containers)inclut des informations similaires à celles `containerProperties` de la définition du conteneur unique. La principale différence est que `containers` vous pouvez définir jusqu'à dix conteneurs. Pour plus d'informations, consultez [ECSTaskProperties:Containers](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html) dans le guide de référence des *AWS Batch API*.
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-essential](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-essential)le paramètre indique comment le conteneur affecte la tâche. Tous les conteneurs essentiels doivent être terminés avec succès (sortie en tant que 0) pour que le travail progresse. Si un conteneur marqué comme essentiel échoue (sort en tant que non-0), la tâche échoue.

  La valeur par défaut est `true` et au moins un conteneur doit être marqué comme`essential`. Pour plus d'informations, consultez [https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-essential](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-essential) dans le *Guide de référence des API AWS Batch *.
+ Avec le [https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-dependsOn](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-dependsOn)paramètre, vous pouvez définir une liste de dépendances de conteneurs. Pour plus d'informations, consultez [https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-dependsOn](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-dependsOn) dans le *Guide de référence des API AWS Batch *.
**Note**  
La complexité de la `dependsOn` liste et le temps d'exécution du conteneur associé peuvent affecter l'heure de début de votre tâche. Si les dépendances mettent du temps à s'exécuter, la tâche restera inchangée jusqu'à ce `STARTING` qu'elle soit terminée.

Pour plus d'informations sur la structure `ecsProperties` et, consultez la syntaxe des [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#API_RegisterJobDefinition_RequestBody)demandes pour [ECSProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-ecsProperties).

## Définitions de tâches multi-conteneurs pour Amazon EKS
<a name="multi-container-eks-updates"></a>

Pour s'adapter à la structure multi-conteneurs d'Amazon EKS, certains types de données d'API sont différents. Par exemple, 
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainer.html#Batch-Type-EksContainer-name](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainer.html#Batch-Type-EksContainer-name)est un identifiant unique pour le conteneur. Cet objet n'est pas obligatoire pour un seul conteneur, mais il est obligatoire lors de la définition de plusieurs conteneurs dans un pod. Lorsqu'il `name` n'est pas défini pour des conteneurs individuels, le nom par défaut`default`, est appliqué.
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html#Batch-Type-EksPodProperties-initContainers](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html#Batch-Type-EksPodProperties-initContainers)sont définis dans le type de [eksPodProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html)données. Ils s'exécutent avant les conteneurs d'applications, s'exécutent toujours jusqu'à la fin et doivent s'achever correctement avant le démarrage du conteneur suivant.

  Ces conteneurs sont enregistrés auprès de l'agent Amazon EKS Connector et conservent les informations d'enregistrement dans le magasin de données principal Amazon Elastic Kubernetes Service. L'`initContainers`objet peut accepter jusqu'à dix (10) éléments. Pour plus d'informations, consultez la section [Init Containers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) dans la *Kubernetesdocumentation*.
**Note**  
L'`initContainers`objet peut affecter l'heure de début de votre tâche. Si leur exécution `initContainers` prend du temps, la tâche restera dans son `STARTING` état jusqu'à ce qu'elle soit terminée.
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html#Batch-Type-EksPodProperties-shareProcessNamespace](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html#Batch-Type-EksPodProperties-shareProcessNamespace)indique si les conteneurs du pod peuvent partager le même espace de noms de processus. Les valeurs par défaut sont `false`. Définissez ce paramètre sur `true` pour permettre aux conteneurs de voir et de signaler les processus dans d'autres conteneurs situés dans le même module.
+ Chaque contenant a de l'importance. Tous les conteneurs doivent être terminés avec succès (sortie sous la forme 0) pour que la tâche réussisse. Si un conteneur échoue (sort sous une autre forme que 0), la tâche échoue.

Pour plus d'informations sur la structure `eksProperties` et, consultez la syntaxe des [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#API_RegisterJobDefinition_RequestBody)demandes pour [EksProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-eksProperties).

# Référence : AWS Batch scénarios professionnels utilisant EcsProperties
<a name="multi-container-jobs-scenarios"></a>

Pour illustrer comment les définitions de AWS Batch poste utilisées `EcsProperties` peuvent être structurées en fonction de vos besoins, cette rubrique présente les [https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html)charges utiles suivantes. Vous pouvez copier ces exemples dans un fichier, les personnaliser selon vos besoins, puis utiliser le AWS Command Line Interface (AWS CLI) pour appeler`RegisterJobDefinition`.

## AWS Batch offre d'emploi pour Amazon ECS sur Amazon EC2
<a name="multi-container-scenario-on-ec2"></a>

Voici un exemple de AWS Batch tâche pour Amazon Elastic Container Service sur Amazon Elastic Compute Cloud :

```
{
    "jobDefinitionName": "multicontainer-ecs-ec2",
    "type": "container",
    "ecsProperties": {
        "taskProperties": [
          {
            "containers": [
              {
                "name": "c1",
                "essential": false,
                "command": [
                  "echo",
                  "hello world"
                ],
                "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                "resourceRequirements": [
                  {
                    "type": "VCPU",
                    "value": "2"
                  },
                  {
                    "type": "MEMORY",
                    "value": "4096"
                  }
                ]
              },
              {
                "name": "c2",
                "essential": false,
                "command": [
                  "echo",
                  "hello world"
                ],
                "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                "resourceRequirements": [
                  {
                    "type": "VCPU",
                    "value": "2"
                  },
                  {
                    "type": "MEMORY",
                    "value": "4096"
                  }
                ]
              },
              {
                "name": "c3",
                "essential": true,
                "command": [
                  "echo",
                  "hello world"
                ],
                "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                "firelensConfiguration": {
                  "type": "fluentbit",
                  "options": {
                    "enable-ecs-log-metadata": "true"
                  }
                 },
                "resourceRequirements": [
                  {
                    "type": "VCPU",
                    "value": "6"
                  },
                  {
                    "type": "MEMORY",
                    "value": "12288"
                  }
                ]
              }
            ]
          }
        ]
  }
}
```

## AWS Batch offre d'emploi pour Amazon ECS sur Fargate
<a name="multi-containers-ecs-on-fargate"></a>

Voici un exemple de AWS Batch tâche pour Amazon Elastic Container Service sur AWS Fargate :

```
{
    "jobDefinitionName": "multicontainer-ecs-fargate",
    "type": "container",
    "platformCapabilities": [
        "FARGATE"
    ],
    "ecsProperties": {
        "taskProperties": [
          {
            "containers": [
              {
                "name": "c1",
                "command": [
                  "echo",
                  "hello world"
                ],
                "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                "resourceRequirements": [
                  {
                    "type": "VCPU",
                    "value": "2"
                  },
                  {
                    "type": "MEMORY",
                    "value": "4096"
                  }
                ]
              },
              {
                "name": "c2",
                "essential": true,
                "command": [
                  "echo",
                  "hello world"
                ],
                "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                "resourceRequirements": [
                  {
                    "type": "VCPU",
                    "value": "6"
                  },
                  {
                    "type": "MEMORY",
                    "value": "12288"
                  }
                ]
              }
            ],
            "executionRoleArn": "arn:aws:iam::1112223333:role/ecsTaskExecutionRole"
          }
        ]
  }
}
```

## AWS Batch job pour Amazon EKS
<a name="multi-containers-eks-example"></a>

Voici un exemple de AWS Batch tâche pour Amazon Elastic Kubernetes Service :

```
{
  "jobDefinitionName": "multicontainer-eks",
  "type": "container",
  "eksProperties": {
    "podProperties": {
      "shareProcessNamespace": true,
      "initContainers": [
        {
          "name": "init-container",
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
          "command": [
            "echo"
          ],
          "args": [
            "hello world"
          ],
          "resources": {
            "requests": {
              "cpu": "1",
              "memory": "512Mi"
            }
          }
        },
        {
          "name": "init-container-2",
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
          "command": [
            "echo",
            "my second init container"
          ],
          "resources": {
            "requests": {
              "cpu": "1",
              "memory": "512Mi"
            }
          }
        }
      ],
      "containers": [
        {
          "name": "c1",
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
          "command": [
            "echo world"
         ],
          "resources": {
            "requests": {
              "cpu": "1",
              "memory": "512Mi"
            }
          }
        },
        {
          "name": "sleep-container",
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
          "command": [
            "sleep",
            "20"
          ],
          "resources": {
            "requests": {
              "cpu": "1",
              "memory": "512Mi"
            }
          }
        }
      ]
    }
  }
}
```

## Tâche AWS Batch MNP avec plusieurs conteneurs par nœud
<a name="multi-container-ecs-mnp"></a>

Voici un exemple de AWS Batch tâche MNP (multi-node parallel) avec plusieurs conteneurs par nœud :

```
{
  "jobDefinitionName": "multicontainer-mnp",
  "type": "multinode",
  "nodeProperties": {
    "numNodes": 6,
    "mainNode": 0,
    "nodeRangeProperties": [
      {
        "targetNodes": "0:5",
        "ecsProperties": {
          "taskProperties": [
            {
              "containers": [
                {
                  "name": "range05-c1",
                  "command": [
                    "echo",
                    "hello world"
                  ],
                  "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                  "resourceRequirements": [
                    {
                      "type": "VCPU",
                      "value": "2"
                    },
                    {
                      "type": "MEMORY",
                      "value": "4096"
                    }
                  ]
                },
                {
                  "name": "range05-c2",
                  "command": [
                    "echo",
                    "hello world"
                  ],
                  "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                  "resourceRequirements": [
                    {
                      "type": "VCPU",
                      "value": "2"
                    },
                    {
                      "type": "MEMORY",
                      "value": "4096"
                    }
                  ]
                }
              ]
            }
          ]
        }
      }
    ]
  }
}
```