Parâmetros de definição de tarefa - Amazon Elastic Container Service

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á.

Parâmetros de definição de tarefa

As definições de tarefas são divididas em partes separadas: família de tarefas, a função de tarefas do IAM, o modo de rede, as definições de contêiner, volumes, restrições de posicionamento de tarefas e tipos de inicialização. As definições de contêiner e família são obrigatórias na definição de tarefa, enquanto função de tarefa, modo de rede, volumes, restrições de posicionamento da tarefa e tipo de inicialização.

Veja a seguir as descrições mais detalhadas de cada parâmetro de definição de tarefa.

Family

family

Tipo: string

Exigido: sim

Ao registrar uma definição de tarefa, você dá a ela uma família, semelhante a um nome para várias versões da definição de tarefa, especificada com um número de revisão. A primeira definição de tarefa registrada em uma determinada família recebe uma revisão 1, e todas as definições de tarefa registradas depois receberão um número de revisão sequencial.

Tipos de inicialização

Ao registrar uma definição de tarefa, você pode especificar um tipo de inicialização queAmazon ECSdeve validar a definição da tarefa contra. Uma exceção de cliente será retornada se a definição da tarefa não for validada em relação às compatibilidades especificadas. Para obter mais informações, consulte Amazon ECSTipos de inicialização.

O seguinte parâmetro é permitido em uma definição de tarefa:

requiresCompatibilities

Tipo: matriz de strings

Obrigatório: não

Valores válidos: EC2 | FARGATE | EXTERNAL

O tipo de inicialização para validar a definição da tarefa. Isso permite uma verificação para garantir que todos os parâmetros usados na definição de tarefa atendam aos requisitos do tipo de inicialização.

Função da tarefa

taskRoleArn

Tipo: string

Obrigatório: não

Ao registrar uma definição de tarefa, é possível fornecer uma função de tarefa para uma função do IAM que permite que os contêineres na permissão da tarefa chamem a função deAWSAs APIs da especificadas nas políticas associadas em seu nome. Para obter mais informações, consulte Funções do IAM para tarefas.

As funções do IAM para tarefas no Windows exigem que a opção -EnableTaskIAMRole seja definida ao executar a Amazon ECS-optimized Windows Server AMI. Os contêineres também devem executar um código de configuração para aproveitar o recurso. Para obter mais informações, consulte Funções do IAM do Windows para tarefas.

Função de execução de tarefas

executionRoleArn

Tipo: string

Obrigatório: não

O Amazon Resource Name (ARN) da função de execução da tarefa que concede ao agente de contêiner do Amazon ECS permissão para fazer chamadas da API da AWS em seu nome. A função de execução da tarefa do IAM é necessária dependendo dos requisitos da sua tarefa. Para obter mais informações, consulte Amazon ECSexecução de tarefasIAMfunção do.

Modo de rede

networkMode

Tipo: string

Obrigatório: não

O modo de rede do Docker a ser usado para os contêineres na tarefa. para oAmazon ECStarefas hospedadas emAmazon EC2Instâncias Linux, os valores válidos sãonone,bridge,awsvpc, ehost. Se nenhum modo de rede for especificado, o modo de rede padrão serábridge. para oAmazon ECStarefas hospedadas emAmazon EC2Instâncias do Windows, os valores válidos sãodefault, eawsvpc. Se nenhum modo de rede for especificado, odefaultmodo de rede é usado.

Caso o modo de rede estiver definido como none, os contêineres da tarefa não terão conectividade externa e os mapeamentos de porta não poderão ser especificados na definição de contêiner.

Se o modo de rede for bridge, a tarefa utilizará a rede virtual integrada do Docker, executada em cada instância de contêiner.

Se o modo de rede forhost, a tarefa ignorará a rede virtual integrada do Docker e mapeará as portas de contêiner diretamente para oAmazon EC2interface de rede da instância. Nesse modo, não será possível executar várias instâncias da mesma tarefa em uma única instância de contêiner quando forem usados mapeamentos de porta.

Importante

Ao usar ohost, você não deve executar contêineres usando o usuário raiz (UID 0). É considerada a melhor prática usar um usuário que não seja raiz.

Se o modo de rede for awsvpc, será alocada uma interface de rede elástica para a tarefa e você deverá especificar uma NetworkConfiguration ao criar um serviço ou executar uma tarefa com a definição de tarefa. Para obter mais informações, consulte Amazon ECSRedes de tarefas. No momento, apenas a Amazon ECS-optimized AMI, outras variantes do Amazon Linux com o pacote ecs-init ou a infraestrutura AWS Fargate são compatíveis com o modo de rede awsvpc.

Os modos de rede host e awsvpc oferecem o mais alto desempenho de rede para os contêineres, pois eles usam a pilha de rede do Amazon EC2 em vez da pilha de rede virtualizada fornecida pelo modo bridge. Com os modos de rede host e awsvpc, as portas do contêiner expostas são mapeadas diretamente para a porta do host correspondente (para o modo de rede do host) ou para a porta de interface de rede elástica anexada (para o modo de rede awsvpc), de forma que você não possa tirar vantagem dos mapeamentos de porta do host dinâmico.

Se for usar o tipo de inicialização Fargate, será necessário o modo de rede awsvpc. Se estiver usando o tipo de inicialização EC2, o modo de rede permitido depende do sistema operacional da instância do EC2 subjacente. Se for o Linux, qualquer modo de rede pode ser usado. Se o Windows, odefault, eawsvpcmodos podem ser usados.

Tamanho da tarefa

Ao registrar uma definição de tarefa, você pode especificar o total de CPU e memória usados para a tarefa. Isso é separado dos valores de cpu e memory no nível de definição de contêiner. Para tarefas hospedadas noAmazon EC2instâncias, esses campos são opcionais. Para tarefas hospedadas noFargate, esses campos são obrigatórios e há valores específicos paracpuememoryque são compatíveis.

nota

Os parâmetros de CPU e memória em nível de tarefa são ignorados para contêineres do Windows. É recomendável especificar recursos em nível de contêiner para contêineres do Windows.

O seguinte parâmetro é permitido em uma definição de tarefa:

cpu

Tipo: string

Obrigatório: condicional

nota

Este parâmetro não é compatível com contêineres do Windows.

O limite rígido de unidades de CPU a ser apresentado para a tarefa. Ele pode ser expresso como um número inteiro usando unidades de CPU, por exemplo, 1024, ou como uma string usando vCPUs, por exemplo, 1 vCPU ou 1 vcpu, em uma definição de tarefa. Quando a definição de tarefa for registrada, um valor de vCPU será convertido em um inteiro indicando as unidades de CPU.

Para tarefas hospedadas noAmazon EC2instâncias, esse campo é opcional. Se o seu cluster não tiver registrado instâncias de contêiner com as unidades de CPU solicitadas disponíveis, ocorrerá uma falha na tarefa. Os valores compatíveis estão entre unidades de CPU128 (vCPUs 0.125) e unidades de CPU 10240 (vCPUs 10).

Para tarefas hospedadas noFargate, esse campo será obrigatório e você deverá usar um dos valores a seguir, que determina o intervalo de valores compatíveis para omemoryParâmetro:

Valor de CPU

Valor de memória (MiB)

256 (0,25 vCPU)

512 (0,5 GB), 1024 (1 GB), 2048 (2 GB)

512 (0,5 vCPU)

1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

1024 (1 vCPU)

2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

2048 (2 vCPU)

Entre 4096 (4 GB) e 16384 (16 GB) em incrementos de 1024 (1 GB)

4096 (4 vCPU)

Entre 8192 (8 GB) e 30720 (30 GB) em incrementos de 1024 (1 GB)

memory

Tipo: string

Obrigatório: condicional

nota

Este parâmetro não é compatível com contêineres do Windows.

O limite rígido (em MiB) de memória a ser apresentado para a tarefa. Ela pode ser expressa como um inteiro usando MiB, por exemplo 1024, ou como uma string usando GB, por exemplo 1GB ou 1 GB, em uma definição de tarefa. Quando a definição de tarefa for registrada, um valor em GB será convertido em um inteiro indicando o MiB.

Para tarefas hospedadas noAmazon EC2instâncias, esse campo é opcional e qualquer valor pode ser usado. Se um valor de memória no nível de tarefa for especificado, o valor de memória no nível de contêiner será opcional. Se o seu cluster não tiver registrado instâncias de contêiner com a memória disponível, ocorrerá uma falha na tarefa. Se você deseja maximizar a utilização de recursos fornecendo às tarefas o máximo de memória possível para um determinado tipo de instância, consulte Gerenciamento de memória de Instância de contêiner.

Para tarefas hospedadas noFargate, esse campo será obrigatório e você deverá usar um dos valores a seguir, que determina o intervalo de valores compatíveis para ocpuParâmetro:

Valor de memória (MiB)

Valor de CPU

512 (0,5 GB), 1024 (1 GB), 2048 (2 GB)

256 (0,25 vCPU)

1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

512 (0,5 vCPU)

2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

1024 (1 vCPU)

Entre 4096 (4 GB) e 16384 (16 GB) em incrementos de 1024 (1 GB)

2048 (2 vCPU)

Entre 8192 (8 GB) e 30720 (30 GB) em incrementos de 1024 (1 GB)

4096 (4 vCPU)

Definições de contêiner

Ao registrar uma definição de tarefa, você deve especificar uma lista de definições de contêiner passadas para o daemon do Docker em uma instância de contêiner. Os parâmetros a seguir são permitidos em uma definição de contêiner.

Parâmetros de definição de contêiner padrão

Os parâmetros de definição de tarefa a seguir são obrigatórios ou usados na maioria das definições de contêiner.

Name

name

Tipo: string

Exigido: sim

