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

Parâmetros de definição de serviço

Uma definição de serviço define como executar o serviço do .Amazon ECS. É possível especificar os parâmetros a seguir em uma definição de serviço.

Tipo de inicialização

launchType

Tipo: string

Valores válidos: EC2 | FARGATE | EXTERNAL

Exigido: Não

O tipo de inicialização na qual executar seu serviço. Se não for especificado um tipo de inicialização, o EC2 será usado por padrão. Para obter mais informações, consulte . Tipos de inicialização do Amazon ECS.

Se um launchType for especificado, o parâmetro capacityProviderStrategy deverá ser omitido.

Estratégia de provedor de capacidade

capacityProviderStrategy

Tipo: matriz de objetos

Exigido: Não

A estratégia de provedor de capacidade a ser usada para o serviço.

Uma estratégia de provedor de capacidade consiste em um ou mais provedores de capacidade junto com o base e o weight a serem atribuídos a eles. Um provedor de capacidade deve ser associado ao cluster a ser usado em uma estratégia de provedor de capacidade. A API PutClusterCapacityProviders é usada para associar um provedor de capacidade a um cluster. Somente provedores de capacidade com um status ACTIVE ou UPDATING podem ser usados.

Se um capacityProviderStrategy for especificado, o parâmetro launchType deverá ser omitido. Se nenhum capacityProviderStrategy ou launchType for especificado, o defaultCapacityProviderStrategy do cluster será usado.

Se for especificado um provedor de capacidade que use um grupo de Auto Scaling, o provedor de capacidade já deverá estar criado. Novos provedores de capacidade podem ser criados com a operação de API CreateCapacityProvider.

Para usar um provedor de capacidade do AWS Fargate, especifique os provedores de capacidade FARGATE ou FARGATE_SPOT. Os provedores de capacidade do AWS Fargate estão disponíveis para todas as contas e só precisam estar associados a um cluster para serem utilizados.

A operação de API PutClusterCapacityProviders é usada para atualizar a lista de provedores de capacidade disponíveis para um cluster após a criação do cluster.

capacityProvider

Tipo: string

Obrigatório: sim

O nome curto ou o ARN completo do provedor de capacidade.

weight

Tipo: inteiro

Intervalo válido: inteiros entre 0 e 1.000.

Exigido: Não

O valor de peso designa a porcentagem relativa do número total de tarefas executadas que devem usar o provedor de capacidade especificado.

Por exemplo, se você tiver uma estratégia que contenha dois provedores de capacidade e ambos tiverem um peso de 1, quando a base for satisfeita, as tarefas serão divididas uniformemente entre os dois provedores de capacidade. Usando essa mesma lógica, se você especificar um peso de 1 para capacityProviderA e um peso de 4 para capacityProviderB, para cada tarefa executada que usar capacityProviderA, quatro tarefas usarão capacityProviderB.

base

Tipo: inteiro

Intervalo válido: inteiros entre 0 e 100.000.

Exigido: Não

O valor base designa o número mínimo de tarefas que serão executadas no provedor de capacidade especificado. Somente um provedor de capacidade em uma estratégia de provedor de capacidade pode ter uma base definida.

Definição de tarefa

taskDefinition

Tipo: string

Exigido: Não

O family e revision (family:revision) ou o nome do recurso da Amazon (ARN) completo da definição de tarefa a ser executada no serviço. Se um revision não for especificado, a última revisão ACTIVE da família especificada será usada.

É necessário especificar uma definição de tarefa ao usar o controlador de implantação (ECS) de atualização contínua.

Versão da plataforma

platformVersion

Tipo: string

Exigido: Não

A versão da plataforma na qual suas tarefas no serviço estão em execução. Uma versão da plataforma é especificada apenas para tarefas que usam o tipo de inicialização do Fargate. Se não for especificada, a versão mais recente (LATEST) será usada como padrão.

As versões da plataforma do AWS Fargate são usadas para fazer referência a um ambiente do tempo de execução específico para a infraestrutura de tarefas do Fargate. Ao especificar a versão da plataforma LATEST quando estiver executando uma tarefa ou criando um serviço, você obtém a versão de plataforma mais atual disponível para suas tarefas. Ao escalar seu serviço, essas tarefas recebem a versão de plataforma especificada na implantação atual do serviço. Para obter mais informações, consulte . Versões da plataforma do AWS Fargate.

