Eventos do Amazon ECS - Amazon ECS

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

Eventos do Amazon ECS

O Amazon ECS rastreia o estado de cada tarefa e serviço. Se o estado de uma tarefa ou serviço mudar, um evento será gerado e enviado para a Amazon EventBridge. Esses eventos são classificados como eventos de alteração de estado de tarefas e eventos de ação de serviços. Esses eventos e as causas possíveis serão descritos com mais detalhes nas seções a seguir.

nota

O Amazon ECS pode adicionar outros tipos de evento, origens e detalhes, no futuro. Caso você desserializando dados JSON do evento no código, certifique-se de que a aplicação esteja preparada para lidar com propriedades desconhecidas a fim de evitar problemas se e quando essas propriedades adicionais forem adicionadas.

Os eventos de alteração de estado de contêiner e os eventos de alteração de estado de tarefas contêm dois campos version; um no corpo principal do evento e um no objeto detail do evento. Veja a seguir uma descrição das diferenças entre esses dois campos.

  • O campo version no corpo principal do evento é definido como 0 em todos os eventos. Para obter mais informações sobre EventBridge parâmetros, consulte Eventos e padrões de eventos no Guia EventBridge do usuário da Amazon.

  • O campo version no objeto detail do evento descreve a versão do recurso associado. Sempre que um recurso muda de estado, essa versão é incrementada. Como os eventos podem ser enviados várias vezes, esse campo permite identificar eventos duplicados. Eventos duplicados têm a mesma versão no objeto detail. Se você estiver replicando sua o estado da tarefa com EventBridge, você pode comparar a versão de um recurso relatada pelas APIs do Amazon ECS com a versão relatada EventBridge para o recurso (dentro do detail objeto) para verificar se a versão em seu stream de eventos é atual.

Os eventos de ação de serviços contêm apenas o campo version no corpo principal.

Apresentaremos exemplos mais adiante neste tópico. Para obter informações adicionais sobre como integrar o Amazon ECS EventBridge, consulte Integração da Amazon com o Amazon EventBridge ECS.

Eventos de alteração no estado da tarefa

Os seguintes cenários causam eventos de alteração do estado da tarefa:

As operações de API StartTask, RunTask ou StopTask são chamadas diretamente ou com o AWS Management Console,AWS CLI ou os SDKs.

A inicialização ou a parada de tarefas cria novos recursos de tarefa ou modifica o estado de recursos da tarefa existente.

O programador de serviços do Amazon ECS inicia ou interrompe uma tarefa.

A inicialização ou a parada de tarefas cria novos recursos de tarefa ou modifica o estado de recursos da tarefa existente.

O agente de contêiner do Amazon ECS chama a operação da API SubmitTaskStateChange.

O agente de contêiner do Amazon ECS monitora o estado das suas tarefas e relata todas as alterações ocorridas no estado. Alterações de estado podem incluir mudanças de PENDING para RUNNING ou de RUNNING para STOPPED.

Um contêiner na tarefa muda de estado.

O agente de contêiner do Amazon ECS monitora o estado dos contêineres dentro das tarefas. Por exemplo, caso um contêiner em execução dentro de uma tarefa seja interrompido, essa alteração no estado do contêiner gera um evento.

Uma tarefa que utiliza o fornecedor de capacidade do Fargate Spot recebe um aviso de término.

Quando uma tarefa está usando o provedor de capacidade do FARGATE_SPOT e é interrompida devido a uma interrupção do Spot, um evento de alteração de estado da tarefa é gerado.

exemplo Evento de alteração no estado da tarefa

Os eventos de alteração do estado da tarefa são entregues no formato a seguir. A detail seção abaixo se assemelha ao objeto Task que é retornado de uma operação de DescribeTasksAPI na Referência de API do Amazon Elastic Container Service. Se os contêineres estiverem usando uma imagem hospedada com o Amazon ECR, será retornado o campo imageDigest.

nota

Os valores para os campos createdAt, connectivityAt, pullStartedAt, startedAt, pullStoppedAt e updatedAt são time stamps UNIX na resposta de uma ação DescribeTasks, enquanto no evento de alteração de estado da tarefa, eles são time stamps de string ISO.

