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á.
Implantação externa
O tipo de implantação externa permite usar qualquer controlador de implantação de terceiros para ter controle total do processo de implantação em um serviço do Amazon ECS. Os detalhes do seu serviço são gerenciados por ações da API de gerenciamento de serviços (CreateService
, UpdateService
e DeleteService
) ou ações da API de gerenciamento de conjuntos de tarefas (CreateTaskSet
, UpdateTaskSet
, UpdateServicePrimaryTaskSet
e DeleteTaskSet
). Cada ação de API gerencia um subconjunto dos parâmetros de definição de serviço.
A ação de API UpdateService
atualiza os parâmetros de contagem desejada e período de carência da verificação de integridade para um serviço. Se o tipo de inicialização, a versão da plataforma, os detalhes do load balancer, a configuração de rede ou definição de tarefa precisarem ser atualizados, você deverá criar um novo conjunto de tarefas.
A ação de API UpdateTaskSet
atualiza apenas o parâmetro de escala para um conjunto de tarefas.
A ação de API UpdateServicePrimaryTaskSet
modifica qual conjunto de tarefas em um serviço é o conjunto de tarefas principal. Quando você chama a ação de API DescribeServices
, ela retorna todos os campos especificados para um conjunto de tarefas principal. Se o conjunto de tarefas principal de um serviço for atualizado, qualquer valor de parâmetro de conjunto de tarefas existente no novo conjunto de tarefas principal que for diferente do conjunto de tarefas principal antigo em um serviço será atualizado para o novo valor quando um novo conjunto de tarefas principal for definido. Se nenhum conjunto de tarefas principal for definido para um serviço, durante a descrição do serviço, os campos do conjunto de tarefas serão nulos.
Considerações sobre a implantação externa
Considere o seguinte ao usar o tipo de implantação externa:
-
Os tipos de load balancer compatíveis são um Application Load Balancer ou um Network Load Balancer.
-
O tipo de inicialização do Fargate ou os tipos de controladores de implantação
EXTERNAL
não são compatíveis com a estratégia de programação doDAEMON
.
Fluxo de trabalho de implantações externas
Veja a seguir o fluxo de trabalho básico para gerenciar uma implantação externa no Amazon ECS.
Para gerenciar um serviço do Amazon ECS usando um controlador de implantação externa
-
Crie um serviço do Amazon ECS. O único parâmetro obrigatório é o nome do serviço. Você pode especificar os parâmetros a seguir ao criar um serviço usando um controlador de implantação externo. Todos os outros parâmetros de serviço são especificados durante a criação de um conjunto de tarefas no 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.
desiredCount
-
O número de instanciações da definição de tarefa do conjunto de tarefas especificado para posicionar e manter em execução no serviço.
deploymentConfiguration
-
Parâmetros opcionais de implantação que controlam quantas tarefas são executadas durante uma implantação e a ordem de interrupção e início de tarefas. Para obter mais informações, consulte deploymentConfiguration.
-
Tipo: matriz de objetos
Obrigatório: não
Os metadados que você aplica ao serviço para ajudá-lo a categorizá-los e organizá-los. Cada tag consiste em 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 tamanho: tamanho mínimo 1. Tamanho máximo de 128.
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
Restrições de tamanho: tamanho mínimo 0. Tamanho máximo de 256.
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).
enableECSManagedTags
-
Especifica se devem ser usadas as tags gerenciadas do Amazon ECS para as tarefas no serviço. 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
. healthCheckGracePeriodSeconds
-
Tipo: inteiro
Obrigatório: 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 de0
.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.
Se você não usa um Elastic Load Balancing, recomendamos que use o
startPeriod
nos parâmetros de verificação de integridade da definição de tarefa. Para obter mais informações, consulte Verificações de integridade. schedulingStrategy
-
A estratégia de programação para usar. Os serviços que usam um controlador de implantação externo oferecem suporte apenas à estratégia de programação de
REPLICA
. Para obter mais informações, consulte Conceitos do programador de serviços. placementConstraints
-
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 do Fargate, não haverá suporte para restrições de posicionamento de tarefas.
placementStrategy
-
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.
Veja a seguir uma definição de serviço de exemplo para a criação de um serviço usando um controlador de implantação externo.
{ "cluster": "", "serviceName": "", "desiredCount": 0, "role": "", "deploymentConfiguration": { "maximumPercent": 0, "minimumHealthyPercent": 0 }, "placementConstraints": [ { "type": "distinctInstance", "expression": "" } ], "placementStrategy": [ { "type": "binpack", "field": "" } ], "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "TASK_DEFINITION" }
-
Crie um conjunto de tarefas inicial. O conjunto de tarefas contém os seguintes detalhes sobre o serviço:
taskDefinition
-
A definição de tarefa para as tarefas do conjunto de tarefas usarem.
launchType
-
Tipo: String
Valores válidos:
EC2
|FARGATE
|EXTERNAL
Obrigatório: não
O tipo de inicialização na qual executar seu serviço. Se não for especificado um tipo de inicialização, o padrão
capacityProviderStrategy
será usado. Para obter mais informações, consulte Tipos de inicialização do Amazon ECS.Se um
launchType
for especificado, o parâmetrocapacityProviderStrategy
deverá ser omitido. platformVersion
-
Tipo: String
Obrigatório: 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. loadBalancers
-
Um objeto do load balancer que representa o load balancer para uso no serviço. Quando for usado um controlador de implantação externa, somente Application Load Balancers e Network Load Balancers são compatíveis. Se você estiver usando um Application Load Balancer, somente um grupo de destino do Application Load Balancer será permitido por conjunto de tarefas.
O trecho a seguir mostra o exemplo de um objeto
loadBalancer
a ser usado."loadBalancers": [ { "targetGroupArn": "", "containerName": "", "containerPort": 0 } ]
nota
Ao especificar um objeto
loadBalancer
, é necessário especificar umtargetGroupArn
e omitir os parâmetrosloadBalancerName
. networkConfiguration
-
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, e não tem suporte para outros modos de rede. Para obter mais informações, consulte Redes de tarefas do Fargate no Guia do usuário do Amazon Elastic Container Service para AWS Fargate.. serviceRegistries
-
Os detalhes dos registros de descoberta de serviços a serem atribuídos ao serviço. Para obter mais informações, consulte Descoberta de serviço.
scale
-
Uma porcentagem de ponto flutuante do número desejado de tarefas para posicionar e manter em execução no conjunto de tarefas. O valor é especificado como uma porcentagem total de
desiredCount
de um serviço. Os valores aceitos são números entre 0 e 100.
Veja a seguir um exemplo de JSON para criar um conjunto de tarefas para um controlador de implantação externo.
{ "service": "", "cluster": "", "externalId": "", "taskDefinition": "", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [ { "targetGroupArn": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "launchType": "EC2", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "scale": { "value": null, "unit": "PERCENT" }, "clientToken": "" }
-
Quando forem necessárias alterações no serviço, use a ação de API
UpdateService
,CreateTaskSet
ouUpdateTaskSet
, dependendo de quais parâmetros você estiver atualizando. Se você tiver criado um conjunto de tarefas, use o parâmetroscale
para cada tarefa em um serviço para determinar quantas tarefas devem ser mantidas em execução no serviço. Por exemplo, se você tiver um serviço que contenhatasksetA
e criar umtasksetB
, poderá testar a validade detasksetB
antes de querer fazer a transição do tráfego de produção para ele. Você poderia definirscale
para os dois conjuntos de tarefas como100
, e quando estivesse pronto para fazer a transição de todo o tráfego de produção paratasksetB
, poderia atualizarscale
paratasksetA
como0
para reduzi-lo.