nota

Versões de plataforma não são especificadas para tarefas que usam o tipo de inicialização do EC2.

Cluster

cluster

Tipo: string

Exigido: Não

O nome abreviado ou o Nome de recurso da Amazon (ARN) completo do cluster no qual executar o serviço. Se você não especificar um cluster, consideraremos o cluster default.

Nome do serviço

serviceName

Tipo: string

Obrigatório: sim

O nome do serviço. São permitidos até 255 letras (caixa alta e baixa), números, hífens e sublinhados. Os nomes dos serviços devem ser exclusivos em um cluster, mas é possível ter serviços com nomes semelhantes em vários clusters em uma ou várias regiões.

Estratégia de programação

schedulingStrategy

Tipo: string

Valores válidos: REPLICA | DAEMON

Exigido: Não

A estratégia de programação para usar. Se nenhuma estratégia de agendamento for especificada, será usada a estratégia REPLICA. Para obter mais informações, consulte . Conceitos do programador de serviços.

Há duas estratégias de programador de serviços disponíveis:

  • REPLICA: a estratégia de programação de réplica coloca e mantém o número desejado de tarefas no seu cluster. Por padrão, o programador de serviço distribui tarefas por zonas de disponibilidade. Você pode usar estratégias e limitações de posicionamento de tarefas para personalizar decisões de posicionamento de tarefa. Para obter mais informações, consulte . Replica.

  • DAEMON: a estratégia de programação do daemon implanta exatamente uma tarefa em cada instância de contêiner ativa que atenda a todas as restrições de posicionamento de tarefas que você especifica no seu cluster. O programador de serviço avalia as restrições de posicionamento de tarefas para executar tarefas e interromperá as que não atenderem às restrições de posicionamento. Ao usar essa estratégia, não há necessidade de especificar um número desejado de tarefas, uma estratégia de posicionamento de tarefas ou usar políticas de Auto Scaling do serviço. Para obter mais informações, consulte Daemon.

    nota

    As tarefas do Fargate não são compatíveis com a estratégia de programação do DAEMON.

Contagem desejada

desiredCount

Tipo: inteiro

Exigido: Não

O número de instâncias de definição de tarefa específica para posicionar e manter em execução no cluster.

Esse parâmetro será necessário se a estratégia de agendamento REPLICA for usada. Se o serviço usar a estratégia de agendamento DAEMON, esse parâmetro será opcional.

Configuração de implantação

deploymentConfiguration

Tipo: objeto

Exigido: Não

Parâmetros opcionais de implantação que controlam quantas tarefas são executadas durante a implantação e o pedido de encerramento e iniciação de tarefas.

maximumPercent

Tipo: inteiro

Exigido: Não

Se um serviço estiver usando o tipo de implantação de atualização contínua (ECS), o parâmetro maximumPercent representará um limite superior no número de tarefas do serviço que são permitidas no estado RUNNING ou PENDING durante a implantação, como uma porcentagem do desiredCount (arredondado para baixo para o valor inteiro mais próximo). Esse parâmetro permite que você defina o tamanho dos lotes de implantação. Por exemplo, se o serviço estiver usando o programador de serviço REPLICA e tiver um desiredCount de quatro tarefas e um valor maximumPercent de 200%, o programador poderá iniciar quatro novas tarefas antes de interromper as quatro tarefas mais antigas (desde que os recursos de cluster necessários para fazer isso estejam disponíveis). O valor padrão maximumPercent para um serviço que usa o programador de serviço REPLICA é 200%.

Se o seu serviço estiver usando o tipo de programador de serviço DAEMON, maximumPercent deverá permanecer em 100%, que é o valor padrão.

O número máximo de tarefas durante uma implantação é desiredCount multiplicado por maximumPercent/100, arredondado para o valor inteiro mais próximo.

Se um serviço estiver usando o tipo de implantação azul/verde (CODE_DEPLOY) ou EXTERNAL e tarefas que usam o tipo de inicialização do EC2, o valor percentual máximo será definido como o valor padrão e será usado para definir o limite superior para o número de tarefas do serviço que permanecem no estado RUNNING, enquanto as instâncias de contêiner estarão no estado DRAINING. Se as tarefas do serviço usarem o tipo de inicialização Fargate, o valor de porcentagem máxima não será usado, embora ele seja retornado durante a descrição do seu serviço.

minimumHealthyPercent