O nome de um contêiner.São permitidos até 255 letras (caixa alta e baixa), números, hífens e sublinhados. Caso você esteja vinculando vários contêineres em uma definição de tarefa, o name de um contêiner pode ser informado no links de outro contêiner para conectar os contêineres.

Image

image

Tipo: string

Exigido: sim

A imagem usada para iniciar um contêiner. Esta string é passada diretamente para o daemon do Docker. As imagens no registro do Docker Hub estão disponíveis por padrão. Você também pode especificar outros repositórios comrepository-url/image:tagourepository-url/image@digest.São permitidos até 255 letras (caixa alta e baixa), números, hífens, sublinhados, dois pontos, ponto, barras e sinais numéricos. Esse parâmetro é mapeado paraImagenoCriar um contêinerSeção do doDocker Remote APIO e aIMAGEParâmetro dedocker run.

  • Quando uma nova tarefa é iniciada, o agente do contêiner do Amazon ECS obtém a versão mais recente da imagem especificada e a tag do contêiner a ser usado. No entanto, as atualizações subsequentes feitas em um repositório de imagens não são propagadas para tarefas já em execução.

  • As imagens em registros privados são suportadas. Para obter mais informações, consulte Autenticação de registro privado para.

  • As imagens nos repositórios do Amazon ECR podem ser especificadas usando a convenção de nomenclatura registry/repository:tag ou registry/repository@digest. Por exemplo, aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest ou aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE

  • As imagens em repositórios oficiais no Docker Hub usam um único nome (por exemplo, ubuntu ou mongo).

  • As imagens em outros repositórios no Docker Hub são qualificadas com um nome de organização (por exemplo, amazon/amazon-ecs-agent).

  • As imagens em outros repositórios on-line são ainda mais qualificadas por um nome de domínio (por exemplo, quay.io/assemblyline/ubuntu).

Memory

memory

Tipo: inteiro

Obrigatório: não

A quantidade (em MiB) de memória a ser apresentada ao contêiner. Caso tente exceder a memória especificada aqui, o contêiner será excluído. A quantidade total de memória reservada para todos os contêineres dentro da tarefa deve ser menor que o valor da tarefa memory, se estiver especificado. Este parâmetro é mapeado para Memory na seção Criar um contêiner do Docker Remote API e a opção --memory para docker run.

Se estiver usando o tipo de inicialização Fargate, esse parâmetro será opcional.

Se estiver usando o tipo de inicialização EC2, será necessário especificar um valor de memória no nível de tarefa ou um valor de memória no nível do contêiner. Se você especificar um nível de contêiner memory e um valor memoryReservation, memory deverá ser maior que memoryReservation. Caso você especifique memoryReservation, o valor é subtraído dos recursos de memória disponíveis para a instância de contêiner na qual o contêiner está colocado. Caso contrário, o valor de memory é usado.

O daemon do Docker reserva pelo menos 4 MiB de memória para um contêiner, de maneira que você não deve especificar menos de 4 MiB de memória para os contêineres.

nota

Se você deseja maximizar a utilização de recursos fornecendo às tarefas o máximo de memória possível para um determinado tipo de instância, consulte Gerenciamento de memória de Instância de contêiner.

memoryReservation

Tipo: inteiro

Obrigatório: não

O limite flexível (em MiB) de memória a ser reservado para o contêiner. Quando a memória do sistema está em contenção, o Docker tenta manter a memória do contêiner nesse limite flexível. Porém, o contêiner pode consumir mais memória quando necessário, até o limite fixo especificado com o parâmetro memory (se aplicável) ou toda a memória disponível na instância de contêiner, o que ocorrer primeiro. Este parâmetro é mapeado para MemoryReservation na seção Criar um contêiner do Docker Remote API e a opção --memory-reservation para docker run.

Se um valor de memória no nível de tarefa não for especificado, será necessário especificar um número inteiro diferente de zero para um ou ambos memory ou memoryReservation em uma definição de contêiner. Caso você especifique ambos, memory deve ser maior que memoryReservation. Caso você especifique memoryReservation, o valor é subtraído dos recursos de memória disponíveis para a instância de contêiner na qual o contêiner está colocado. Caso contrário, o valor de memory é usado.

Por exemplo, caso o contêiner normalmente use 128 MiB de memória, mas às vezes chega a 256 MiB de memória em períodos curtos, você pode definir um memoryReservation de 128 MiB e um limite fixo memory de 300 MiB. Essa configuração permitiria que contêiner reservasse apenas 128 MiB de memória dos recursos restantes na instância de contêiner, mas também permite que o contêiner consuma mais recursos de memória quando necessário.

O daemon do Docker reserva pelo menos 4 MiB de memória para um contêiner, de maneira que você não deve especificar menos de 4 MiB de memória para os contêineres.

Mapeamentos de porta

portMappings

Tipo: matriz de objeto

Obrigatório: não

Os mapeamentos de porta permitem que os contêineres acessem portas na instância de contêiner host para enviar ou receber tráfego.

Para definições de tarefa que usam o modo de rede awsvpc, você só deve especificar containerPort. A hostPort pode ser deixada em branco ou ser o mesmo valor de containerPort.

Os mapeamentos de porta no Windows usam o endereço de gateway NetNAT, e não o localhost. Como não há loopback para mapeamentos de porta no Windows, você não pode acessar a porta mapeada de um contêiner no próprio host.

Este parâmetro é mapeado para PortBindings na seção Criar um contêiner do Docker Remote API e a opção --publish para docker run. Caso o modo de rede de uma definição de tarefa seja definido como host, as portas host devem ser indefinidas ou corresponder à porta de contêiner no mapeamento de porta.

nota

Quando a tarefa obter o status RUNNING, as atribuições automáticas e manuais da porta do contêiner e do host estarão visíveis nos seguintes locais:

  • Console do: OVinculação de redeseção de uma descrição de contêiner para uma tarefa selecionada.

  • AWS CLI: a seção networkBindings do resultado do comando describe-tasks.

  • API: ODescribeTasksresposta.

containerPort

Tipo: inteiro

Obrigatório: sim, quando portMappings são usados

O número da porta no contêiner vinculado à porta host atribuída automaticamente ou especificada pelo usuário.

Se estiver usando contêineres em uma tarefa com o tipo de inicialização Fargate, as portas expostas deverão ser especificadas usando containerPort.

Se estiver usando contêineres em uma tarefa com o tipo de inicialização EC2 e especificar uma porta de contêiner e não uma porta de host, seus contêineres receberão uma porta de host no intervalo de portas efêmeras. Para obter mais informações, consulte hostPort. Os mapeamentos de porta atribuídos automaticamente dessa maneira não contam para o limite de 100 portas reservadas de uma instância de contêiner.

hostPort

Tipo: inteiro

Obrigatório: não

O número da porta na instância de contêiner a ser reservado para o contêiner.

Se você estiver usando contêineres em uma tarefa com o tipo de inicialização Fargate, hostPort poderá ser deixado em branco ou ser o mesmo valor que containerPort.

Se estiver usando contêineres em uma tarefa com o tipo de inicialização EC2, você poderá especificar uma porta de host não reservada para o mapeamento da porta do contêiner (conhecido como mapeamento estático da porta do host) ou omitir a hostPort (ou defini-la como 0) enquanto especifica um containerPort. O contêiner receberá automaticamente uma porta (conhecido como mapeamento dinâmico da porta do host) no intervalo de portas efêmero para o sistema operacional da instância do contêiner e a versão do Docker.

O intervalo de portas efêmero padrão para a versão 1.6.0 e posterior do Docker é listado na instância em /proc/sys/net/ipv4/ip_local_port_range. Se esse parâmetro de kernel estiver indisponível, o intervalo de portas efêmeras padrão de49153–65535é usado. Não tente especificar uma porta do host no intervalo de portas efêmero, pois elas estão reservadas para atribuição automática. Em geral, as portas abaixo de 32768 estão fora do intervalo de portas efêmero.

As portas reservadas padrão são 22 para SSH, as portas do Docker 2375 e 2376 e as portas do agente de contêiner do Amazon ECS 51678-51680. Qualquer porta host que tenha sido especificada pelo usuário anteriormente para uma tarefa em execução também é reservada enquanto a tarefa está em execução (depois que uma tarefa para, a porta host é liberada). As portas reservadas são exibidas na janela remainingResources da saída de describe-container-instances, e uma instância de contêiner pode ter até 100 portas reservadas de cada vez, incluindo as portas reservadas padrão. As portas atribuídas automaticamente não contam em relação ao limite de 100 portas reservadas.

protocol

Tipo: string

Obrigatório: não

O protocolo usado no mapeamento da porta. Os valores válidos são tcp e udp. O padrão é tcp.

Importante

O suporte a UDP só está disponível em instâncias de contêiner que foram executadas com a versão 1.2.0 do agente de contêiner do Amazon ECS (como a AMI amzn-ami-2015.03.c-amazon-ecs-optimized) ou posterior, ou ainda com agentes de contêiner que tenham sido atualizados para a versão 1.3.0 ou posterior. Para atualizar o agente de contêiner para a versão mais recente, consulte Atualização doAmazon ECSAgente do contêiner.

Caso você esteja especificando uma porta host, use a seguinte sintaxe:

"portMappings": [ { "containerPort": integer, "hostPort": integer } ... ]

Caso você queira uma porta host atribuída automaticamente, use a seguinte sintaxe:

"portMappings": [ { "containerPort": integer } ... ]

Parâmetros de definição de contêiner avançados

Os parâmetros de definição de contêiner avançados a seguir fornecem recursos estendidos ao comando docker run usado para ativar contêineres nas instâncias de contêiner do Amazon ECS.

Verificação de integridade

healthCheck

O comando da verificação de integridade de contêiner e os parâmetros de configuração associados para o contêiner. Este parâmetro é mapeado para HealthCheck na seção Criar um contêiner do Docker Remote API e o parâmetro HEALTHCHECK do docker run.

