CRM Docs

Task Definition

Definição de tarefa ECS — blueprint do container

A Task Definition no ECS é o documento que descreve como cada container deve rodar: qual imagem do ECR, quanto de CPU e memória, variáveis de ambiente, portas expostas, volumes e para onde vão os logs. Cada alteração gera uma nova revisão (ex.: crm-api:47); o ECS Service aponta para a revisão ativa no deploy.

Estrutura de uma definição

SeçãoConteúdo típico no CRM
FamilyNome estável, ex. crm-api-prod
Network modeawsvpc (cada task tem IP na VPC)
Requires compatibilitiesFARGATE ou EC2
CPU / MemoryEx.: 512 CPU (0.5 vCPU) e 1024 MiB — devem ser combinações válidas no Fargate
Execution rolePermite pull ECR, enviar logs ao CloudWatch
Task rolePermissões da aplicação (S3, SQS, Secrets Manager, etc.)
Container definitionsUm ou mais containers na mesma task

Container definition (campos importantes)

CampoFunção
nameIdentificador do container na task
imageURI completa no ECR + tag ou digest
essentialSe true, task morre se este container parar
portMappingsEx.: container 8080 → protocolo TCP para o ALB
environmentVariáveis em texto (URLs públicas, flags)
secretsReferência a Secrets Manager ou SSM Parameter Store
logConfigurationDriver awslogs → grupo de log CloudWatch
healthCheckComando interno opcional (além do TG/ALB)

Exemplo conceitual (API)

Recurso FargateValor exemploObservação
CPU1024 (1 vCPU)Ajustar conforme carga
Memory2048 MiBDeve ser par válido com CPU no Fargate
Porta80 ou 8080Deve bater com Target Group e app
EnvASPNETCORE_ENVIRONMENT=ProductionOutras via secrets

Variáveis sensíveis

AbordagemQuando usar
Secrets Manager / SSMConnection strings, API keys — referenciados em secrets na TD
Environment plainApenas valores não sensíveis
Arquivo em S3Raro; preferir secrets

Nunca commitar secrets na task definition em JSON versionado no Git sem criptografia; use ARN de secret na definição.

Revisões e rollback

  • Cada registro de nova imagem ou mudança de env cria revisão N+1.
  • Rollback no ECS = voltar o service para revisão anterior conhecida estável.
  • Tasks antigas em execução continuam na revisão antiga até serem substituídas.

Compatibilidade com ALB e Target Group

ItemDeve alinhar com
portMappings.containerPortPorta do health check e do listener do TG
ProtocoloHTTP/HTTPS no app; TG faz check HTTP na porta do container
hostPort em awsvpcIgual ao containerPort (modo awsvpc)

Sidecars (quando há mais de um container)

Em alguns setups a mesma task inclui:

ContainerPapel
appAPI principal
agentColeta de métricas (ex. CloudWatch agent)
proxyEnvoy/nginx local — menos comum se ALB termina TLS

Para a API simples do CRM, um container essential é o padrão.

Se o container reinicia em loop, abra o log da primeira task que falhou: erros de CannotPullContainerError indicam ECR/IAM; ResourceInitializationError costuma ser rede ou secrets; exit code da app indica crash na inicialização (config/banco).

Relação com outros serviços

ServiçoRelação
ECRCampo image
ECSService usa família + revisão
TGPorta registrada nas tasks
SGAssociado à ENI da task, não na TD em si

On this page