Tipo: inteiro

Exigido: Não

Se um serviço estiver usando o tipo de implantação de atualização contínua (ECS), o parâmetro minimumHealthyPercent representará um limite inferior para o número de tarefas do serviço que devem permanecer no estado RUNNING durante uma implantação, como uma porcentagem de desiredCount (arredondado para cima para o número inteiro mais próximo). Esse parâmetro permite implantar sem usar a capacidade adicional de cluster. Por exemplo, se o serviço tiver um desiredCount de quatro tarefas e um minimumHealthyPercent de 50%, o programador de serviço poderá interromper duas tarefas existentes para liberar a capacidade do cluster antes de iniciar duas novas tarefas.

Para os serviços que não usam um load balancer, deve ser observado o seguinte:

  • Um serviço será considerado íntegro se todos os contêineres essenciais dentro das tarefas no serviço forem aprovados em suas verificações de integridade.

  • Se uma tarefa não tiver contêineres essenciais com uma verificação de integridade definida, o programador de serviço aguardará 40 segundos depois que uma tarefa atingir um estado RUNNING antes de a tarefa ser contabilizada no percentual mínimo íntegro total.

  • Se uma tarefa tiver um ou mais contêineres essenciais com uma verificação de integridade definida, o programador de serviço aguardará que a tarefa atinja um status íntegro antes de contabilizá-la no percentual mínimo íntegro total. Uma tarefa é considerada íntegra quando todos os contêineres essenciais dentro da tarefa são aprovados em suas verificações de integridade. O período de tempo que o programador de serviço pode aguardar é determinado pelas configurações de verificação de integridade do contêiner. Para obter mais informações, consulte . Verificação de integridade.

Para os serviços que usam um load balancer, deve ser observado o seguinte:

  • Se uma tarefa não tiver contêineres essenciais com uma verificação de integridade definida, o programador de serviço aguardará a verificação de integridade do grupo de destino do load balancer retornar um status íntegro antes de contabilizar a tarefa no percentual mínimo íntegro total.

  • Se uma tarefa tiver um contêiner essencial com uma verificação de integridade definida, o programador de serviço aguardará que a tarefa atinja um status íntegro e a verificação de integridade do grupo de destino do load balancer retorne um status íntegro antes de contabilizar a tarefa no percentual mínimo íntegro total.

O valor padrão para um serviço réplica para minimumHealthyPercent é 100%. O valor padrão minimumHealthyPercent para um serviço que usa o programador de serviço DAEMON é 0% para a AWS CLI, os AWS SDKs e as APIs, e 50% para o AWS Management Console.

O número mínimo de tarefas íntegras durante uma implantação é desiredCount multiplicado por minimumHealthyPercent/100, arredondado para o valor inteiro mais próximo acima.

Se um serviço estiver usando os tipos de implantação azul/verde (CODE_DEPLOY) ou EXTERNAL e estiver executando tarefas que usam o tipo de inicialização do EC2, o valor percentual mínimo de integridade será definido como o valor padrão e será usado para definir o limite inferior para o número de tarefas do serviço que permanecem no estado RUNNING, enquanto as instâncias de contêiner estarão no estado DRAINING. Se um serviço estiver usando os tipos de implantação azul/verde (CODE_DEPLOY) ou EXTERNAL e estiver executando tarefas que usam o tipo de inicialização do Fargate, o valor percentual mínimo de integridade não será usado, embora ele seja retornado ao descrever o serviço.

Controlador de implantação

deploymentController

Tipo: objeto

Exigido: Não

O controlador de implantação a ser usado para o serviço. Se nenhum controlador de implantação for especificado, será usado o controlador ECS. Para obter mais informações, consulte . Tipos de implantação do Amazon ECS.

type

Tipo: string

Valores válidos: ECS | CODE_DEPLOY | EXTERNAL

Exigido: sim

O tipo de controlador de implantação a ser usado. Existem três tipos de controlador de implantação disponíveis:

ECS

O tipo de implantação de atualização contínua (ECS) envolve substituir a versão atual em execução do contêiner pela versão mais recente. O número de contêineres que o Amazon ECS adiciona ou remove do serviço durante uma atualização contínua é controlado ajustando-se os números mínimo e máximo de tarefas íntegras permitidas durante uma implantação de serviço, conforme especificado na deploymentConfiguration.

CODE_DEPLOY