nota

O agente de contêiner do Amazon ECS só monitora e gera relatórios das verificações de integridade especificadas na definição da tarefa. O Amazon ECS não monitora verificações de integridade do Docker integradas a uma imagem de contêiner e não especificadas na definição de contêiner. Os parâmetros de verificação de integridade especificados em uma definição de contêiner substituem as verificações de integridade do Docker existentes na imagem do contêiner.

Você pode exibir o status de integridade de contêineres individuais e uma tarefa com a operação de API DescribeTask ou ao exibir os detalhes da tarefa no console.

Os itens a seguir descrevem os valores possíveis de healthStatus para um contêiner:

  • HEALTHY — a verificação de integridade do contêiner foi aprovada com êxito.

  • UNHEALTHY — a verificação de integridade do contêiner falhou.

  • UNKNOWN — a verificação de integridade do contêiner está sendo avaliada ou não há nenhuma verificação de integridade do contêiner definida.

Os itens a seguir descrevem os valores possíveis de healthStatus para uma tarefa: O status da verificação de integridade de contêineres não essenciais não afeta o status de integridade de uma tarefa.

  • HEALTHY — todos os contêineres essenciais dentro da tarefa foram aprovados em suas verificações de integridade.

  • UNHEALTHY — um ou mais contêineres essenciais foram reprovados em suas verificações de integridade.

  • UNKNOWN — os contêineres essenciais dentro da tarefa ainda estão tendo suas verificações de integridade avaliadas ou não há verificações de integridade do contêiner definidas.

Se uma tarefa for executada manualmente e não como parte de um serviço, ela continuará seu ciclo de vida independentemente do status de integridade. Para as tarefas que fazem parte de um serviço, se a tarefa for informada como não íntegra, ela será interrompida e o programador de serviço a substituirá.

Veja a seguir observações sobre a compatibilidade de verificação de integridade do contêiner:

  • As verificações de integridade do contêiner exigem a versão 1.17.0 ou posterior do agente de contêiner do Amazon ECS. Para obter mais informações, consulte Atualização doAmazon ECSAgente do contêiner.

  • As verificações de integridade do contêiner serão compatíveis com tarefas de Fargate se você estiver usando a versão 1.1.0 ou posterior da plataforma. Para obter mais informações, consulte Versões da plataforma AWS Fargate.

  • As verificações de integridade do contêiner não são compatíveis com tarefas que fazem parte de um serviço configurado para usar um Classic Load Balancer.

command

Uma matriz de strings que representa o comando executado pelo contêiner para determinar se ela está íntegra. A matriz de strings pode começar com CMD para executar os argumentos de comando diretamente ou CMD-SHELL para executar o comando com o shell padrão do contêiner. Se nenhum for especificado, CMD é usado como padrão.

Ao registrar uma definição de tarefa no AWS Management Console, use uma lista de comandos separados por vírgulas que será automaticamente convertida em uma string após a criação da definição de tarefa. Uma entrada de exemplo para uma verificação de integridade pode ser:

CMD-SHELL, curl -f http://localhost/ || exit 1

Ao registrar uma definição de tarefa usando o painel JSON do AWS Management Console, a AWS CLI ou as APIs, você deve estabelecer a lista de comandos entre colchetes. Uma entrada de exemplo para uma verificação de integridade pode ser:

[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]

Um código de saída 0 indica sucesso, e um código de saída diferente de zero indica falha. Para obter mais informações, consulte HealthCheck na seção Criar um contêiner do Docker Remote API.

interval

O período em segundos entre cada execução de verificação de integridade. É possível especificar entre 5 e 300 segundos. O valor de padrão é de 30 segundos.

timeout

O período de espera em segundos para que uma verificação de integridade seja bem-sucedida antes de ser considerada uma falha. É possível especificar entre 2 e 60 segundos. O valor de padrão é de 5 segundos.

retries

O número de novas tentativas de uma verificação de integridade com falha até o contêiner ser considerado não íntegro. É possível especificar entre 1 e 10 novas tentativas. O valor padrão é três novas tentativas.

startPeriod

O período de carência opcional para que os contêineres possam inicializar antes de as verificações de integridade com falha serem contabilizadas no número máximo de novas tentativas. É possível especificar entre 0 e 300 segundos. O startPeriod é desabilitado por padrão.

Environment

cpu

Tipo: inteiro

Obrigatório: não

O número de unidades de cpu que o agente de contêiner do Amazon ECS reservará para o contêiner. Este parâmetro é mapeado para CpuShares na seção Criar um contêiner do Docker Remote API e a opção --cpu-shares para docker run.

Esse campo é opcional para tarefas que usam o tipo de inicialização Fargate e a única exigência é que a quantidade total de CPU reservada para todos os contêineres dentro da tarefa seja inferior ao valor cpu em nível de tarefa.

nota

É possível determinar o número de unidades de CPU disponíveis por tipo de instância do Amazon EC2 multiplicando o número de vCPUs indicadas para esse tipo de instância na página de detalhes Instâncias do Amazon EC2 por 1.024.

Os contêineres do Linux compartilham unidades de CPU não alocadas com outros contêineres na instância de contêiner que tem a mesma proporção que a respectiva quantidade alocada. Por exemplo, caso você execute uma tarefa de contêiner único em um tipo de instância de núcleo único com 512 unidades de CPU especificadas para esse contêiner e essa seja a única tarefa em execução na instância de contêiner, o contêiner pode usar todo o compartilhamento de 1.024 unidades de CPU a qualquer momento. Porém, se você tivesse iniciado outra cópia da mesma tarefa nessa instância de contêiner, cada tarefa teria garantidas pelo menos 512 unidades de CPU quando necessário, e cada contêiner poderia flutuar para um uso de CPU mais alto se o outro contêiner não o estivesse usando, mas se ambas as tarefas estivessem 100% ativas o tempo todo, e elas estariam limitadas a 512 unidades de CPU.

Nas instâncias de contêiner do Linux, o daemon do Docker na instância de contêiner usa o valor de CPU para calcular as proporções de compartilhamento de CPU para contêineres em execução. Para obter mais informações, consulte CPU share constraint na documentação do Docker. O valor mínimo válido de compartilhamento da CPU permitido pelo kernel do Linux é 2. No entanto, o parâmetro de CPU não é necessário, e é possível usar valores de CPU abaixo de 2 em suas definições de contêiner. Para valores de CPU abaixo de 2 (inclusive nulo), o comportamento varia com base na versão do agente de contêiner do Amazon ECS:

  • Versões de agente <= 1.1.0: Os valores de CPU nulo e zero são passados para o Docker como 0, que o Docker acabou convertendo em 1.024 compartilhamentos de CPU. Os valores de CPU de 1 são passados para o Docker como 1, que o kernel do Linux converte para dois compartilhamentos de CPU.

  • Versões de agente >= 1.2.0: Os valores nulo, zero e de CPU de 1 são passados para o Docker como dois compartilhamentos de CPU.

Nas instâncias de contêiner do Windows, o limite de CPU é imposto como um limite absoluto ou uma cota. Os contêineres do Windows só têm acesso à quantidade de CPU especificada na definição de tarefa. Um valor de CPU nulo ou zero é transmitido para o Docker como 0, que o Windows interpreta como 1% de uma CPU.

gpu

Type: ResourceRequirementobjeto

Obrigatório: não

O número de GPUs físicas que o agente de contêiner do Amazon ECS reservará para o contêiner. O número de GPUs reservadas para todos os contêineres em uma tarefa não deve exceder o número de GPUs disponíveis na instância de contêiner na qual a tarefa é executada. Para obter mais informações, consulte Como trabalhar com GPUs elásticas no Amazon ECS.

nota

Não há suporte para esse parâmetro para os contêineres do Windows ou tarefas que usam o tipo de inicialização Fargate.

essential

Type: Booliano

Obrigatório: não

Caso o parâmetro essential de um contêiner esteja marcado como true e esse contêiner falhe ou pare por algum motivo, todos os outros contêineres que fazem parte da tarefa são parados. Caso o parâmetro essential de um contêiner esteja marcado como false, a falha não afeta o restante dos contêineres em uma tarefa. Caso esse parâmetro seja omitido, um contêiner pressupõe-se que um contêiner seja essencial.

Todas as tarefas devem ter pelo menos um contêiner essencial. Caso tenha um aplicativo composto de vários contêineres, você deve agrupar contêineres usados com uma finalidade em comum em componentes e separar os componentes diferentes em várias definições de tarefa. Para obter mais informações, consulte Arquitetura do.

"essential": true|false
entryPoint
Importante

As versões anteriores do agente de contêiner do Amazon ECS não lidam corretamente com parâmetros entryPoint. Caso você enfrente problemas para usar entryPoint, atualize o agente de contêiner ou informe os comandos e os argumentos como itens de matriz command em vez disso.

Tipo: matriz de strings

Obrigatório: não

O ponto de entrada passado para o contêiner. Este parâmetro é mapeado para Entrypoint na seção Criar um contêiner do Docker Remote API e a opção --entrypoint para docker run. Para obter mais informações sobre o parâmetro ENTRYPOINT do Docker, vá até https://docs.docker.com/engine/reference/builder/#entrypoint.

"entryPoint": ["string", ...]
command

Tipo: matriz de strings

Obrigatório: não

O comando passado para o contêiner. Este parâmetro é mapeado para Cmd na seção Criar um contêiner do Docker Remote API e o parâmetro COMMAND para docker run. Para obter mais informações sobre o parâmetro CMD do Docker, vá até https://docs.docker.com/engine/reference/builder/#cmd. Se houver vários argumentos, cada argumento deverá ser uma string separada na matriz.

"command": ["string", ...]
workingDirectory

Tipo: string

