

# Atualizar um serviço do Amazon ECS Express Mode
<a name="express-service-update-full"></a>

O serviço Express Mode simplifica o processo de atualização do serviço fornecendo opções configuráveis para rede, balanceamento de carga e ajuste de escala automático da aplicação, e orquestrando alterações em todos esses serviços.

Você pode atualizar seu serviço Express Mode para modificar as imagens do contêiner, ajustar a alocação de recursos ou alterar as definições de configuração. As atualizações são implantadas usando implantações canário com alarmes de reversão baseados em alarme para manter a disponibilidade.

## Comportamento de implantação
<a name="express-service-update-full-behavior"></a>

Um serviço Express Mode usa implantações canário por padrão para garantir atualizações seguras e reversões rápidas:
+ Um novo ambiente é criado e as tarefas são implantadas com suas alterações
+ 5% do tráfego é transferido para o novo ambiente
+ As reversões baseadas em alarme serão acionadas se a soma da porcentagem de erros de 4xx e 5xx for > 1 para dois pontos de dados em três minutos
+ As verificações de integridade conferem se as novas tarefas estão íntegras
+ Após 3 minutos de tempo de incorporação, 100% do tráfego é transferido para o novo ambiente
+ Após 3 minutos de tempo de incorporação para monitoramento, as tarefas antigas são gradualmente interrompidas e substituídas

Para obter mais informações, consulte [Implantações canário do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/canary-deployment.html).

## Procedimento
<a name="express-service-update-full-procedure"></a>