O tipo de implantação azul/verde (CODE_DEPLOY) usa o modelo de implantação azul/verde desenvolvido pelo CodeDeploy, que permite que você verifique a nova implantação de um serviço antes de enviar tráfego de produção para ele.

EXTERNAL

O tipo de implantação externa permite que você use qualquer controlador de implantação de terceiros para o controle total do processo de implantação para um serviço do Amazon ECS.

Posicionamento de tarefas

placementConstraints

Tipo: matriz de objetos

Exigido: Não

Um array de objetos de restrição de posicionamento para usar em tarefas no serviço. É possível especificar um máximo de 10 restrições por tarefa. Esse limite inclui restrições na definição de tarefa e naquelas especificadas no tempo de execução. Se você estiver usando o tipo de inicialização Fargate, as restrições de posicionamento de tarefas não serão compatíveis.

type

Tipo: string

Exigido: Não

O tipo de restrição. Use distinctInstance para garantir que cada tarefa em um determinado grupo esteja em execução em uma instância de contêiner diferente. Use memberOf para restringir a seleção a um grupo de candidatos válidos. O valor distinctInstance não é compatível em definições de tarefa.

expression

Tipo: string

Exigido: Não

Uma expressão de idioma de consulta de cluster a ser aplicada à restrição. Você não pode especificar uma expressão, caso o tipo de restrição seja distinctInstance. Para obter mais informações, consulte . Linguagem de consulta de cluster.

placementStrategy

Tipo: matriz de objetos

Exigido: Não

A estratégia de posicionamento de objetos para usar em tarefas no serviço. É possível especificar um máximo de quatro regras de estratégia por serviço.

type

Tipo: string

Valores válidos: random | spread | binpack

Exigido: Não

O tipo de estratégia de posicionamento. A estratégia de posicionamento random posiciona as tarefas de candidatos disponíveis aleatoriamente. A estratégia de posicionamento spread distribui o posicionamento entre os candidatos disponíveis uniformemente com base no parâmetro do field. A estratégia binpack posiciona as tarefas em candidatos disponíveis que tenham a menor quantia disponível do recurso que está especificado no parâmetro do field. Por exemplo, se você binpack na memória, uma tarefa será posicionada na instância com a menor quantidade de memória remanescente (mas ainda o suficiente para executar a tarefa).

field

Tipo: string

Exigido: Não

O campo em que a estratégia de posicionamento será aplicada. Para a estratégia de posicionamento spread, os valores válidos são instanceId (ou host, que tem o mesmo efeito), ou qualquer atributo de plataforma ou personalizado que seja aplicado em uma instância de contêiner, como attribute:ecs.availability-zone. Para a estratégia de posicionamento binpack, os valores válidos são cpu e memory. Para a estratégia de posicionamento random, esse campo não é usado.

Tags

tags

Tipo: matriz de objetos

Exigido: Não

Os metadados que você aplica ao serviço para ajudá-lo a categorizá-los e organizá-los. Cada tag consiste de uma chave e um valor opcional, ambos definidos por você. Quando um serviço é excluído, as tags também são excluídas. Um máximo de 50 tags podem ser aplicadas ao serviço. Para obter mais informações, consulte . Marcar recursos do Amazon ECS.

key

Tipo: string

Restrições de comprimento: comprimento mínimo de 1. Tamanho máximo de 128.

Exigido: 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

Restrições de comprimento: comprimento mínimo de 0. Tamanho máximo de 256.

Exigido: 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).

enableECSManagedTags

Tipo: booliano

Valores válidos: true | false

Exigido: Não

Especifica se devem ser habilitadas as etiquetas gerenciadas do Amazon ECS para as tarefas no serviço. Se nenhum valor for especificado, o padrão será false. Para obter mais informações, consulte . Marcar recursos para faturamento.

propagateTags

Tipo: string

Valores válidos: TASK_DEFINITION | SERVICE

Exigido: Não

Especifica se deve copiar as tags da definição de tarefa ou do serviço para as tarefas no serviço. Se nenhum valor for especificado, as tags não serão copiadas. As tags só podem ser copiadas para tarefas no serviço durante a criação do serviço. Para adicionar etiquetas a uma tarefa após a criação do serviço ou da tarefa, use a ação de API TagResource.

Configuração de rede

networkConfiguration

Tipo: objeto

Exigido: Não

