

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Cree definiciones de trabajo mediante EcsProperties
<a name="multi-container-jobs"></a>

Al utilizar las definiciones de AWS Batch trabajo [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html), puede modelar el hardware, los sensores, los entornos 3D y otras simulaciones en contenedores separados. Puede utilizar esta característica para organizar de forma lógica los componentes de la carga de trabajo y separarlos de la aplicación principal. Esta función se puede utilizar AWS Batch en Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Kubernetes Service (Amazon EKS) y. AWS Fargate

## `ContainerProperties` frente a las definiciones de trabajo de `EcsProperties`
<a name="containerpropertions-vs-ecsproperties"></a>

Puede utilizar las definiciones de trabajo [https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html) o [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html) según lo requiera su caso de uso. A un nivel superior, ejecutar AWS Batch tareas con `EcsProperties` es similar a ejecutar tareas con un. `ContainerProperties`

La estructura de definición de trabajos heredada, que utiliza `ContainerProperties`, sigue siendo compatible. Si actualmente tiene flujos de trabajo que utilizan esta estructura, puede seguir ejecutándolos.

La principal diferencia es que se ha añadido un objeto nuevo a la definición del trabajo para dar cabida a las definiciones basadas en `EcsProperties`.

Por ejemplo, una definición de trabajo que usa `ContainerProperties` en Amazon ECS y Fargate tiene la siguiente estructura:

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

Una definición de trabajo que usa `EcsProperties` en Amazon ECS y Fargate tiene la siguiente estructura:

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

## Cambios generales en el AWS Batch APIs
<a name="multi-container-general"></a>