Obrigatório: não

O diretório de trabalho no qual executar comandos dentro do contêiner. Este parâmetro é mapeado para WorkingDir na seção Criar um contêiner do Docker Remote API e a opção --workdir para docker run.

"workingDirectory": "string"
environmentFiles

Tipo: matriz de objeto

Obrigatório: não

Uma lista de arquivos que contêm as variáveis de ambiente a serem passadas para um contêiner. Esse parâmetro é mapeado para a opção --env-file para o docker run.

Você pode especificar até dez arquivos de ambiente. O arquivo deve ter uma extensão .env. Cada linha em um arquivo de ambiente deve conter uma variável de ambiente no formato VARIABLE=VALUE. As linhas que começam com # são tratadas como comentários e são ignoradas. Para obter mais informações sobre a sintaxe de arquivos de variáveis de ambiente, consulte Declarar variáveis de ambiente padrão em arquivo.

Se houver variáveis de ambiente individuais especificadas na definição de contêiner, elas terão precedência sobre as variáveis contidas em um arquivo de ambiente. Se forem especificados vários arquivos de ambiente que contenham a mesma variável, elas serão processadas de cima para baixo. Recomenda-se usar nomes de variáveis exclusivos. Para obter mais informações, consulte Especificar variáveis de ambiente.

value

Type: String

: obrigatório Sim

O nome de recurso da Amazon (ARN) do objeto do Amazon S3 que contém o arquivo de variáveis de ambiente.

type

Type: String

: obrigatório Sim

Tipo de arquivo a ser usado O único valor suportado é s3.

environment

Tipo: matriz de objeto

Obrigatório: não

As variáveis de ambiente a serem passadas para um contêiner. Este parâmetro é mapeado para Env na seção Criar um contêiner do Docker Remote API e a opção --env para docker run.

Importante

Não recomendamos o uso de variáveis de ambiente de texto simples para informações confidenciais, tais como dados de credenciais.

name

Type: String

: obrigatório Sim, quandoenvironmenté usado

O nome da variável de ambiente.

value

Type: String

: obrigatório Sim, quandoenvironmenté usado

O valor da variável de ambiente.

"environment" : [ { "name" : "string", "value" : "string" }, { "name" : "string", "value" : "string" } ]
secrets

Type: Matriz de objeto

: obrigatório Não

Um objeto que representa o segredo a ser exposto ao seu contêiner. Para obter mais informações, consulte Especificando dados confidenciais.

name

Type: String

: obrigatório Sim

O valor a ser definido como a variável de ambiente no contêiner.

valueFrom

Type: String

: obrigatório Sim

O segredo a ser exposto ao contêiner. Os valores com suporte são o ARN completo do segredo do AWS Secrets Manager ou o ARN completo do parâmetro no Parameter Store do AWS Systems Manager.

nota

Se o parâmetro do Store parameter do Systems Manager existir na mesma região da tarefa que você está iniciando, você poderá usar o ARN completo ou o nome do segredo. Se o parâmetro existir em uma região diferente, o ARN completo deverá ser especificado.

"secrets": [ { "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name" } ]

Configurações de rede

disableNetworking

Type: Booliano

Obrigatório: não

Quando esse parâmetro é verdadeiro, a rede é desabilitada dentro do contêiner. Este parâmetro é mapeado para NetworkDisabled na seção Criar um contêiner do Docker Remote API.

nota

Esse parâmetro não oferece suporte para contêineres do Windows ou tarefas que usam o modo de rede awsvpc.

"disableNetworking": true|false
links

Tipo: matriz de strings

Obrigatório: não

O parâmetro link permite que os contêineres se comuniquem entre si sem a necessidade de mapeamentos de porta. Só haverá suporte se o modo de rede de uma definição de tarefa for definido como bridge. Oname:internalNameconstruto é análogo aoname:aliasnos links do Docker.São permitidos até 255 letras (caixa alta e baixa), números, hífens e sublinhados. Para obter mais informações sobre como vincular contêineres do Docker, vá até https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/. Este parâmetro é mapeado para Links na seção Criar um contêiner do Docker Remote API e a opção --link para docker run.

nota

Esse parâmetro não oferece suporte para contêineres do Windows ou tarefas que usam o modo de rede awsvpc.

Importante

Os contêineres colocados na mesma instância de contêiner podem ser capazes de se comunicar entre si sem exigir links ou mapeamentos de porta host. O isolamento de rede em uma instância de contêiner é controlado por grupos de segurança e configurações de VPC.

"links": ["name:internalName", ...]
hostname

Tipo: string

Obrigatório: não

O nome de host a ser usado para o contêiner. Este parâmetro é mapeado para Hostname na seção Criar um contêiner do Docker Remote API e a opção --hostname para docker run.

nota

O parâmetro hostname não será compatível se você estiver usando o modo de rede awsvpc.

"hostname": "string"
dnsServers

Tipo: matriz de strings

Obrigatório: não

Uma lista de servidores DNS apresentados ao contêiner. Este parâmetro é mapeado para Dns na seção Criar um contêiner do Docker Remote API e a opção --dns para docker run.

nota

Esse parâmetro não oferece suporte para contêineres do Windows ou tarefas que usam o modo de rede awsvpc.

"dnsServers": ["string", ...]
dnsSearchDomains

Tipo: matriz de strings

Obrigatório: não

Padrão: ^[a-zA-Z0-9-.]{0,253}[a-zA-Z0-9]$

Uma lista de domínios de pesquisa DNS apresentados ao contêiner. Este parâmetro é mapeado para DnsSearch na seção Criar um contêiner do Docker Remote API e a opção --dns-search para docker run.

nota

Esse parâmetro não oferece suporte para contêineres do Windows ou tarefas que usam o modo de rede awsvpc.

"dnsSearchDomains": ["string", ...]
extraHosts

Tipo: matriz de objeto

Obrigatório: não

Uma lista de nomes de host e mapeamentos de endereço IP a ser acrescentada ao arquivo /etc/hosts no contêiner.

Este parâmetro é mapeado para ExtraHosts na seção Criar um contêiner do Docker Remote API e a opção --add-host para docker run.

nota

Esse parâmetro não tem suporte para contêineres do Windows ou tarefas que usam o modo de rede awsvpc.

"extraHosts": [ { "hostname": "string", "ipAddress": "string" } ... ]
hostname

Tipo: string

Obrigatório: sim, quando extraHosts são usados

O nome do host a ser usado na entrada /etc/hosts.

ipAddress

Tipo: string

Obrigatório: sim, quando extraHosts são usados

O endereço IP a ser usado na entrada /etc/hosts.

Armazenamento e registro em log

readonlyRootFilesystem

Type: Booliano

Obrigatório: não

Quando esse parâmetro é verdadeiro, o contêiner recebe acesso somente leitura ao sistema de arquivos raiz. Este parâmetro é mapeado para ReadonlyRootfs na seção Criar um contêiner do Docker Remote API e a opção --read-only para docker run.

nota

Este parâmetro não é compatível com contêineres do Windows.

"readonlyRootFilesystem": true|false
mountPoints

Type: Object Array

Required: No

The mount points for data volumes in your container.

This parameter maps to Volumes in the Criar um contêiner section of the Docker Remote API and the --volume option to docker run.

Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows containers cannot mount directories on a different drive, and mount point cannot be across drives.

sourceVolume

Type: String

Required: Yes, when mountPoints are used

The name of the volume to mount.

containerPath

Type: String

Required: Yes, when mountPoints are used

The path on the container to mount the volume at.

readOnly

Type: Boolean

Required: No

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

volumesFrom

Type: Matriz de objeto

: obrigatório Não

Volumes de dados a serem montados de outro contêiner. Este parâmetro é mapeado para VolumesFrom na seção Criar um contêiner do Docker Remote API e a opção --volumes-from para docker run.

sourceContainer

Tipo: string

Obrigatório: sim, quando volumesFrom for usado

O nome do contêiner com base no qual montar volumes.

readOnly

Type: Booliano

Obrigatório: não

Caso o valor seja true, o contêiner tem acesso somente leitura ao volume. Caso esse valor seja false, o contêiner pode gravar no volume. O valor padrão é false.

"volumesFrom": [ { "sourceContainer": "string", "readOnly": true|false } ]
logConfiguration

Type: LogConfigurationObjeto

Obrigatório: não

A especificação de configuração do log para o contêiner.

Para obter definições de tarefa de exemplo que usam uma configuração de log, consulte Exemplos de definições de tarefa.

Este parâmetro é mapeado para LogConfig na seção Criar um contêiner do Docker Remote API e a opção --log-driver para docker run. Por padrão, os contêineres usam o mesmo driver de registro em log usado pelo daemon do Docker. Porém, o contêiner pode usar um driver de registro em log diferente do daemon do Docker especificando um driver de log com esse parâmetro na definição de contêiner. Para usar um driver de registro em log diferente para um contêiner, o sistema de log deve ser configurado corretamente na instância de contêiner (ou em um servidor de log diferente para opções de registro em log remotas). Para obter mais informações sobre as opções para drivers de log compatíveis diferentes, consulte Configure logging drivers na documentação do Docker.

Deve-se observar o seguinte ao especificar uma configuração de log para seus contêineres:

  • No momento, o Amazon ECS oferece suporte a um subconjunto de drivers de registro em log disponíveis para o daemon do Docker (mostrado nos valores válidos abaixo). Drivers de log adicionais podem estar disponíveis em versões futuras do agente de contêiner do Amazon ECS.

  • Este parâmetro requer que a versão 1.18 da API remota do Docker ou posterior em sua instância de contêiner.

  • Para tarefas usando o tipo de inicialização do EC2, o agente de contêiner do Amazon ECS em execução em uma instância de contêiner deve registrar os drivers de registro em log disponíveis nessa instância com a variável de ambiente ECS_AVAILABLE_LOGGING_DRIVERS antes que os contêineres colocados nessa instância possam usar essas opções de configuração de log. Para obter mais informações, consulte Amazon ECSConfiguração do agente de contê.

  • Para tarefas usando o tipo de inicialização do Fargate, como você não tem acesso à infraestrutura subjacente na qual suas tarefas estão hospedadas, qualquer software adicional necessário terá que ser instalado fora da tarefa. Por exemplo, os agregadores de saída Fluentd ou um host remoto executando o Logstash para o qual enviar logs Gelf.