Para obter mais informações sobre parâmetros de CloudWatch eventos, consulte Eventos e padrões de eventos no Guia EventBridge do usuário da Amazon.

{ "version": "0", "id": "3317b2af-7005-947d-b652-f55e762e571a", "detail-type": "ECS Task State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-01-23T17:57:58Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad" ], "detail": { "attachments": [ { "id": "1789bcae-ddfb-4d10-8ebe-8ac87ddba5b8", "type": "eni", "status": "ATTACHED", "details": [ { "name": "subnetId", "value": "subnet-abcd1234" }, { "name": "networkInterfaceId", "value": "eni-abcd1234" }, { "name": "macAddress", "value": "0a:98:eb:a7:29:ba" }, { "name": "privateIPv4Address", "value": "10.0.0.139" } ] } ], "availabilityZone": "us-west-2c", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/FargateCluster", "containers": [ { "containerArn": "arn:aws:ecs:us-west-2:111122223333:container/cf159fd6-3e3f-4a9e-84f9-66cbe726af01", "lastStatus": "RUNNING", "name": "FargateApp", "image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/hello-repository:latest", "imageDigest": "sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6", "runtimeId": "ad64cbc71c7fb31c55507ec24c9f77947132b03d48d9961115cf24f3b7307e1e", "taskArn": "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad", "networkInterfaces": [ { "attachmentId": "1789bcae-ddfb-4d10-8ebe-8ac87ddba5b8", "privateIpv4Address": "10.0.0.139" } ], "cpu": "0" } ], "createdAt": "2020-01-23T17:57:34.402Z", "launchType": "FARGATE", "cpu": "256", "memory": "512", "desiredStatus": "RUNNING", "group": "family:sample-fargate", "lastStatus": "RUNNING", "overrides": { "containerOverrides": [ { "name": "FargateApp" } ] }, "connectivity": "CONNECTED", "connectivityAt": "2020-01-23T17:57:38.453Z", "pullStartedAt": "2020-01-23T17:57:52.103Z", "startedAt": "2020-01-23T17:57:58.103Z", "pullStoppedAt": "2020-01-23T17:57:55.103Z", "updatedAt": "2020-01-23T17:57:58.103Z", "taskArn": "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad", "taskDefinitionArn": "arn:aws:ecs:us-west-2:111122223333:task-definition/sample-fargate:1", "version": 4, "platformVersion": "1.3.0" } }

Eventos de ação de serviço

O Amazon ECS envia eventos de ação de serviço com o tipo de detalhe ECS Service Action (Eventos de serviço do ECS). Ao contrário da instância de contêiner e dos eventos de alteração de estado da tarefa, os eventos de ação de serviços não incluem um número de versão no campo de resposta details. A seguir está um padrão de evento usado para criar uma EventBridge regra para eventos de ação de serviço do Amazon ECS. Para obter mais informações, consulte Criação de uma EventBridge regra no Guia EventBridge do usuário da Amazon.

{ "source": [ "aws.ecs" ], "detail-type": [ "ECS Service Action" ] }

O Amazon ECS envia eventos com os tipos de evento INFO, WARN e ERROR. A seguir estão os eventos de ação de serviço.

Eventos de ação de serviço com tipo de evento INFO

SERVICE_STEADY_STATE

O serviço é saudável e no número desejado de tarefas, atingindo assim um estado estável. O programador de serviços relata o status periodicamente, portanto, você pode receber essa mensagem várias vezes.

TASKSET_STEADY_STATE

O conjunto de tarefas é saudável e no número desejado de tarefas, atingindo assim um estado estável.

CAPACITY_PROVIDER_STEADY_STATE

Um provedor de capacidade associado a um serviço atinge um estado estável.

SERVICE_DESIRED_COUNT_UPDATED

Quando o agendador de serviço atualiza a contagem desejada calculada para um serviço ou conjunto de tarefas. Esse evento não é enviado quando a contagem desejada é atualizada manualmente por um usuário.

Eventos de ação de serviço com tipo de evento WARN

SERVICE_TASK_START_IMPAIRED

O serviço não consegue iniciar tarefas com êxito de maneira consistente.

SERVICE_DISCOVERY_INSTANCE_UNHEALTHY

Um serviço que usa a descoberta de serviço contém uma tarefa não íntegra. O agendador de serviço detecta que uma tarefa dentro de um registro de serviço não está íntegra.

Eventos de ação de serviço com tipo de evento ERROR

SERVICE_DAEMON_PLACEMENT_CONSTRAINT_VIOLATED

Uma tarefa em um serviço que usa a estratégia do agendador de serviço DAEMON não atende mais à estratégia de restrição de posicionamento para o serviço.

ECS_OPERATION_THROTTLED

O programador de serviço teve sua utilização controlada devido aos limites de controle de utilização da API do Amazon ECS.

SERVICE_DISCOVERY_OPERATION_THROTTLED

O agendador de serviço foi limitado devido aos limites de aceleração da API do AWS Cloud Map. Isto pode ocorrer em serviços configurados para usar a descoberta de serviço.

SERVICE_TASK_PLACEMENT_FAILURE

O agendador de serviço não consegue colocar uma tarefa. A causa será descrita no campo reason.

Uma causa comum para esse evento de serviço que está sendo gerado é a falta de recursos no cluster para posicionar a tarefa. Por exemplo, não há capacidade suficiente de CPU ou memória nas instâncias de contêiner disponíveis ou não há nenhuma instância de contêiner disponível. Outra causa comum é quando o agente de contêiner do Amazon ECS é desconectado na instância de contêiner, fazendo com que o programador não consiga colocar a tarefa.

SERVICE_TASK_CONFIGURATION_FAILURE

O agendador de serviço não consegue colocar uma tarefa devido a um erro de configuração. A causa será descrita no campo reason.

Uma causa comum da geração desse evento de serviço são etiquetas que estavam sendo aplicadas ao serviço, mas o usuário ou o perfil não aceitou o novo formato de nome do recurso da Amazon (ARN) na região. Para obter mais informações, consulte Nomes de recursos da Amazon (ARNs) e IDs. Outra causa comum é que o Amazon ECS não conseguiu assumir a função do IAM da tarefa fornecida.

exemplo Evento de estado estacionário do serviço

Os eventos de estado constante do serviço são entregues no formato seguinte. Para obter mais informações sobre EventBridge parâmetros, consulte Eventos e padrões de eventos no Guia EventBridge do usuário da Amazon.

{ "version": "0", "id": "af3c496d-f4a8-65d1-70f4-a69d52e9b584", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:27:22Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "SERVICE_STEADY_STATE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "createdAt": "2019-11-19T19:27:22.695Z" } }
exemplo Evento de estado estacionário do provedor de capacidade

Os eventos de estado constante do provedor de capacidade são entregues no formato a seguir.

{ "version": "0", "id": "b9baa007-2f33-0eb1-5760-0d02a572d81f", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:37:00Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "CAPACITY_PROVIDER_STEADY_STATE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "capacityProviderArns": [ "arn:aws:ecs:us-west-2:111122223333:capacity-provider/ASG-tutorial-capacity-provider" ], "createdAt": "2019-11-19T19:37:00.807Z" } }
exemplo Evento de início da tarefa de serviço com deficiência

Os eventos de início da tarefa de serviço com deficiência são entregues no formato a seguir.

{ "version": "0", "id": "57c9506e-9d21-294c-d2fe-e8738da7e67d", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:55:38Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "WARN", "eventName": "SERVICE_TASK_START_IMPAIRED", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "createdAt": "2019-11-19T19:55:38.725Z" } }
exemplo Evento de falha no posicionamento da tarefas de serviço

Os eventos de falha de posicionamento de tarefas de serviço são entregues no formato a seguir. Para obter mais informações sobre EventBridge parâmetros, consulte Eventos e padrões de eventos no Guia EventBridge do usuário da Amazon.

No exemplo a seguir, a tarefa estava tentando usar o provedor de capacidade FARGATE_SPOT, mas o programador de serviços não conseguiu adquirir nenhuma capacidade do Fargate Spot.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3a6d0468b", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:55:38Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "ERROR", "eventName": "SERVICE_TASK_PLACEMENT_FAILURE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "capacityProviderArns": [ "arn:aws:ecs:us-west-2:111122223333:capacity-provider/FARGATE_SPOT" ], "reason": "RESOURCE:FARGATE", "createdAt": "2019-11-06T19:09:33.087Z" } }