A continuación, se describen más detalladamente algunas de las principales diferencias entre el uso de `ContainerProperties` y los tipos de datos de la API de `EcsProperties`:
+ Muchos de los parámetros que se utilizan en `ContainerProperties` aparecen en `TaskContainerProperties`. Algunos ejemplos incluyen `command`, `image`, `privileged`, `secrets` y `users`. Todos se pueden encontrar en su interior [TaskContainerProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html).
+ Algunos de los parámetros de `TaskContainerProperties` no tienen equivalentes funcionales en la estructura heredada. Algunos ejemplos incluyen `dependsOn`, `essential`, `name`, `ipcMode` y `pidMode`. Para obtener más información, consulte [EcsTaskDetails](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskDetails.html) y [TaskContainerProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html).

  Además, algunos parámetros de `ContainerProperties` no tienen equivalentes ni aplicación en la estructura de `EcsProperties`. En [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` se ha sustituido por `containers` para que el nuevo objeto pueda aceptar hasta diez elementos. [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)
+ La funcionalidad de `taskRoleArn` es equivalente a `jobRoleArn`. [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html)
+ Puede incluir de uno a diez contenedores en la estructura de `EcsProperties`. [Para obtener más información, consulte: contenedoresEcsTaskProperties.](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html)
+ Los objetos `taskProperties` e instanceTypes son matrices, pero actualmente solo aceptan un elemento. [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html)

## Definiciones de trabajo en varios contenedores para Amazon ECS
<a name="multi-container-ecs-updates"></a>

Para adaptarse a la estructura de varios contenedores de Amazon ECS, algunos de los tipos de datos de API son diferentes. Por ejemplo:
+ [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) tiene el mismo nivel que `containerProperties` en la definición de contenedor único. Para obtener más información, consulte [EcsProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html) en la *Guía de referencia de la API de 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) contiene las propiedades definidas para la tarea de Amazon ECS. Para obtener más información, consulte [EcsProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html) en la *Guía de referencia de la API de 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) incluye información similar a la de `containerProperties` en la definición de contenedor único. La principal diferencia es que `containers` permite definir hasta diez contenedores. [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html)
+ El parámetro [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) indica cómo afecta el contenedor al trabajo. Todos los contenedores esenciales deben completarse correctamente (salir como 0) para que el trabajo progrese. Si un contenedor marcado como esencial falla (sale con un valor distinto de 0), el trabajo fallará.

  El valor predeterminado es `true`, y al menos un contenedor debe estar marcado como `essential`. Para obtener más información, consulte [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) en la *Guía de referencia de la API de AWS Batch *.
+ Con el parámetro [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), puede definir una lista de dependencias de contenedores. Para obtener más información, consulte [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) en la *Guía de referencia de la API de AWS Batch *.
**nota**  
La complejidad de la lista de `dependsOn` y el tiempo de ejecución del contenedor asociado pueden afectar a la hora de inicio del trabajo. Si las dependencias tardan mucho en ejecutarse, el trabajo permanecerá en el estado `STARTING` hasta que se complete.

[Para obtener más información sobre la estructura `ecsProperties` y, consulte la sintaxis de [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#API_RegisterJobDefinition_RequestBody)solicitud de ECSProperties.](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-ecsProperties)

## Definiciones de trabajos con varios contenedores para Amazon EKS
<a name="multi-container-eks-updates"></a>

Para adaptarse a la estructura de varios contenedores de Amazon EKS, algunos de los tipos de datos de API son diferentes. Por ejemplo:
+ [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) es un único identificador para el contenedor. Este objeto no es necesario para un único contenedor, pero sí para definir varios contenedores en un pod. Si `name` no está definido para contenedores individuales, se aplica el nombre predeterminado, `default`.
+ [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)se definen dentro del tipo de [eksPodProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html)datos. Se ejecutan antes que los contenedores de aplicaciones, siempre hasta completarse, y deben completarse correctamente antes de que se inicie el siguiente contenedor.

  Estos contenedores están registrados en el agente Amazon EKS Connector y conservan la información de registro en el almacén de datos de backend de Amazon Elastic Kubernetes Service. El objeto `initContainers` puede aceptar hasta diez elementos. Para obtener más información, consulte [Init Containers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) en la *documentación de Kubernetes*.
**nota**  
El objeto `initContainers` puede afectar a la hora de inicio del trabajo. Si los `initContainers` tardan mucho en ejecutarse, el trabajo mantendrá el estado `STARTING` hasta que se complete.
+ [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) indica si los contenedores del pod pueden compartir el mismo espacio de nombres del proceso. El valor predeterminado es `false`. Configúrelo en `true` para permitir que los contenedores vean y señalen los procesos de otros contenedores que se encuentran en el mismo pod.
+ Todos los contenedores son importantes. Todos los contenedores deben completarse correctamente (salir como 0) para que el trabajo se complete correctamente. Si un contenedor falla (sale con un valor distinto de 0), se produce un error en el trabajo.

Para obtener más información sobre la estructura `eksProperties` y, consulte la sintaxis de [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#API_RegisterJobDefinition_RequestBody)solicitud de [eksProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-eksProperties).

# Referencia: escenarios de trabajo de AWS Batch que utilizan EcsProperties
<a name="multi-container-jobs-scenarios"></a>

Para ilustrar cómo se pueden estructurar las definiciones de trabajo de AWS Batch que utilizan `EcsProperties` en función de sus necesidades, en este tema se presentan las siguientes cargas útiles de [https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html). Puede copiar estos ejemplos en un archivo, personalizarlos según sus necesidades y, a continuación, usar AWS Command Line Interface (AWS CLI) para llamar a `RegisterJobDefinition`.

## Trabajo de AWS Batch para Amazon ECS en Amazon EC2
<a name="multi-container-scenario-on-ec2"></a>

A continuación, se muestra el ejemplo de un trabajo de AWS Batch para Amazon Elastic Container Service en 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"
                  }
                ]
              }
            ]
          }
        ]
  }
}
```

## Trabajo de AWS Batch para Amazon ECS alojado en Fargate
<a name="multi-containers-ecs-on-fargate"></a>

A continuación, se muestra el ejemplo de un trabajo de AWS Batch para Amazon Elastic Container Service en 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"
          }
        ]
  }
}
```

## Trabajo de AWS Batch para Amazon EKS
<a name="multi-containers-eks-example"></a>

A continuación, se muestra el ejemplo de un trabajo de AWS Batch para 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"
            }
          }
        }
      ]
    }
  }
}
```

## Trabajo de AWS Batch MNP con varios contenedores por nodo
<a name="multi-container-ecs-mnp"></a>

A continuación, se muestra el ejemplo de un trabajo de AWS Batch paralelo a varios nodos (MNP) con varios contenedores por nodo:

```
{
  "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"
                    }
                  ]
                }
              ]
            }
          ]
        }
      }
    ]
  }
}
```