Tarefas programadas - Serviço Amazon Elastic Container

Tarefas programadas

O Amazon ECS oferece suporte à criação de tarefas programadas. As tarefas programadas usam as regras do Amazon EventBridge para executar tarefas em uma programação ou em uma resposta a um evento do EventBridge.

Se você quiser executar tarefas em intervalos definidos, como uma operação de backup ou uma varredura de log, poderá criar uma tarefa programada que execute uma ou mais tarefas em momentos especificados. Você pode especificar um intervalo regular (executar a cada N minutos, horas ou dias) ou, para uma programação mais complicada, pode usar uma expressão cron. Para obter mais informações, consulte Expressões do cron e expressões rate no Guia do usuário do Amazon EventBridge.

Se você quiser executar tarefas que são acionadas por um evento, existem eventos gerenciados pela AWS para serviços (por exemplo, eventos de alteração de estado de tarefa e de instância de contêiner do Amazon ECS) ou você pode criar um padrão de evento personalizado. Para obter mais informações, consulte Padrões de eventos no Guia do usuário do Amazon EventBridge.

Criar uma tarefa programada

As tarefas programadas são acionadas pelas regras do Amazon EventBridge, que você pode criar usando o console do EventBridge. Embora você possa criar uma tarefa programada no console do Amazon ECS, no momento o console do EventBridge fornece uma maior funcionalidade para que as etapas a seguir orientem você na criação de uma regra do EventBridge que acione uma tarefa programada.

Antes que você possa enviar tarefas programadas com regras e destinos do EventBridge, o serviço do CloudWatch Events precisará de várias permissões para executar tarefas do Amazon ECS em seu nome. Para obter mais informações sobre a entidade principal do serviço e as permissões do IAM necessárias para esse perfil, consulte Função do IAM do CloudWatch Events do Amazon ECS.

