

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie definições de trabalho usando EcsProperties
<a name="multi-container-jobs"></a>

Com o uso das definições de AWS Batch tarefas [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html), você pode modelar hardware, sensores, ambientes 3D e outras simulações em contêineres separados. É possível usar esse atributo para organizar logicamente componentes de workload e separá-los da aplicação principal. Esse recurso pode ser usado AWS Batch no Amazon Elastic Container Service (Amazon ECS), no Amazon Elastic Kubernetes Service (Amazon EKS) e. AWS Fargate

## Definições de trabalho `ContainerProperties` versus `EcsProperties`
<a name="containerpropertions-vs-ecsproperties"></a>

Você pode optar por usar [https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html) ou definições de trabalho [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html) de acordo com seu caso de uso. Em um alto nível, executar AWS Batch trabalhos com `EcsProperties` é semelhante à execução de trabalhos com um`ContainerProperties`.

A estrutura antiga de definição de tarefas, usando `ContainerProperties`, permanece compatível. Se você já tem fluxos de trabalho usando essa estrutura, pode continuar a executá-los.

A principal diferença é que há um novo objeto adicionado à definição do trabalho para acomodar as definições com base em `EcsProperties`.

Por exemplo, uma definição de trabalho que usa o `ContainerProperties` no Amazon ECS e no Fargate tem esta estrutura:

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

Uma definição de trabalho que usa o `EcsProperties` no Amazon ECS e no Fargate tem esta estrutura:

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

## Mudanças gerais no AWS Batch APIs
<a name="multi-container-general"></a>