"logConfiguration": { "logDriver": "awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens", "options": {"string": "string" ...}, "secretOptions": [{ "name": "string", "valueFrom": "string" }] }
logDriver

Tipo: string

Valores válidos: "awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens"

Obrigatório: sim, quando logConfiguration for usado

O driver de log a ser usado para o contêiner. Os valores válidos listados acima são drivers de log com os quais o agente de contêiner do Amazon ECS pode se comunicar por padrão.

Para tarefas que usam o tipo de inicialização Fargate, os drivers de log compatíveis são awslogs, splunk e awsfirelens.

Para tarefas que usam o tipo de inicialização EC2, os drivers de log compatíveis são awslogs, fluentd, gelf, json-file, journald, logentries, syslog, splunk e awsfirelens.

Para obter mais informações sobre como usar o driver de log awslogs em definições de tarefa a fim de enviar os logs de contêiner para o CloudWatch Logs, consulte Uso do driver de log awslogs.

Para obter mais informações sobre como usar o driver de log awsfirelens, consulte Roteamento de logs personalizados.

nota

Se tiver um driver personalizado não listado acima, você poderá dividir o projeto do agente de contêiner do Amazon ECS que está disponível no GitHub e personalizá-lo para funcionar com esse driver. Incentivamos você a enviar solicitações de envio para alterações que você gostaria de ter incluído. Porém, no momento, não oferecemos suporte à execução de cópias modificadas desse software.

Este parâmetro requer que a versão 1.18 da API remota do Docker ou posterior em sua instância de contêiner.

options

Tipo: mapa string para string

Obrigatório: não

As opções de configuração a serem enviadas para o driver de log.

Este parâmetro requer que a versão 1.19 da API remota do Docker ou posterior em sua instância de contêiner.

secretOptions

Tipo: matriz de objeto

Obrigatório: não

Um objeto que representa o segredo a ser passado para a configuração de log. Para obter mais informações, consulte Especificando dados confidenciais.

name

Type: String

: obrigatório Sim

O valor a ser definido como a variável de ambiente no contêiner.

valueFrom

Type: String

: obrigatório Sim

O segredo a ser exposto à configuração de log do contêiner.

"logConfiguration": { "logDriver": "splunk", "options": { "splunk-url": "https://cloud.splunk.com:8080", "splunk-token": "...", "tag": "...", ... }, "secretOptions": [{ "name": "splunk-token", "valueFrom": "/ecs/logconfig/splunkcred" }] }
firelensConfiguration

Type: FirelensConfigurationObjeto

: obrigatório Não

A configuração do FireLens para o contêiner. Isso é usado para especificar e configurar um roteador de log para logs de contêiner. Para obter mais informações, consulte Rotear logs personalizados.

{ "firelensConfiguration": { "type": "fluentd", "options": { "KeyName": "" } } }
options

Type: Mapa de string para string

: obrigatório Não

As opções a serem usadas ao configurar o roteador de log. Esse campo é opcional e pode ser usado para especificar um arquivo de configuração personalizado ou para adicionar outros metadados, como a tarefa, a definição de tarefa, o cluster e detalhes da instância de contêiner ao evento de log. Se especificado, a sintaxe a ser usada é"options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"}. Para obter mais informações, consulte Criando uma definição de tarefa que usa uma configuração do FireLens.

type

Type: String

: obrigatório Sim

O roteador de log a ser usado. Os valores válidos são fluentd ou fluentbit.

Security

privileged

Type: Booliano

Obrigatório: não

Quando esse parâmetro é verdadeiro, o contêiner recebe privilégios elevados na instância de contêiner host (semelhante ao usuário root).

Este parâmetro é mapeado para Privileged na seção Criar um contêiner do Docker Remote API e a opção --privileged para docker run.

nota

Não há suporte para esse parâmetro para os contêineres do Windows ou tarefas que usam o tipo de inicialização Fargate.

"privileged": true|false
user

Tipo: string

Obrigatório: não

O usuário a ser utilizado dentro do contêiner. Este parâmetro é mapeado para User na seção Criar um contêiner do Docker Remote API e a opção --user para docker run.

Importante

Ao executar tarefas usando o modo de rede host, você não deve executar contêineres usando o usuário raiz (UID 0). É considerada a melhor prática usar um usuário que não seja raiz.

É possível especificar o user usando os formatos a seguir. Se especificar um UID ou um GID, você deverá especificá-lo como um número inteiro positivo.

  • user

  • user:group

  • uid

  • uid:gid

  • user:gid

  • uid:group

nota

Este parâmetro não é compatível com contêineres do Windows.

"user": "string"
dockerSecurityOptions

Tipo: matriz de strings

Valores válidos: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"

Obrigatório: não

Uma lista de strings a fim de fornecer rótulos personalizados para sistemas de segurança multinível SELinux e AppArmor. Para obter mais informações sobre valores válidos, consulte Configuração de segurança na execução do Docker. Esse campo não é válido para contêineres em tarefas que usam o tipo de inicialização Fargate.

Com contêineres do Windows, esse parâmetro pode ser usado para fazer referência a um arquivo de especificação de credenciais ao configurar um contêiner para autenticação do Active Directory. Para obter mais informações, consulte Utilização do gMSAs para contêineres do Windows.

Este parâmetro é mapeado para SecurityOpt na seção Criar um contêiner do Docker Remote API e a opção --security-opt para docker.

"dockerSecurityOptions": ["string", ...]
nota

O agente de contêiner do Amazon ECS em execução em uma instância de contêiner deve se registrar com as variáveis de ambiente ECS_SELINUX_CAPABLE=true ou ECS_APPARMOR_CAPABLE=true para contêineres colocados nessa instância possam usar essas opções de segurança. Para obter mais informações, consulte Amazon ECSConfiguração do agente de contê.

Limites de recurso

ulimits

Tipo: matriz de objeto

Obrigatório: não

Lista deulimitvalores a serem definidos para um contêiner. Esse valor substituiria a configuração de limite de recursos padrão para o sistema operacional. Este parâmetro é mapeado para Ulimits na seção Criar um contêiner do Docker Remote API e a opção --ulimit para docker run.

As tarefas do Amazon ECS hospedadas no Fargate usam os valores-limite de recursos padrão definidos pelo sistema operacional, com exceção do parâmetro limite de recursos nofile que o Fargate substitui. O limite de recursos nofile define uma restrição sobre o número de arquivos abertos que um contêiner pode usar. O limite flexível nofile padrão é 1024 e o limite rígido é 4096. Para obter mais informações, consulteLimites de recursos de.

Este parâmetro requer que a versão 1.18 da API remota do Docker ou posterior em sua instância de contêiner.

nota

Este parâmetro não é compatível com contêineres do Windows.

"ulimits": [ { "name": "core"|"cpu"|"data"|"fsize"|"locks"|"memlock"|"msgqueue"|"nice"|"nofile"|"nproc"|"rss"|"rtprio"|"rttime"|"sigpending"|"stack", "softLimit": integer, "hardLimit": integer } ... ]
name

Tipo: string

Valores válidos: "core" | "cpu" | "data" | "fsize" | "locks" | "memlock" | "msgqueue" | "nice" | "nofile" | "nproc" | "rss" | "rtprio" | "rttime" | "sigpending" | "stack"

Obrigatório: sim, quando ulimits são usados

O type do ulimit.

hardLimit

Tipo: inteiro

Obrigatório: sim, quando ulimits são usados

O limite rígido do tipo ulimit.

softLimit

Tipo: inteiro

Obrigatório: sim, quando ulimits são usados

O limite flexível do tipo ulimit.

Rótulos do Docker

dockerLabels

Tipo: mapa string para string

Obrigatório: não

Um mapa de chave/valor de rótulos a ser adicionado ao contêiner. Este parâmetro é mapeado para Labels na seção Criar um contêiner do Docker Remote API e a opção --label para docker run.

Este parâmetro requer que a versão 1.18 da API remota do Docker ou posterior em sua instância de contêiner.

"dockerLabels": {"string": "string" ...}

Outros parâmetros de definição de contêiner padrão

Os parâmetros de definição de contêiner a seguir podem ser usados durante o registro das definições de tarefa no console do Amazon ECS usando a opção Configure via JSON (Configurar via JSON). Para obter mais informações, consulte Criar uma definição de tarefa.

Parâmetros do Linux

linuxParameters

Type: LinuxParametersobjeto

Obrigatório: não

Opções específicas do Linux que são aplicadas ao contêiner, como KernelCapabilities.

nota

Este parâmetro não é compatível com contêineres do Windows.

"linuxParameters": { "capabilities": { "add": ["string", ...], "drop": ["string", ...] } }
capabilities

Type: KernelCapabilitiesobjeto

Obrigatório: não

Os recursos do Linux para o contêiner que são adicionados à configuração padrão fornecida pelo Docker ou descartados dela. Para obter mais informações sobre os recursos padrão e não padrão disponíveis, consulte Privilégio de tempo de execução e recursos do Linux na Referência de execução do Docker. Para obter informações mais detalhadas sobre esses recursos do Linux, consulte a página do manual do Linux recursos(7).

add

Tipo: matriz de strings

Valores válidos: "ALL" | "AUDIT_CONTROL" | "AUDIT_READ" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"