Criar uma tarefa programada (console do EventBridge)

  1. Abra o console do Amazon EventBridge em https://console.aws.amazon.com/events/.

  2. No painel de navegação, escolha Rules (Regras).

  3. Escolha Create rule (Criar regra).

  4. Insira um nome e uma descrição para a regra.

    nota

    Uma regra não pode ter o mesmo nome que outra regra na mesma região e no mesmo barramento de eventos.

  5. Em Event bus (Barramento de eventos), escolha o barramento de eventos que você deseja associar a essa regra. Se desejar que essa regra corresponda a eventos provenientes da sua própria conta, selecione AWS default event bus (Barramento de eventos padrão da AWS). Quando um serviço da AWS em sua conta emite um evento, ele sempre vai para o barramento de eventos padrão da sua conta.

  6. Escolha como programar a tarefa.

    Para criar uma regra com base em… Fazer isso...

    Evento

    1. Em Rule type (Tipo de regra), escolha Rule with an event pattern (Regra com um padrão de evento).

    2. Escolha Next (Próximo).

    3. Para Event source (Origem do evento), escolha AWS events (Eventos da AWS).

    4. Em Event pattern (Padrão de evento), siga um destes procedimentos:

      • Para usar um modelo para criar o padrão de evento, escolha Event pattern form (Formulário de padrão de evento) e escolha as opções Event source (Origem do evento), AWS service (Serviço da ) e Event type (Tipo de evento). Se você escolher All Events (Todos os eventos) como tipo de evento, todos os eventos emitidos por esse serviço da AWS corresponderão à regra.

        Para personalizar o modelo, escolha Custom pattern (JSON editor) (Padrão personalizado, editor JSON) e faça as alterações.

      • Para utilizar um padrão de evento personalizado, escolha Para personalizar o modelo, escolha Custom pattern (JSON editor) (Padrão personalizado, editor JSON) e crie seu padrão de evento.

    Schedule
    1. Em Rule type (Tipo de regra), escolha Schedule (Programação).

    2. Escolha Next (Próximo).

    3. Em Schedule pattern (Padrão de programação), siga um destes procedimentos:

      • Para usar uma expressão cron para definir a programação, escolha A fine-grained schedule that runs at a specific time, such as 8:00 a.m. PST on the first Monday of every month (Uma programação refinada que é executada em um horário específico, como 8:00 PST na primeira segunda-feira de cada mês) e insira a expressão cron.

      • Para usar uma expressão de intervalo para definir a programação, escolha A schedule that runs at a regular rate, such as every 10 minutes (Uma programação que é executada a um intervalo regular, como a cada 10 minutos) e insira a expressão de intervalo.

  7. Escolha Next (Avançar).

  8. Em Target types (Tipos de destino), escolha AWS service (Serviço da AWS).

  9. Para Select a target (Selecione um destino), selecione ECS task (Tarefa do ECS).

  10. Em Cluster, selecione um cluster do Amazon ECS.

  11. Em Task definitionx (Definição de tarefa), selecione uma família de definição de tarefa.

  12. Em Task definition revision (Revisão da definição de tarefa), selecione Latest (Mais recente) ou Revision (Revisão) e selecione uma revisão de definição de tarefa específica a ser usada.

  13. Em Count (Contagem), especifique o número desejado de tarefas que serão executadas.

  14. Escolha como a tarefa programada é distribuída em toda a infraestrutura do seu cluster.

    Método de distribuição Etapas

    Estratégia de provedor de capacidade

    1. Na seção Compute options (Opções de computação), selecione Capacity provider strategy (Estratégia do provedor de capacidade).

    2. Escolha uma estratégia:

      • Para usar a estratégia de provedor de capacidade padrão do cluster, escolha Use cluster default (Usar padrão de cluster).

      • Se o cluster não tiver uma estratégia de provedor de capacidade padrão ou, para usar uma estratégia personalizada, escolha Use custom (Usar personalizada), Add capacity provider strategy (Adicionar estratégia de provedor de capacidade) e defina a estratégia de provedor de capacidade personalizada especificando um Provedor de capacidade, uma Base e um Peso.

    nota

    Para usar um provedor de capacidade em uma estratégia, o provedor de capacidade deve estar associado ao cluster. Para obter mais informações sobre estratégias de provedores de capacidade, consulte Provedores de capacidade do Amazon ECS.

    Tipo de inicialização
    1. Na seção Compute options (Opções de computação), selecione Launch type (Tipo de inicialização).

    2. Em Launch type (Tipo de inicialização), escolha um tipo de inicialização.

    3. (Opcional) Quando o tipo de inicialização do Fargate for especificado, em Platform version (Versão da plataforma), especifique a versão de plataforma a ser usada. Se não for especificada uma versão da plataforma, a versão LATEST da plataforma será usada, por padrão.

  15. Se a tarefa estiver hospedada no Fargate ou usar o modo de rede awsvpc, expanda Configure network configuration (Definir configuração de rede) e especifique uma configuração de rede.

    1. Em Subnets (Sub-redes), especifique um ou mais IDs de sub-rede.

    2. Em Security groups (Grupos de segurança), selecione um ou mais IDs de grupos de segurança.

    3. Em Auto-assign public IP (Atribuir IP público automaticamente) especifique se um endereço IP público deve ser atribuído da sub-rede para a tarefa.

  16. (Opcional) Para especificar parâmetros adicionas para suas tarefas, expanda Configure additional properties (Configurar propriedades adicionais).

    1. Em Task group (Grupo de tarefas), especifique um nome para o grupo de tarefas. O nome do grupo de tarefas é usado para identificar um conjunto de tarefas relacionadas e é usado em conjunto com a estratégia de posicionamento de tarefas spread para garantir que as tarefas do mesmo grupo de tarefas sejam distribuídas uniformemente entre as instâncias de contêiner do cluster.

    2. Em Placement constraint (Restrição de posicionamento), escolha Add placement constraint (Adicionar restrição de posicionamento). Selecione o Type (Tipo) de restrição de posicionamento e, em seguida, insira uma expressão. Para mais informações, consulte Restrições de posicionamento de tarefas do Amazon ECS.

      nota

      As restrições de posicionamento de tarefas não são compatíveis com tarefas hospedadas no Fargate.

    3. Em Placement strategy (Estratégia de posicionamento), escolha Add placement strategy (Adicionar estratégia de posicionamento). Selecione o Type (Tipo) de estratégia de posicionamento e, em seguida, insira uma expressão. Repita esse processo para cada estratégia de posicionamento a ser adicionada. Para mais informações, consulte Estratégias de posicionamento de tarefas do Amazon ECS.

      nota

      As estratégias de posicionamento de tarefas não são compatíveis com tarefas hospedadas no Fargate.

    4. Em Tags (Etiquetas), escolha Add tag (Adicionar etiqueta) para associar etiquetas de par de valor de chave à tarefa.

    5. Para adicionar etiquetas a serem usadas ao revisar a alocação de custos no seu Relatório de custo e uso, para Configure managed tags (Configurar etiquetas gerenciadas), escolha Enable managed tags (Habilitar etiquetas gerenciadas). Para mais informações, consulte Marcar recursos para faturamento.

    6. Para habilitar a funcionalidade ECS Exec para a tarefa, em Configure execute command (Configurar comando executar), escolha Enable execute command (Habilitar comando executar). Para mais informações, consulte Usar o Amazon ECS Exec para depuração.

    7. Para adicionar as etiquetas associadas à definição de tarefa à sua tarefa, em Configure propagate tags (Configurar etiquetas de propagação), escolha Propagate tags from task definition (Propagar etiquetas de definição de tarefa). Para mais informações, consulte Marcar recursos do .

      nota

      Se você especificar uma tag com a mesma chave na seção Tags (Etiquetas), ela substituirá a tag propagada a partir da definição de tarefa.

  17. Para muitos tipos de destino, o Eventbridge precisa de permissões para enviar eventos ao destino. Nesses casos, o Eventbridge pode criar a função do IAM necessária para sua função ser executada. Faça um dos seguintes procedimentos:

    • Para criar um perfil do IAM automaticamente, escolha Create a new role for this specific resource (Criar novo perfil para este recurso específico).

    • Para usar um perfil do IAM que você criou anteriormente, escolha Use existing role (Usar função existente).

  18. (Opcional) Em Additional settings (Configurações adicionais), faça o seguinte:

    1. Em Maximum age of event (Idade máxima do evento), insira um valor entre um minuto (00:01) e 24 horas (24:00).

    2. Em Retry attempts (Tentativas de repetição), insira um número entre 0 e 185.

    3. Em Dead-letter queue (Fila de mensagens mortas), escolha se será usada uma fila padrão do Amazon SQS como fila de mensagens mortas. O EventBridge envia eventos que correspondem a essa regra para a fila de mensagens mortas se eles não forem entregues com êxito ao destino. Faça um dos seguintes procedimentos:

      • Escolha None (Nenhum) para não usar uma fila de mensagens mortas.

      • Escolha Select an Amazon SQS queue in the current AWS account to use as the dead-letter queue (Selecionar uma fila do Amazon SQS na conta atual da AWS para usar como a fila de mensagens não entregues) e selecione na lista suspensa a fila a ser usada.

      • Escolha Select an Amazon SQS queue in an other AWS account as a dead-letter queue (Selecionar uma fila do Amazon SQS em outra conta da AWS como fila de mensagens não entregues) e, em seguida, insira o ARN da fila a ser usada. Você deve anexar uma política baseada em recurso à fila que conceda permissão ao EventBridge para enviar mensagens a ela. Para obter mais informações, consulte Conceder permissões à fila de mensagens mortas no Guia do usuário do Amazon EventBridge.

  19. Escolha Next (Próximo).

  20. (Opcional) Insira uma ou mais tags para a regra. Para obter mais informações, consulte Etiquetas do Amazon EventBridge no Guia do usuário do Amazon EventBridge.

  21. Escolha Next (Próximo).

  22. Analise os detalhes da regra e escolha Create rule (Criar regra).

Visualizar as tarefas programadas

As tarefas programadas podem ser visualizadas no console clássico do Amazon ECS. Também é possível visualizar as regras do Amazon EventBridge que acionam as tarefas programadas no console do EventBridge.

Para visualizar as tarefas programadas (console do Amazon ECS)

  1. Abra o console do Amazon ECS em https://console.aws.amazon.com/ecs/.

  2. Escolha o cluster em que as tarefas programadas serão executadas.

  3. Na página Cluster: nome do cluster, escolha a guia Scheduled Tasks (Tarefas programadas).

  4. Todas as tarefas programadas são listadas.

Editar uma tarefa programada

As tarefas programadas podem ser editadas no console clássico do Amazon ECS. Também é possível editar as regras do Amazon EventBridge que acionam as tarefas programadas no console do EventBridge.

Para editar uma tarefa programada (console do Amazon ECS)

  1. Abra o console do Amazon ECS em https://console.aws.amazon.com/ecs/.

  2. Escolha o cluster no qual editar sua tarefa programada.

  3. Na página Cluster: cluster-name, escolha Scheduled Tasks.

  4. Selecione a caixa à esquerda da regra de programação a ser editada e escolha Edit.

  5. Edite os campos a serem atualizados e escolha Update.