A configuração de rede para o serviço. Esse parâmetro é necessário para definições de tarefa que usam o modo de rede awsvpc para receber sua própria interface de rede elástica, sem haver suporte para outros modos de rede. Se você estiver usando o tipo de inicialização do Fargate, será necessário o modo de rede awsvpc. Para obter mais informações, consulte Rede de tarefas do Amazon ECS..

awsvpcConfiguration

Tipo: objeto

Exigido: Não

Um objeto que representa as sub-redes e os security groups de uma tarefa ou serviço.

subnets

Tipo: matriz de strings

Obrigatório: sim

As sub-redes associadas à tarefa ou ao serviço. Existe um limite de 16 sub-redes que podem ser especificadas por awsvpcConfiguration.

securityGroups

Tipo: matriz de strings

Exigido: Não

Os security groups associados à tarefa ou ao serviço. Se você não especificar um security group, será usado o security group padrão da VPC. Existe um limite de 5 grupos de segurança que podem ser especificados por awsvpcConfiguration.

assignPublicIP

Tipo: string

Valores válidos: ENABLED | DISABLED

Exigido: Não

Indica se a interface de rede elástica da tarefa recebe um endereço IP público. Se nenhum valor for especificado, será usado o valor padrão de DISABLED.

healthCheckGracePeriodSeconds

Tipo: inteiro

Exigido: Não

O período, em segundos, em que o programador de serviço do Amazon ECS deve ignorar verificações de integridade de destino não íntegras do Elastic Load Balancing, verificações de integridade de contêiner e verificações de integridade do Route 53 depois que uma tarefa entra no estado RUNNING. Isso será válido somente se o serviço estiver configurado para usar um load balancer. Se o serviço tiver um load balancer definido e você não especificar um valor de período de tolerância de verificação de integridade, será usado o valor padrão de 0.

Se as tarefas do seu serviço demoram para iniciar e responder às verificações de integridade, você pode especificar um período de carência de verificação de integridade de até 2.147.483.647 segundos durante o qual o programador do serviço ECS vai ignorar o status da verificação de integridade. Esse período de carência pode evitar que o programador do serviço ECS marque tarefas como não íntegras e as interrompa antes de terem tempo de surgir.

loadBalancers

Tipo: matriz de objetos

Exigido: Não

Um objeto load balancer que representa os load balancers para uso com o serviço. Para serviços que usam um balanceador de carga da aplicação ou um balanceador de carga da rede, existe um limite de cinco grupos de destino que você pode anexar a um serviço.

Depois que você cria um serviço, o Nome de região da Amazon (ARN) do grupo de destino ou o nome do load balancer, o nome do contêiner e porta do contêiner especificados na definição do serviço não podem mais ser alterados.

Para balanceadores de carga clássicos, esse objeto deve conter o nome do balanceador de carga, o nome do contêiner (conforme aparece em uma definição de contêiner) e a porta do contêiner para acesso a partir do balanceador de carga. Quando uma tarefa desse serviço é colocada em uma instância do contêiner, a instância do contêiner é registrada com o load balancer especificado aqui.

Para balanceadores de carga da aplicação e balanceadores de carga da rede, esse objeto deve conter o ARN do grupo de destino do balanceador de carga, o nome do contêiner (conforme aparece em uma definição de contêiner) e a porta do contêiner para acesso a partir do balanceador de carga. Quando uma tarefa desse serviço é colocada em uma instância do contêiner, combinação da instância do contêiner e a porta é registrada como um destino no grupo de destino especificado aqui.

targetGroupArn

Tipo: string

Exigido: Não

O ARN completo do grupo de destino do Elastic Load Balancing ou grupos associados a um serviço.

O ARN de um grupo de destino só é especificado ao usar um Application Load Balancer ou um Network Load Balancer. Se você estiver usando um Classic Load Balancer, o ARN do grupo de destino deverá ser omitido.

loadBalancerName

Tipo: string

Exigido: Não

O nome do load balancer que deve ser associado ao serviço.

Um nome de load balancer só é especificado ao usar um Classic Load Balancer. Se você estiver usando um Application Load Balancer ou um Network Load Balancer, o parâmetro de nome do load balancer deve ser omitido.

containerName

Tipo: string

Exigido: Não

O nome do contêiner (conforme aparece na definição de contêiner) para associar ao load balancer.

containerPort

Tipo: inteiro

Exigido: Não