Obrigatório: não

Os recursos do Linux para o contêiner que são adicionados à configuração padrão fornecida pelo Docker. Este parâmetro é mapeado para CapAdd na seção Criar um contêiner do Docker Remote API e a opção --cap-add para docker run.

nota

Tarefas iniciadas emFargatesuportam apenas a adição deSYS_PTRACECapacidade do kernel.

drop

Tipo: matriz de strings

Valores válidos: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"

Obrigatório: não

Os recursos do Linux para o contêiner que são removidos da configuração padrão fornecida pelo Docker. Este parâmetro é mapeado para CapDrop na seção Criar um contêiner do Docker Remote API e a opção --cap-drop para docker run.

devices

Todos os dispositivos do host a serem expostos ao contêiner. Este parâmetro é mapeado para Devices na seção Criar um contêiner do Docker Remote API e a opção --device para docker run.

nota

Se você estiver usando tarefas que utilizem o tipo de inicialização Fargate, não haverá suporte para o parâmetro devices.

Type: Matriz deDispositivoobjects

: obrigatório Não

hostPath

O caminho para o dispositivo na instância do contêiner do host.

Type: String

: obrigatório Sim

containerPath

O caminho dentro do contêiner no qual expor o dispositivo do host.

Type: String

: obrigatório Não

permissions

As permissões explícitas a serem fornecidas ao contêiner para o dispositivo. Por padrão, o contêiner tem permissões para read, write e mknod no dispositivo.

Type: Matriz de strings

Valores válidos: read | write | mknod

initProcessEnabled

Execute um processo init dentro do contêiner que encaminha sinais e colhe processos. Esse parâmetro mapeia para a opção --init para docker run.

Este parâmetro requer a versão 1.25 ou posterior da API remota do Docker em sua instância de contêiner.

maxSwap

A quantidade total de memória de troca (em MiB) que um contêiner pode usar. Esse parâmetro será convertido na opção --memory-swap para docker run em que o valor seria a soma da memória do contêiner mais o valor de maxSwap.

Se um valor maxSwap de 0 for especificado, o contêiner não usará a troca. Os valores aceitos são 0 ou qualquer número inteiro positivo. Se o parâmetro maxSwap for omitido, o contêiner usará a configuração de troca para a instância de contêiner na qual ele está sendo executado. Um valor maxSwap deve ser definido para que o parâmetro swappiness seja usado.

nota

Se você estiver usando tarefas que utilizem o tipo de inicialização Fargate, não haverá suporte para o parâmetro maxSwap.

sharedMemorySize

O valor do tamanho (em MiB) do volume /dev/shm. Esse parâmetro mapeia para a opção --shm-size para docker run.

nota

Se você estiver usando tarefas que utilizem o tipo de inicialização Fargate, não haverá suporte para o parâmetro sharedMemorySize.

Type: Inteiro

swappiness

Isso permite ajustar o comportamento de troca de memória de um contêiner. Um valor swappiness de 0 fará com que a troca não ocorra, a menos que seja absolutamente necessário. Um valor swappiness de 100 fará com que as páginas sejam trocadas de forma muito agressiva. Os valores aceitos são números inteiros entre 0 e 100. Se o parâmetro swappiness não for especificado, será usado um valor padrão de 60. Se nenhum valor for especificado para maxSwap, esse parâmetro será ignorado. Esse parâmetro mapeia para a opção --memory-swappiness para docker run.

nota

Se você estiver usando tarefas que utilizem o tipo de inicialização Fargate, não haverá suporte para o parâmetro swappiness.

tmpfs

O caminho do contêiner, as opções de montagem e o tamanho (em MiB) da montagem tmpfs. Esse parâmetro mapeia para a opção --tmpfs para docker run.

nota

Se você estiver usando tarefas que utilizem o tipo de inicialização Fargate, não haverá suporte para o parâmetro tmpfs.

Type: Matriz deTmpfsobjects

: obrigatório Não

containerPath

O caminho absoluto do arquivo no qual o volume tmpfs deve ser montado.

Type: String

: obrigatório Sim

mountOptions

A lista de opções de montagem de volume tmpfs.

Type: Matriz de strings

: obrigatório Não

Valores válidos: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev" | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" | "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime" | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"

size

O tamanho máximo (em MiB) do volume tmpfs.

Type: Inteiro

: obrigatório Sim

Dependência de contêiner

dependsOn

Type: Matriz deContainerDependencyobjects

Obrigatório: não

As dependências definidas para inicialização e desligamento do contêiner. Um contêiner pode conter várias dependências. Quando uma dependência é definida para a inicialização do contêiner, ela é revertida para o desligamento do contêiner. Para ver um exemplo, consulte Exemplo: Dependência de contentores.

nota

Se um contêiner não atender a uma restrição de dependência ou o tempo limite antes de atender a restrição,Amazon ECSnão progride contêineres dependentes para seu próximo estado.

para oAmazon ECStarefas hospedadas emAmazon EC2instâncias, as instâncias exigem pelo menos a versão1.26.0do agente de contêiner para habilitar dependências de contêiner. No entanto, recomendamos usar a versão mais recente do agente de contêiner. Para obter informações sobre como verificar a versão do agente e atualizar para a versão mais recente, consulte Atualização doAmazon ECSAgente do contêiner. Se você estiver usando umAmazon ECS-optimized Amazon Linux AMI, sua instância precisa de pelo menos versão1.26.0-1doecs-initPacote. Se as instâncias de contêiner são executadas na versão 20190301 ou posterior, então elas contêm as versões necessárias do agente de contêiner e do ecs-init. Para obter mais informações, consulte Amazon ECS-optimized AMI.

para oAmazon ECStarefas hospedadas emFargate, esse parâmetro exige que a tarefa ou o serviço use a versão da plataforma1.3.0ou posterior.

"dependsOn": [ { "containerName": "string", "condition": "string" } ]
containerName

Type: String

: obrigatório Sim

O nome do contêiner que deve atender à condição especificada.

condition

Type: String

: obrigatório Sim

A condição de dependência do contêiner. A seguir estão as condições disponíveis e seus comportamentos:

  • START – essa condição emula o comportamento de links e volumes hoje. Ela valida que um contêiner dependente seja iniciado antes de permitir que outros contêineres sejam iniciados.

  • COMPLETE – essa condição valida que um contêiner dependente seja executado até a conclusão (encerramento) antes de permitir que outros contêineres sejam iniciados. Isso pode ser útil para os contêineres não essenciais que executam um script e depois são encerrados. Não é possível definir essa condição em um contêiner essencial.

  • SUCCESS – essa condição é igual à COMPLETE, mas também exige que o contêiner seja encerrado com um status zero. Não é possível definir essa condição em um contêiner essencial.

  • HEALTHY – essa condição valida que o contêiner dependente passe sua verificação de integridade do Docker antes de permitir que outros contêineres sejam iniciados. Isso requer que o contêiner dependente tenha as verificações de integridade configuradas. Essa condição é confirmada apenas na inicialização da tarefa.

Tempos limite de container

startTimeout

Type: Inteiro

Obrigatório: não

Valores de exemplo: 120

Tempo a ser aguardado (em segundos) antes de desistir de resolver dependências para um contêiner.

Por exemplo, você especifica dois contêineres em uma definição de tarefa comcontainerAtendo uma dependência emcontainerBatingindo umCOMPLETE,SUCCESS, ouHEALTHYStatus. Em caso destartTimeouté especificado paracontainerBe ele não atingir o status desejado dentro desse tempo, entãocontainerAvai desistir e não começar.

nota

Se um contêiner não atender a uma restrição de dependência ou o tempo limite antes de atender a restrição,Amazon ECSnão progride contêineres dependentes para seu próximo estado.

para oAmazon ECStarefas hospedadas emFargate, esse parâmetro exige que a tarefa ou o serviço use a versão da plataforma1.3.0ou posterior. Ao usar a versão da plataforma1.4.0, se esse parâmetro não for especificado, o valor padrão de60segundos é usado.

stopTimeout

Type: Inteiro

Obrigatório: não

Valores de exemplo: 120

Período (em segundos) a ser aguardado antes de o contêiner ser eliminado de maneira forçada se não for encerrado normalmente por conta própria.

Para tarefas que usam o tipo de execução Fargate, a tarefa ou o serviço exigem a versão 1.3.0 ou posterior da plataforma. O valor máximo do tempo limite de interrupção é de 120 segundos e, se o parâmetro não for especificado, será usado o valor padrão de 30 segundos.

Para tarefas que usam o tipo de execução EC2, se o parâmetro stopTimeout não for especificado, o valor definido para a variável de configuração do agente do contêiner do Amazon ECS, ECS_CONTAINER_STOP_TIMEOUT, será usado por padrão. Se nem o parâmetro stopTimeout nem a variável de configuração do agente ECS_CONTAINER_STOP_TIMEOUT forem definidos, serão usados os valores padrão de 30 segundos para contêineres do Linux e 30 segundos para contêineres do Windows. As instâncias de contêiner exigem pelo menos a versão 1.26.0 do agente de contêiner para habilitar um valor de tempo limite de interrupção de contêiner. No entanto, recomendamos usar a versão mais recente do agente de contêiner. Para obter informações sobre como verificar a versão do agente e atualizar para a versão mais recente, consulte Atualização doAmazon ECSAgente do contêiner. Se você estiver usando uma Amazon ECS-optimized Amazon Linux AMI, sua instância precisará pelo menos da versão 1.26.0-1 do pacote ecs-init. Se as instâncias de contêiner são executadas na versão 20190301 ou posterior, então elas contêm as versões necessárias do agente de contêiner e do ecs-init. Para obter mais informações, consulte Amazon ECS-optimized AMI.

Controles do sistema

systemControls

Type: SystemControlobjeto