Descrevemos algumas das principais diferenças ao usar `ContainerProperties` e os tipos de dados da API `EcsProperties`:
+ Muitos dos parâmetros usados em `ContainerProperties` aparecem em `TaskContainerProperties`. Alguns exemplos incluem `command`, `image`, `privileged`, `secrets` e `users`. Todos eles podem ser encontrados dentro [TaskContainerProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html).
+ Alguns dos parâmetros `TaskContainerProperties` não têm equivalentes funcionais na estrutura legada. Alguns exemplos incluem `dependsOn`, `essential`, `name`, `ipcMode` e `pidMode`. Para obter mais informações, consulte [EcsTaskDetails](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskDetails.html) e [TaskContainerProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html).

  Além disso, alguns parâmetros `ContainerProperties` não têm equivalentes ou aplicação na estrutura `EcsProperties`. Em [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` foi substituído por `containers`, para que o novo objeto possa aceitar até dez 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)
+ `taskRoleArn` é funcionalmente equivalente a `jobRoleArn`. Para obter mais informações, consulte [EcsTaskProperties: taskRoleArn](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html) e [ContainerProperties: jobRoleArn](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html).
+ Você pode incluir de um (1) a dez (10) contêineres na estrutura `EcsProperties`. [Para obter mais informações, consulte:containersEcsTaskProperties.](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html)
+ Os objetos `taskProperties` e instanceTypes são matrizes, mas aceitam apenas um elemento. [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html)

## Definições de trabalho de vários contêineres para o Amazon ECS
<a name="multi-container-ecs-updates"></a>

Para acomodar a estrutura de vários contêineres do Amazon ECS, alguns dos tipos de dados da API são diferentes. Por exemplo,
+ [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) é o mesmo nível de `containerProperties` na definição de contêiner único. Para obter mais informações, consulte [EcsProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html) no *AWS Batch API Reference Guide (Guia de referência da API do &CDSlong;)*.
+ [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) contém as propriedades definidas para a tarefa do Amazon ECS. Para obter mais informações, consulte [EcsProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html) no *AWS Batch API Reference Guide (Guia de referência da API do &CDSlong;)*.
+ [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) inclui informações semelhantes a `containerProperties` na definição de contêiner único. A principal diferença é que `containers` permite definir até dez contêineres. *Para obter mais informações, consulte [ECSTaskproperties:Containers](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html) no Guia de referência da AWS Batch API.*
+ O 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 como o contêiner afeta o trabalho. Todos os contêineres essenciais devem ser concluídos com sucesso (encerrar como 0) para que o trabalho possa progredir. Se um contêiner marcado como essencial falhar (encerrar como diferente de 0), o trabalho falhará.

  O valor padrão é `true`, e pelo menos um contêiner deve ser marcado como `essential`. Para obter mais informações, 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) no *AWS Batch API Reference Guide (Guia de referência da API do &CDSlong;)*.
+ Com o 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), você pode definir uma lista de dependências de contêineres. Para obter mais informações, 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) no *AWS Batch API Reference Guide (Guia de referência da API do &CDSlong;)*.
**nota**  
A complexidade da lista `dependsOn` e do runtime do contêiner associado podem afetar o horário de início do seu trabalho. Se dependências demorarem muito para serem executadas, o trabalho permanecerá em estado `STARTING` até que seja concluído.

Para obter mais informações sobre a estrutura `ecsProperties` e, consulte a sintaxe de [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#API_RegisterJobDefinition_RequestBody)solicitação para [ECSProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-ecsProperties).

## Definições de trabalho de vários contêineres para o Amazon EKS
<a name="multi-container-eks-updates"></a>

Para acomodar a estrutura de vários contêineres do Amazon EKS, alguns dos tipos de dados da API são diferentes. Por exemplo,
+ [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) é um identificador exclusivo para o contêiner. Esse objeto não é necessário para um único contêiner, mas é necessário ao definir vários contêineres em um pod. Quando `name` não está definido para contêineres únicos, o nome padrão, `default`, é aplicado.
+ [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)são definidos dentro do tipo de [eksPodProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html)dados. Eles são executados antes dos contêineres da aplicação, sempre são executados até a conclusão e devem ser concluídos com êxito antes do início do próximo contêiner.

  Esses contêineres são registrados no atendente Amazon EKS Connector e mantêm as informações de registro no armazenamento de dados de backend do Amazon Elastic Kubernetes Service. O objeto `initContainers` pode aceitar até dez (10) elementos. Para obter mais informações, consulte [Contêineres de inicialização](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/), na *documentação do Kubernetes*.
**nota**  
O objeto `initContainers` pode afetar a hora de início do seu trabalho. Se `initContainers` demorarem muito para serem executados, o trabalho permanecerá em estado `STARTING` até a conclusão.
+ [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 se os contêineres no pod podem compartilhar o mesmo namespace de processo. O valor padrão é `false`. Defina isso como `true` para permitir que os contêineres vejam e sinalizem processos em outros contêineres localizados no mesmo pod.
+ Cada contêiner tem importância. Todos os contêineres devem ser concluídos com êxito (sair como 0) para que o trabalho seja bem-sucedido. Se um contêiner falhar (sair como diferente de 0), o trabalho falhará.

Para obter mais informações sobre a estrutura `eksProperties` e, consulte a sintaxe de [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#API_RegisterJobDefinition_RequestBody)solicitação para [EksProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-eksProperties).

# Referência: cenários de trabalho do AWS Batch usando EcsProperties
<a name="multi-container-jobs-scenarios"></a>

Para ilustrar como as definições de trabalho do AWS Batch que usam `EcsProperties` podem ser estruturadas com base nas suas necessidades, este tópico apresenta as seguintes cargas úteis de [https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html). É possível copiar esses exemplos em um arquivo, personalizá-los de acordo com suas necessidades e, em seguida, usar o AWS Command Line Interface (AWS CLI) para chamar `RegisterJobDefinition`.

## Trabalho do AWS Batch para o Amazon ECS no Amazon EC2
<a name="multi-container-scenario-on-ec2"></a>

Veja a seguir um exemplo de um trabalho do AWS Batch para o Amazon Elastic Container Service no 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"
                  }
                ]
              }
            ]
          }
        ]
  }
}
```

## Trabalho do AWS Batch para o Amazon ECS no Fargate
<a name="multi-containers-ecs-on-fargate"></a>

Veja a seguir um exemplo de um trabalho do AWS Batch para o Amazon Elastic Container Service no 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"
          }
        ]
  }
}
```

## Trabalho do AWS Batch para o Amazon EKS
<a name="multi-containers-eks-example"></a>

Veja a seguir um exemplo de um trabalho do AWS Batch para o 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"
            }
          }
        }
      ]
    }
  }
}
```

## Trabalho MNP do AWS Batch com vários contêineres por nó
<a name="multi-container-ecs-mnp"></a>

Veja a seguir um exemplo de um trabalho paralelo de vários nós (MNP) do AWS Batch com vários contêineres por nó:

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