1. Abra o console em [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. No painel de navegação, escolha **Clusters**.

1. Na página **Clusters**, escolha o nome do cluster que contém o serviço Express Mode.

1. Na página de detalhes do cluster, escolha a guia **Serviços**.

1. Configure um filtro para visualizar seus serviços Express Mode. Em **Tipo de gerenciamento de recursos de filtro**, escolha **ECS**.

   Um serviço Express Mode tem um crachá **Express** ao lado do nome.

1. Em **Configuração**:

   1. Especifique a imagem a ser usada na aplicação. Em **URI da imagem**, insira o URI da sua imagem. Para procurar suas imagens do Amazon ECR, escolha **Procurar imagens do ECR** e faça o seguinte:

      1. Em **Repositório privado**, escolha o repositório privado do Amazon ECR.

      1. Em **Imagem**, escolha sua imagem.

      1. Escolha como identificar a imagem. Em **Selecionar imagem por**, escolha uma das seguintes opções:
         + A AWS recomenda que você escolha **Resumo de imagem**.
         + Para usar a tag, escolha **Tag de imagem** e selecione a tag.

   1. Para usar um registro privado, selecione **Registro privado**. Em seguida, para **ARN ou nome do Secrets Manager**, insira o ARN do Secrets Manager que você criou nos pré-requisitos.

   1. Em **Perfil de execução de tarefa**, escolha os perfis ou crie um novo perfil e atualize. Você poderá atualizar o perfil de execução de tarefa quando precisar adicionar mais permissões.

1. Em **Configurações adicionais**, personalize seu serviço.

   1. Em **Contêiner**:

      1. Para **Porta do contêiner**, insira a porta na qual sua aplicação atende (o padrão é 80).

      1. Para **Caminho da verificação de integridade**, insira o caminho para verificações de integridade (por exemplo, `/health`).

   1. Em **Variáveis de ambiente**, adicione pares de chave/valor para as variáveis de ambiente de que sua aplicação precisa:

      1. Em **Chave**, insira o nome da variável de ambiente.

      1. Em **Tipo de valor**, escolha **Variável de ambiente** ou **Segredo**.

      1. Em **Valor ou valor de**, insira o valor ou a referência.

      1. Escolha **Adicionar variável de ambiente** para adicionar mais variáveis, conforme necessário.

   1. Em **Comando**, opcionalmente, insira um comando personalizado para substituir a instrução CMD do Docker.

   1. Em **Perfil de tarefa**, escolha um perfil do IAM que concede permissões à sua aplicação executada em seus contêineres. Isso permite que a aplicação faça chamadas de API para serviços da AWS.

   1. Em **Computação**:

      1. Para **CPU**, atualize a alocação de vCPU para suas tarefas (por exemplo, 1 vCPU).

      1. Para **Memória**, atualize a alocação de memória para suas tarefas (por exemplo, 2 GB).

   1. Em **Ajuste de escala automático**:

      1. Para **Métrica de serviço do ECS**, escolha a métrica para escalar (por exemplo, **Média de utilização de memória do serviço do ECS** ou **Contagem de solicitações por destino**).

      1. Em **Valor de destino**, insira o destino do ajuste de escala (por exemplo, **60** ou **1000**).

      1. Em **Número mínimo de tarefas** e **Número máximo de tarefas**, atualize os limites de ajuste de escala.

   1. Em **Logs**:

      1. Para **Grupo de logs do Amazon CloudWatch**, atualize o nome do grupo de logs da sua aplicação. Observe que isso não moverá os logs existentes, mas começará a gravá-los da nova revisão do serviço.

      1. Em **Prefixo de fluxo de logs do Amazon CloudWatch**, insira um novo prefixo para fluxos de logs.

1. Escolha **Atualizar** para atualizar o serviço Express Mode.

### Atualização com uma definição de tarefa personalizada
<a name="express-service-update-custom-td"></a>

Você pode atualizar seu serviço no Modo Expresso com uma definição de tarefa personalizada, especificando o parâmetro `taskDefinitionArn`. O Modo Expresso utiliza a definição da sua tarefa tal como está e continua a gerenciar o restante da infraestrutura.

Nas atualizações seguintes, você pode:
+ Criar uma nova revisão da definição da sua tarefa e atualizar o `taskDefinitionArn`. O Modo Expresso utiliza a nova revisão para a próxima implantação do serviço.
+ Atualize diretamente os parâmetros do Modo Expresso:
  + Para parâmetros não relacionados à definição da tarefa (como `healthCheckPath`, `networkConfiguration` ou `scalingTarget`), o Modo Expresso aplica as alterações sem modificar a definição da tarefa.
  + Para parâmetros relacionados à definição da tarefa (como imagem, CPU ou memória usando `primaryContainer` ou `cpu`/`memory`), o Modo Expresso cria uma nova definição de tarefa gerenciada com suas alterações, preservando ao mesmo tempo as demais configurações no nível da tarefa.

**Para atualizar com uma definição de tarefa personalizada (console do Amazon ECS)**

1. Abra o console do Amazon ECS e acesse seu serviço no Modo Expresso.

1. Selecione a seta do menu suspenso ao lado de **Atualizar serviço** e, em seguida, selecione **Atualizar com definição de tarefa personalizada**.

1. Na opção **Família de definições de tarefas**, selecione uma família de definições de tarefas existente. Para criar uma nova definição de tarefa, selecione o link **Definições de tarefa**.

1. Para **Revisão da definição da tarefa**, selecione a revisão a ser usada ou deixe em branco para usar a revisão mais recente.

1. (Opcional) Expanda **Configurações adicionais** para atualizar as configurações de caminho de verificação de integridade, rede ou escalonamento automático.

1. Selecione **Atualizar**.

O comando a seguir AWS AWS CLI atualiza seu serviço no Modo Expresso com uma definição de tarefa personalizada:

```
aws ecs update-express-gateway-service \
    --service-arn arn:aws:ecs:us-west-2:123456789012:service/default/my-service \
    --task-definition-arn arn:aws:ecs:us-west-2:123456789012:task-definition/my-td:4
```

**nota**  
Se você estiver usando CloudFormation e adicionando `taskDefinitionArn` ao seu serviço no Modo Expresso pela primeira vez, reimplante sua pilha uma vez antes. Isso garante a compatibilidade com versões anteriores.