Obrigatório: não

Uma lista de parâmetros de kernel com namespace a ser definida no contêiner. Este parâmetro é mapeado para Sysctls na seção Criar um contêiner do Docker Remote API e a opção --sysctl para docker run.

Não é recomendável especificar parâmetros systemControls relacionados à rede para vários contêineres em uma única tarefa que também usa o modo de rede awsvpc ou host pelos seguintes motivos:

  • Para tarefas que usam o modo de rede awsvpc, se você definir systemControls para qualquer contêiner, ele se aplicará a todos os contêineres na tarefa. Se você definir um systemControls diferente para vários contêineres em uma única tarefa, o contêiner iniciado por último determinará que systemControls entre em vigor.

  • Para tarefas que usam o modo de rede host, o namespace de rede systemControls não é compatível.

Se você estiver configurando um namespace de recurso IPC para usar nos contêineres da tarefa, os itens a seguir serão aplicados aos controles do sistema. Para obter mais informações, consulte Modo IPC.

  • Para tarefas que usam o modo IPC host, o namespace IPC systemControls não é compatível.

  • Para tarefas que usam o modo IPC de task, os valores de systemControls do namespace IPC serão aplicados a todos os contêineres em uma tarefa.

nota

Não há suporte para esse parâmetro para os contêineres do Windows ou tarefas que usam o tipo de inicialização Fargate.

"systemControls": [ { "namespace":"string", "value":"string" } ]
namespace

Type: String

Obrigatório: não

O parâmetro de kernel com namespace para definição de um value.

Valores de namespace IPC válidos: "kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced", bem como Sysctls começando com "fs.mqueue.*"

Valores de namespace de rede válidos: Sysctls começando com"net.*"

value

Type: String

Obrigatório: não

O valor do parâmetro de kernel do namespace especificado em namespace.

Interactive

interactive

Type: Booliano

Obrigatório: não

Quando esse parâmetro é true, isso permite implantar aplicativos em contêineres que exigem a alocação de stdin ou um tty. Este parâmetro é mapeado para OpenStdin na seção Criar um contêiner do Docker Remote API e a opção --interactive para docker run.

Pseudoterminal

pseudoTerminal

Type: Booliano

Obrigatório: não

Quando esse parâmetro é true, um TTY é alocado. Este parâmetro é mapeado para Tty na seção Criar um contêiner do Docker Remote API e a opção --tty para docker run.

Limitações de posicionamento de tarefa

Ao registrar uma definição de tarefa, você pode fornecer limitações de posicionamento de tarefa que personalizam como o Amazon ECS faz tarefas.

Se você estiver usando o tipo de inicialização Fargate, as restrições de posicionamento de tarefas não serão compatíveis. Por padrão, as tarefas Fargate são distribuídas entre as zonas de disponibilidade.

Para tarefas que usam o tipo de inicialização EC2, você pode usar restrições para inserir tarefas com base na zona de disponibilidade, no tipo de instância ou nos atributos personalizados. Para obter mais informações, consulte Amazon ECSrestrições de posicionamento de tarefa.

Os parâmetros a seguir são permitidos em uma definição de contêiner:

expression

Tipo: string

Obrigatório: não

Uma expressão de idioma de consulta de cluster a ser aplicada à restrição. Para obter mais informações, consulte Linguagem do cluster.

type

Tipo: string

Exigido: sim

O tipo de restrição. Use memberOf para restringir a seleção a um grupo de candidatos válidos.

Configuração do proxy

proxyConfiguration

Type: ProxyConfigurationobjeto

Obrigatório: não

Os detalhes de configuração do proxy do App Mesh.

Para as tarefas que usam o tipo de inicialização EC2, as instâncias de contêiner exigem pelo menos a versão 1.26.0 do agente de contêiner e pelo menos a versão 1.26.0-1 do pacote ecs-init para habilitar uma configuração de proxy. Se as instâncias de contêiner forem executadas a partir da versão de AMI 20190301 ou posterior otimizada para Amazon ECS, elas conterão as versões necessárias do agente de contêiner e do ecs-init. Para obter mais informações, consulte Amazon ECS-optimized AMI.

Para tarefas que usam o tipo de inicialização Fargate, esse recurso exige que a tarefa ou o serviço use a plataforma versão 1.3.0 ou posterior.

nota

Este parâmetro não é compatível com contêineres do Windows.

"proxyConfiguration": { "type": "APPMESH", "containerName": "string", "properties": [ { "name": "string", "value": "string" } ] }
type

Type: String

Valor: APPMESH

Obrigatório: obrigatório Não

O tipo de proxy. O único valor suportado é APPMESH.

containerName

Type: String

Obrigatório: obrigatório Sim

O nome do contêiner que servirá como proxy do App Mesh.

properties

Type: Matriz deKeyValuePairobjects

Obrigatório: obrigatório Não

O conjunto de parâmetros de configuração de rede para fornecer o plug-in Container Network Interface (CNI), especificado como pares de chave/valor.

  • IgnoredUID – (Obrigatório) O ID de usuário (UID) do contêiner de proxy conforme definido pelo parâmetro user em uma definição de contêiner. Isso é usado para garantir que o proxy ignore seu próprio tráfego. Se IgnoredGID for especificado, esse campo poderá estar vazio.

  • IgnoredGID – (Obrigatório) O ID de grupo (GID) do contêiner de proxy conforme definido pelo parâmetro user em uma definição de contêiner. Isso é usado para garantir que o proxy ignore seu próprio tráfego. Se IgnoredUID for especificado, esse campo poderá estar vazio.

  • AppPorts – (Obrigatório) A lista de portas que o aplicativo usa. O tráfego de rede para essas portas é encaminhado para ProxyIngressPort e ProxyEgressPort.

  • ProxyIngressPort – (Obrigatório) Especifica a porta para a qual o tráfego de entrada para AppPorts é direcionado.

  • ProxyEgressPort – (Obrigatório) Especifica a porta para a qual o tráfego de saída de AppPorts é direcionado.

  • EgressIgnoredPorts – (Obrigatório) O tráfego de saída para essas portas especificadas é ignorado e não é redirecionado para ProxyEgressPort. Ele pode ser uma lista vazia.

  • EgressIgnoredIPs – (Obrigatório) O tráfego de saída para esses endereços IP especificados é ignorado e não é redirecionado para ProxyEgressPort. Ele pode ser uma lista vazia.

name

Type: String

Obrigatório: obrigatório Não

O nome do par de chave/valor.

value

Type: String

Obrigatório: obrigatório Não

O valor do par de chave/valor.

Volumes

Se preferir, ao registrar uma definição de tarefa, você poderá especificar uma lista de volumes a serem passados para o daemon do Docker em uma instância de contêiner, que se tornará disponível para o acesso de outros contêineres da mesma instância de contêiner.

A seguir estão os tipos de volumes de dados que podem ser usados:

  • Volumes do Docker: um volume gerenciado pelo Docker criado em /var/lib/docker/volumes na instância do Amazon EC2 de host. Drivers de volume do Docker (também conhecidos como plug-ins) são usados para integrar os volumes com os sistemas de armazenamento externos, como o Amazon EBS. O driver de volume local integrado ou um driver de volume de terceiros podem ser usados. Os volumes do Docker só são compatíveis ao executar tarefas em instâncias do Amazon EC2. Os contêineres do Windows só são compatíveis com o uso do driver . Para usar os volumes do Docker, especifique uma em sua definição de tarefa. Para obter mais informações, consulte Usar volumes.

  • Montagens bind — Um arquivo ou diretório na máquina de host será montado em um contêiner. Os volumes de host de montagem bind são compatíveis ao executar tarefas em instâncias do Amazon EC2 ou do AWS Fargate. Para usar os volumes de host de montagens bind, especifique um sourcePath e um valor opcional em sua definição de tarefa. Para obter mais informações, consulte Usar montagens bind.

Para obter mais informações, consulte Uso de volumes de dados em tarefas.

Os parâmetros a seguir são permitidos em uma definição de contêiner:

name

Tipo: string

Exigido: Não

O nome do volume. São permitidos até 255 letras (caixa alta e baixa), números, hífens e sublinhados. Este nome é referenciado no parâmetro sourceVolume da definição de contêiner do objeto mountPoints.

host

Obrigatório: não

nota

O parâmetro host só é permitido ao usar tarefas hospedadas em instâncias do Amazon EC2.

O parâmetro host é usado para vincular o ciclo de vida da montagem bind à instância do Amazon EC2 do host, em vez da tarefa, e onde ele é armazenado. Caso o parâmetro host esteja vazio, o daemon do Docker atribui um caminho host para o volume de dados, mas os dados não têm garantia de persistir depois que os contêineres associados deixarem de ser executados.

Os contêineres do Windows podem montar diretórios inteiros na mesma unidade como $env:ProgramData.

sourcePath

Tipo: string

Obrigatório: não

Quando o parâmetro host for usado, especifique um sourcePath para declarar o caminho na instância do Amazon EC2 do host que é apresentada ao contêiner. Caso esse parâmetro esteja vazio, o daemon do Docker atribui um caminho host para você. Caso o parâmetro host contenha um local de arquivo sourcePath, o volume de dados persistirá no local especificado na instância do Amazon EC2 do host até você excluí-lo manualmente. Caso o valor sourcePath não exista na instância do Amazon EC2 do host, o daemon do Docker o criará. Caso o local exista, o conteúdo da pasta do caminho de origem é exportado.

dockerVolumeConfiguration

Tipo: objeto

Exigido: Não

Esse parâmetro é especificado ao usar volumes do Docker. Os volumes do Docker só são compatíveis ao executar tarefas em instâncias do EC2. Os contêineres do Windows só são compatíveis com o uso do driver . Para usar montagens bind, em vez disso, especifique um host.

scope

Tipo: string

