Criar uma tarefa programada usando a AWS CLI - Serviço Amazon Elastic Container

Criar uma tarefa programada usando a AWS CLI

Este tópico descreve como criar uma tarefa programada usando a AWS CLI. A criação da tarefa programada usa a API do CloudWatch Events. Para obter mais informações, consulte O que é o Amazon CloudWatch Events? no Guia do usuário do Amazon CloudWatch Events.

Conclua os seguintes pré-requisitos:

Para criar uma tarefa programada (AWS CLI)

  1. Crie a regra do CloudWatch Events. Este exemplo cria uma regra chamada MyRule1 que é acionada todos os dias, às 12h UTC. Você pode alterar a hora da maneira mais conveniente para verificar os resultados da programação. O primeiro espaço reservado de tempo é minutos e o segundo espaço reservado é horas UTC. Para outros exemplos de expressões de regra, consulte Programar expressões para regras no Guia do usuário do Amazon CloudWatch Events.

    aws events put-rule \ --schedule-expression "cron(0 12 * * ? *)" --name MyRule1
  2. Adicione os detalhes do cluster e da definição de tarefa do Amazon ECS como um destino para a regra do CloudWatch Events. Especifique o cluster e a definição de tarefa usando o nome do recurso da Amazon (ARN) completo. O tipo de inicialização e a configuração de rede devem ser estabelecidos na definição da tarefa ou na linha de comando put-targets. Quando o Fargate é usado, a configuração da rede deve ser definida como awsvpc.

    Nesse exemplo, o destino é definido como o cluster default, no qual deve ser executada uma tarefa do Fargate com base na definição de tarefa first-run-task-definition:1. Uma contagem de uma tarefa está programada para ser executada de acordo com MyRule1. Uma função do IAM ecsEventsRole é atribuída ao destino. O tipo de inicialização é a do FARGATE e a configuração de rede é definida como awsvpc com um grupo de segurança e uma sub-rede pública. O comando é executado a partir da instância do ECS no cluster padrão. Para obter mais informações sobre put-targets, consulte put-targets. O cluster e a definição da tarefa já devem ter sido criados. Caso contrário, você receberá um erro.

    Crie um arquivo local denominado scheduledtask.json com o seguinte conteúdo:

    [{ "Id": "1", "Arn": "arn:aws:ecs:us-east-1:123456789012:cluster/default", "RoleArn": "arn:aws:iam::123456789012:role/ecsEventsRole", "EcsParameters": { "TaskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/first-run-task-definition:1", "TaskCount": 1, "LaunchType": "FARGATE", "NetworkConfiguration": { "awsvpcConfiguration": { "Subnets": ["subnet1"], "SecurityGroups": ["secgroup1"], "AssignPublicIp": "ENABLED" } }, "PlatformVersion": "LATEST" } }]

    Use o seguinte comando para criar o destino:

    aws events put-targets \ --rule "MyRule1" \ --targets file://scheduledtask.json