A porta no contêiner para associar ao load balancer. Essa porta deve corresponder a um containerPort na definição de tarefa usada pelas tarefas do serviço. Para as tarefas que usam o tipo de inicialização do EC2, a instância de contêiner deve permitir tráfego de entrada no hostPort do mapeamento da porta.

role

Tipo: string

Exigido: Não

O nome curto ou o ARN completo da função do IAM que permite que o Amazon ECS faça chamadas para o balanceador de carga em seu nome. Esse parâmetro só será permitido se você estiver usando um balanceador de carga com um único grupo de destino para o serviço e a definição de tarefa não usar o modo de rede awsvpc. Se você especificar o parâmetro role, você também deve especificar um objeto do load balancer com o parâmetro loadBalancers.

Se a função especificada tiver um caminho diferente de /, você deverá especificar a função completa de Nome de região da Amazon (ARN), isso é recomendado, ou prefixar o nome da função com o caminho. Por exemplo, se uma função com o nome bar tiver um caminho /foo/, você especificaria /foo/bar como o nome da função. Para obter mais informações, consulte Nome e caminhos amigáveis no Guia do usuário do IAM.

Importante

Se sua conta já tiver criado a função vinculada ao serviço do Amazon ECS, essa função será usada por padrão para o serviço, a menos que você especifique uma função aqui. A função vinculada ao serviço será necessária se a definição de sua tarefa usar o modo de rede awsvpc e, nesse caso, você não deve especificar uma função aqui. Para obter mais informações, consulte . Função vinculada ao serviço para o Amazon ECS.

serviceRegistries

Tipo: matriz de objetos

Exigido: Não

Os detalhes da configuração de descoberta de serviço para o seu serviço. Para obter mais informações, consulte . Descoberta de serviço.

registryArn

Tipo: string

Exigido: Não

O ARN de registro do serviço. O registro de serviço atualmente compatível é AWS Cloud Map. Para obter mais informações, consulte Trabalhar com serviços no Guia do desenvolvedor do AWS Cloud Map.

port

Tipo: inteiro

Exigido: Não

O valor da porta usado se o serviço de descoberta de serviços especificou um registro de SRV. Esse campo é necessário se o modo de rede awsvpc e registros de SRV são usados.

containerName

Tipo: string

Exigido: Não

O nome do contêiner do valor, já especificado na definição de tarefa, a ser usado para o serviço de descoberta de serviço. Se a definição de tarefa que sua tarefa de serviço especifica usa o modo de rede bridge ou host você deve especificar uma combinação de containerName e containerPort da definição de tarefa. Se a definição de tarefa que sua tarefa de serviço especifica usa o modo de rede awsvpc e um registro do tipo SRV DNS é usado, você deve especificar uma combinação de containerName e containerPort ou um valor port, mas não ambos.

containerPort

Tipo: inteiro

Exigido: Não

O valor da porta, já especificado na definição de tarefa, a ser usado para o serviço de descoberta de serviço. Se a definição de tarefa que sua tarefa de serviço especifica usa o modo de rede bridge ou host você deve especificar uma combinação de containerName e containerPort da definição de tarefa. Se a definição de tarefa que sua tarefa de serviço especifica usa o modo de rede awsvpc e um registro do tipo SRV DNS é usado, você deve especificar uma combinação de containerName e containerPort ou um valor port, mas não ambos.

Token de cliente

clientToken

Tipo: string

Exigido: Não

Identificador exclusivo e que diferencia maiúsculas e minúsculas que você fornece para garantir a idempotência da solicitação. Até 32 caracteres ASCII são permitidos.

Modelo de definição de serviço

Veja a seguir a representação JSON de uma definição de serviço do Amazon ECS.

{ "cluster": "", "serviceName": "", "taskDefinition": "", "loadBalancers": [ { "targetGroupArn": "", "loadBalancerName": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "desiredCount": 0, "clientToken": "", "launchType": "FARGATE", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "role": "", "deploymentConfiguration": { "maximumPercent": 0, "minimumHealthyPercent": 0 }, "placementConstraints": [ { "type": "distinctInstance", "expression": "" } ], "placementStrategy": [ { "type": "spread", "field": "" } ], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "ENABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "CODE_DEPLOY" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "SERVICE" }

Você pode criar esse modelo de definição de serviço usando o comando da AWS CLI a seguir.

aws ecs create-service --generate-cli-skeleton