Valores válidos: task | shared

Exigido: Não

O escopo para o volume do Docker, que determina o ciclo de vida. Os volumes do Docker que são delimitados para uma task são provisionados automaticamente quando a tarefa é iniciada e destruídos quando a tarefa é limpa. Volumes do Docker delimitados como são mantidos após a interrupção da tarefa.

autoprovision

Tipo: booliano

Valor padrão: false

Exigido: Não

Se o valor for true, o volume do Docker será criado caso não existir. Esse campo só é usado se scope for shared. Se o scope for task, esse parâmetro deve ser omitido ou definido como false.

driver

Tipo: string

Exigido: Não

O driver do volume do Docker a ser usado. O valor de driver deve combinar com o nome de driver fornecido pelo Docker, porque ele é usado para o posicionamento de tarefas. Se o driver foi instalado usando a CLI de plug-in do Docker, use docker plugin ls para recuperar o driver de sua instância de contêiner. Se o driver foi instalado usando outro método, use a descoberta de plug-in do Docker para recuperar o nome do driver. Para obter mais informações, consulte Descoberta de plug-in do Docker. Este parâmetro é mapeado para Driver na seção Criar um volume da Docker Remote API e a opção --driver para docker volume create.

driverOpts

Tipo: string

Exigido: Não

Um mapa de opções específicas do driver do Docker pelas quais você vai passar. Este parâmetro é mapeado para DriverOpts na seção Criar um volume da Docker Remote API e a opção --opt para docker volume create.

labels

Tipo: string

Exigido: Não

Metadados personalizados para adicionar ao volume do Docker. Este parâmetro é mapeado para Labels na seção Criar um volume da Docker Remote API e a opção --label para docker volume create.

efsVolumeConfiguration

Tipo: objeto

Exigido: Não

Esse parâmetro é especificado ao usar volumes do Amazon EFS.

fileSystemId

Tipo: string

Obrigatório: sim

O ID do sistema de arquivos do Amazon EFS que deve ser usado.

rootDirectory

Tipo: string

Exigido: Não

O diretório dentro do sistema de arquivos do Amazon EFS que deve ser montado como o diretório raiz dentro do host. Se esse parâmetro for omitido, a raiz do volume do Amazon EFS será usada. Especificar / terá o mesmo efeito que omitir este parâmetro.

Importante

Se um ponto de acesso EFS for especificado no authorizationConfig, o parâmetro de diretório raiz deverá ser omitido ou definido como /, o que imporá o caminho definido no ponto de acesso EFS.

transitEncryption

Tipo: string

Valores válidos: ENABLED | DISABLED

Exigido: não

Habilitar ou não a criptografia para os dados do Amazon EFS em trânsito entre o host do Amazon ECS e o servidor do Amazon EFS. A criptografia de trânsito deverá ser ativada se a autorização do IAM do Amazon EFS for usada. Se esse parâmetro for omitido, o valor padrão DISABLED será usado. Para obter mais informações, consulte Criptografia de dados em trânsito no Guia do usuário do Amazon Elastic File System.

transitEncryptionPort

Tipo: número inteiro

Exigido: Não

A porta a ser usada ao enviar dados criptografados entre o host do Amazon ECS e o servidor do Amazon EFS. Se você não especificar uma porta de criptografia de trânsito, ela usará a estratégia de seleção de porta usada pelo assistente de montagem do Amazon EFS. Para obter mais informações, consulte Assistente de montagem do EFS no Guia do usuário do Amazon Elastic File System.

authorizationConfig

Tipo: objeto

Exigido: Não

Os detalhes de configuração de autorização para o sistema de arquivos do Amazon EFS.

accessPointId

Tipo: string

Exigido: Não

O ID do ponto de acesso a ser usado. Se um ponto de acesso for especificado, o valor do diretório raiz no efsVolumeConfiguration deverá ser omitido ou definido como /, o que imporá o caminho definido no ponto de acesso do EFS. Se um ponto de acesso for usado, a criptografia em trânsito deverá ser habilitada no EFSVolumeConfiguration. Para obter mais informações, consulte Trabalhando com pontos de acesso do Amazon EFS no Guia do usuário do Amazon Elastic File System.

iam

Tipo: string

Valores válidos: ENABLED | DISABLED

Exigido: não

Usar ou não a função do IAM para a tarefa do Amazon ECS estabelecida em uma definição de tarefa ao montar o sistema de arquivos do Amazon EFS. Se habilitado, a criptografia de trânsito deve estar habilitada no EFSVolumeConfiguration. Se esse parâmetro for omitido, o valor padrão DISABLED será usado. Para obter mais informações, consulte Funções do IAM para tarefas.

FSxWindowsFileServerVolumeConfiguration

Tipo: objeto

Obrigatório: sim

Esse parâmetro é especificado quando você está usando o sistema de arquivos FSx for Windows File Server para armazenamento de tarefas.

fileSystemId

Tipo: string

Obrigatório: sim

O ID do sistema de arquivos FSx for Windows File Server que deve ser usado.

rootDirectory

Tipo: string

Obrigatório: sim

O diretório no sistema de arquivos do FSx for Windows File Server que deve ser montado como o diretório raiz dentro do host.

authorizationConfig
credentialsParameter

Tipo: string

Obrigatório: sim

As opções de credencial de autorização.

opções:

domain

Tipo: string

Obrigatório: sim

Um nome de domínio totalmente qualificado hospedado por um Microsoft AD AWS Directory Service gerenciado (Active Directory) ou EC2 AD auto-hospedado.

Tags

Ao registrar uma definição de tarefa, você pode especificar opcionalmente tags de metadados que são aplicadas à definição de tarefa. As tags ajudam a categorizar e organizar a definição de tarefa. Cada tag consiste de uma chave e um valor opcional, ambos definidos por você. Para obter mais informações, consulte Marcar recursos do Amazon ECS.

Importante

Não adicione informações de identificação pessoal (PII) nem outras informações confidenciais ou sigilosas em tags. As tags são acessíveis a muitos serviços da AWS, incluindo faturamento. As tags não devem ser usadas para dados privados ou confidenciais.

Os parâmetros a seguir são permitidos em um objeto de tag.

key

Tipo: string

Obrigatório: não

Uma parte de um par de chave/valor que compõe uma tag. Uma chave é um rótulo geral que age como uma categoria para valores de tag mais específicos.

value

Tipo: string

Obrigatório: não

A parte opcional de um par de chave/valor que compõe uma tag. Um valor atua como um descritor dentro de uma categoria de tag (chave).

Outros parâmetros de definição de tarefa

Os parâmetros de definição de tarefa a seguir podem ser usados durante o registro das definições de tarefa no console do Amazon ECS usando a opção Configure via JSON (Configurar via JSON). Para obter mais informações, consulte Criar uma definição de tarefa.

Armazenamento temporário

ephemeralStorage

Type: Objeto

Obrigatório: obrigatório Não

A quantidade de armazenamento efêmero em GB a ser alocada para a tarefa. Esse parâmetro é usado para expandir a quantidade total de armazenamento efêmero disponível, além da quantidade padrão, para tarefas hospedadas noAWS Fargate. Para obter mais informações, consulte FargateArmazenamento de tarefas do.

nota

Esse parâmetro só é compatível com tarefas hospedadas noAWS FargateUsando a versão da plataforma1.4.0ou posterior.

Modo IPC

ipcMode

Type: String

Obrigatório: obrigatório Não

O namespace de recurso IPC a ser usado para os contêineres na tarefa. Os valores válidos são host, task ou none. Se o host for especificado, todos os contêineres das tarefas que especificaram o modo IPC host na mesma instância de contêiner compartilham os mesmos recursos IPC com a instância host do Amazon EC2. Se a task for especificada, todos os contêineres da tarefa especificada compartilharão os mesmos recursos IPC. Se none for especificado, os recursos IPC nos contêineres de uma tarefa serão privados e não serão compartilhados com outros contêineres em uma tarefa ou na instância de contêiner. Se nenhum valor for especificado, o compartilhamento do namespace de recurso IPC dependerá da configuração do daemon do Docker na instância de contêiner. Para obter mais informações, consulte Configurações IPC na Referência de execução do Docker.

Se o modo IPC host for usado, esteja ciente de que há um risco elevado de exposição indesejada do namespace IPC. Para obter mais informações, consulte Segurança do Docker.

Se você estiver definindo parâmetros de kernel com namespace usando systemControls para os contêineres na tarefa, os itens a seguir serão aplicados ao seu namespace de recurso IPC. Para obter mais informações, consulte Controles do sistema.

  • Para tarefas que usam o modo IPC host, o namespace IPC systemControls relacionado não é compatível.

  • Para tarefas que usam o modo IPC task, o namespace IPC systemControls relacionado será aplicado a todos os contêineres em uma tarefa.

nota

Não há suporte para esse parâmetro para os contêineres do Windows ou tarefas que usam o tipo de inicialização Fargate.

Modo PID

pidMode

Type: String

Obrigatório: obrigatório Não

O namespace do processo a ser usado para os contêineres na tarefa. Os valores válidos são host ou task. Se o host for especificado, todos os contêineres nas tarefas que especificaram o modo PID host na mesma instância de contêiner compartilharão o mesmo namespace do processo com a instância host do Amazon EC2. Se a task for especificada, todos os contêineres da tarefa especificada compartilharão o mesmo namespace de processo. Se nenhum valor for especificado, o padrão será um namespace privado. Para obter mais informações, consulte Configurações PID na Referência de execução do Docker.

Se o modo PID host for usado, esteja ciente de que há um risco elevado de exposição indesejada do namespace de processo. Para obter mais informações, consulte Segurança do Docker.

nota

Não há suporte para esse parâmetro para os contêineres do Windows ou tarefas que usam o tipo de inicialização Fargate.