No exemplo a seguir para o tipo de execução do EC2, a tarefa tentou iniciar na instância de contêiner 2dd1b186f39845a584488d2ef155c131, mas o programador de serviços não conseguiu colocar a tarefa devido a CPU insuficiente.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3a6d0468b", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:55:38Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "ERROR", "eventName": "SERVICE_TASK_PLACEMENT_FAILURE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "containerInstanceArns": [ "arn:aws:ecs:us-west-2:111122223333:container-instance/default/2dd1b186f39845a584488d2ef155c131" ], "reason": "RESOURCE:CPU", "createdAt": "2019-11-06T19:09:33.087Z" } }

Eventos de alteração do estado da implantação de serviço

O Amazon ECS envia eventos de estado de alteração de implantação de serviço com o tipo de detalhe ECS Deployment State Change (Alteração do estado de implantação do ECS). A seguir está um padrão de evento usado para criar uma EventBridge regra para eventos de mudança de estado de implantação do serviço Amazon ECS. Para obter mais informações, consulte Criação de uma EventBridge regra no Guia EventBridge do usuário da Amazon.

{ "source": [ "aws.ecs" ], "detail-type": [ "ECS Deployment State Change" ] }

O Amazon ECS envia eventos com os tipos de evento INFO e ERROR. Veja a seguir os eventos de alteração de estado de implantação de serviços.

SERVICE_DEPLOYMENT_IN_PROGRESS

A implantação do serviço está em andamento. Esse evento é enviado para implantações iniciais e implantações de reversão.

SERVICE_DEPLOYMENT_COMPLETED

A implantação do serviço foi concluída. Esse evento é enviado quando um serviço atinge um estado estacionário após uma implantação.

SERVICE_DEPLOYMENT_FAILED

Houve falha na implantação do serviço. Esse evento é enviado para serviços com a lógica de disjuntor de implantação ativada.

exemplo evento de implantação de serviço em andamento

Os eventos de implantação de serviço em andamento são fornecidos quando uma implantação inicial e uma de reversão são iniciadas. A diferença entre as duas está no campo reason. Para obter mais informações sobre EventBridge parâmetros, consulte Eventos e padrões de eventos no Guia EventBridge do usuário da Amazon.

Veja a seguir um exemplo de saída para o início de uma implantação inicial.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3a6EXAMPLE", "detail-type": "ECS Deployment State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-05-23T12:31:14Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "SERVICE_DEPLOYMENT_IN_PROGRESS", "deploymentId": "ecs-svc/123", "updatedAt": "2020-05-23T11:11:11Z", "reason": "ECS deployment deploymentId in progress." } }

Veja a seguir um exemplo de saída para o início de uma implantação de reversão. O campo reason fornece o ID da implantação para a qual o serviço está revertendo.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE", "detail-type": "ECS Deployment State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-05-23T12:31:14Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "SERVICE_DEPLOYMENT_IN_PROGRESS", "deploymentId": "ecs-svc/123", "updatedAt": "2020-05-23T11:11:11Z", "reason": "ECS deployment circuit breaker: rolling back to deploymentId deploymentID." } }
exemplo evento de implantação de serviço concluído

Os eventos de implantação de serviço no estado concluído são entregues no formato a seguir. Para obter mais informações, consulte Atualização contínua.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE", "detail-type": "ECS Deployment State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-05-23T12:31:14Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "SERVICE_DEPLOYMENT_COMPLETED", "deploymentId": "ecs-svc/123", "updatedAt": "2020-05-23T11:11:11Z", "reason": "ECS deployment deploymentID completed." } }
exemplo evento de implantação de serviço com falha

Os eventos de implantação de serviço no estado com falha são entregues no formato a seguir. Um evento de implantação de serviço em estado com falha só será enviado para serviços com a lógica de disjuntor de implantação ativada. Para obter mais informações, consulte Atualização contínua.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE", "detail-type": "ECS Deployment State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-05-23T12:31:14Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "ERROR", "eventName": "SERVICE_DEPLOYMENT_FAILED", "deploymentId": "ecs-svc/123", "updatedAt": "2020-05-23T11:11:11Z", "reason": "ECS deployment circuit breaker: task failed to start." } }