

# Tarefas autônomas do Amazon ECS
<a name="standalone-tasks"></a>

Você pode executar a aplicação como tarefa quando tiver uma aplicação que executa algum trabalho e depois interrompe, por exemplo, um processo em lote. Se quiser executar uma tarefa uma vez, você pode usar o console, a AWS CLI, as APIs ou os SDKs.

Se precisar executar a aplicação em um cronograma baseado em intervalos, em cron ou em um cronograma único, você pode criá-lo usando o Agendador do EventBridge.

## Fluxo de trabalho de tarefas
<a name="task-workflow"></a>

Ao executar tarefas do Amazon ECS (tarefas autônomas ou de serviços do Amazon ECS), uma tarefa é criada e inicialmente movida para o estado `PROVISIONING`. Quando uma tarefa está no estado `PROVISIONING`, nem a tarefa nem os contêineres existem porque o Amazon ECS precisa encontrar capacidade computacional para posicionar a tarefa.

O Amazon ECS seleciona a capacidade computacional apropriada para a tarefa com base no tipo de execução ou na configuração do provedor de capacidade. Você pode usar provedores de capacidade e as estratégias deles com o Fargate e o EC2. Com o Fargate, você não precisa pensar em provisionar, configurar e escalar a capacidade do cluster. O Fargate cuida de todo o gerenciamento da infraestrutura das tarefas. No EC2, é possível gerenciar a capacidade do cluster registrando as instâncias do Amazon EC2 no cluster ou usar o ajuste de escala automático do cluster para simplificar o gerenciamento da capacidade computacional. O ajuste de escala automático do cluster se encarrega de escalar dinamicamente a capacidade do cluster, para que você possa se concentrar na execução de tarefas. O Amazon ECS determina onde posicionar a tarefa, com base nos requisitos especificados na definição de tarefa, como CPU e memória, bem como nas restrições e estratégias de posicionamento. Para ter mais informações, consulte , [Como o Amazon ECS posiciona tarefas em instâncias de contêineres](task-placement.md).

Se você usar um provedor de capacidade com ajuste de escala gerenciado habilitado, as tarefas que não puderem ser iniciadas devido à falta de capacidade computacional serão transferidas para o estado `PROVISIONING` em vez de falharem imediatamente. Depois de encontrar a capacidade de posicionamento da tarefa, o Amazon ECS provisiona os anexos necessários, por exemplo, as interfaces de rede elástica (ENI) para tarefas no modo `awsvpc`. A ferramenta usa o agente de contêiner do Amazon ECS para extrair as imagens do contêiner e iniciá-los. Depois que o provisionamento é concluído e os contêineres relevantes são executados, o Amazon ECS muda a tarefa para o estado `RUNNING`. Para mais informações sobre os estados das tarefas, consulte [Ciclo de vida de tarefas do Amazon ECS](task-lifecycle-explanation.md).

# Execução de uma aplicação como uma tarefa do Amazon ECS
<a name="standalone-task-create"></a>

Você pode criar uma tarefa para um processo único usando o Console de gerenciamento da AWS.

**Para criar uma tarefa autônoma (Console de gerenciamento da AWS)**

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

1. O console do Amazon ECS permite criar uma tarefa autônoma na página de detalhes do cluster ou na lista de revisão da definição de tarefas. Use as etapas a seguir para criar a tarefa autônoma, dependendo da página de recursos escolhida.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/standalone-task-create.html)

1. Em **Cluster existente**, escolha o cluster.

   Escolha **Criar cluster** para executar a tarefa em um novo cluster

1. Escolha como suas tarefas serão distribuídas em toda a infraestrutura do cluster. Em **Configuração de computação** escolha a sua opção. Para usar uma estratégia de provedor de capacidade, configure os provedores de capacidade no nível do cluster. 

   Caso não tenha configurado o cluster para usar um provedor de capacidade, use um tipo de execução.

   Para executar suas workloads nas instâncias gerenciadas do Amazon ECS, use a opção de estratégia do provedor de capacidade.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/standalone-task-create.html)

1. Em **Configuração de implantação**, faça o seguinte:

   1. Em **Definição de tarefa**, insira a definição de tarefa.
**Importante**  
O console valida a seleção para garantir que a família de definição de tarefa e a revisão selecionadas sejam compatíveis com a configuração de computação definida.

   1. Em **Desired tasks** (Tarefas desejadas), insira o número de tarefas que serão iniciadas.

   1. Em **Grupo de tarefas**, digite o nome do grupo de tarefas.

1. Se a definição de tarefa usar o modo de rede`awsvpc`, expanda **Networking** (Redes). Use as etapas a seguir para especificar uma configuração personalizada.

   1. Em **VPC**, selecione a VPC a ser usada.

   1. Em **Subnets** (Sub-redes), selecione uma ou mais sub-redes na VPC que o programador de tarefas levará em consideração ao posicionar as tarefas.

   1. Em **Grupo de segurança**, é possível escolher um grupo de segurança existente ou criar outro. Para usar um grupo de segurança existente, escolha o grupo de segurança e vá para a próxima etapa. Para criar um novo grupo de segurança, escolha **Create a new security group** (Criar um novo grupo de segurança). Você deve especificar o nome de um grupo de segurança, uma descrição e, em seguida, adicionar uma ou mais regras de entrada para o grupo de segurança.

   1. Em **Public IP** (IP público), escolha se um endereço IP público deve ou não ser atribuído automaticamente à interface de rede elástica (ENI) da tarefa.

      Tarefas do AWS Fargate podem receber um endereço IP público quando são executadas em uma sub-rede pública para terem uma rota para a Internet. As tarefas do EC2 não podem ser atribuídas a um IP público usando esse campo. Para obter mais informações, consulte [Opções de rede de tarefas do Amazon ECS para o Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-task-networking.html) e [Alocar uma interface de rede para uma tarefa do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking-awsvpc.html).

1. Caso a tarefa use um volume de dados compatível com a configuração na implantação, você pode configurar o volume expandindo **Volume**.

   O nome e o tipo do volume são configurados ao criar uma revisão de definição de tarefa e não podem ser alterados ao executar uma tarefa autônoma. Para atualizar o nome e o tipo do volume, você deve criar uma revisão de definição de tarefa e executar uma tarefa usando a nova revisão.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/standalone-task-create.html)

1. (Opcional) Para usar uma estratégia de posicionamento de tarefas diferente da padrão, expanda **Task Placement** (Posicionamento de tarefas) e escolha uma das opções a seguir.

    Para obter mais informações, consulte [Como o Amazon ECS posiciona tarefas em instâncias de contêineres](task-placement.md).
   + **Distribuição balanceada de AZ**: distribua tarefas por zonas de disponibilidade e entre instâncias de contêiner na zona de disponibilidade.
   + **BinPack balanceado de AZ**: distribua tarefas por zonas de disponibilidade e entre instâncias de contêiner com a menor memória disponível.
   + **BinPack**: distribua tarefas com base na menor quantidade disponível de CPU ou memória.
   + **Uma tarefa por host**: posicione, no máximo, uma tarefa do serviço em cada instância de contêiner.
   + **Personalizado**: defina sua própria estratégia de posicionamento de tarefas. 

   Se você escolheu **Custom** (Personalizado), defina o algoritmo de modo a posicionar as tarefas e as regras que serão consideradas durante o posicionamento de tarefas.
   + Em **Strategy** (Estratégia), em **Type** (Tipo) e **Field** (Campo), escolha o algoritmo e a entidade a serem usados com o algoritmo.

     É possível adicionar no máximo cinco estratégias.
   + Em **Restrição**, para **Tipo** e **Expressão**, escolha a regra e o atributo para a restrição.

     Por exemplo, para definir a restrição de modo a posicionar tarefas em instâncias T2, em **Expression** (Expressão), insira **attribute:ecs.instance-type =\$1 t2.\$1**.

     É possível adicionar no máximo dez restrições.

1. (Opcional) Para substituir o perfil do IAM da tarefa ou o perfil de execução da tarefa especificado na definição de tarefa, expanda **Task overrides** (Substituições de tarefa) e realize as seguintes etapas:

   1. Em **Perfil da tarefa**, escolha um perfil do IAM para essa tarefa. Para obter mais informações, consulte [Perfil do IAM para tarefas do Amazon ECS](task-iam-roles.md).

      Somente as funções com o relacionamento de confiança `ecs-tasks.amazonaws.com` são exibidas. Para obter instruções sobre a criação de uma função do IAM para as tarefas, consulte [Criar o perfil do IAM de tarefa](task-iam-roles.md#create_task_iam_policy_and_role).

   1. Em **Perfil de execução da tarefa**, escolha um perfil de execução da tarefa. Para obter mais informações, consulte [Função do IAM de execução de tarefas do Amazon ECS](task_execution_IAM_role.md).

1. (Opcional) Para substituir os comandos do contêiner e as variáveis de ambiente, expanda **Container Overrides** (Substituições de contêiner) e expanda o contêiner.
   +  Para enviar um comando para o contêiner que não seja o comando de definição de tarefa, em **Substituição de comando**, insira o comando do Docker.
   + Para adicionar uma variável de ambiente, use **Add environment variable** (Adicionar variável de ambiente). Em **Key** (Chave), insira o nome da variável de ambiente. Em **Value** (Valor), insira um valor de string para seu valor de ambiente (sem as aspas duplas (`" "`)).

     A AWS delimita a string com aspas duplas (" ") e a transmite ao contêiner no seguinte formato:

     ```
     MY_ENV_VAR="This variable contains a string."
     ```

1. (Opcional) Para ajudar a identificar a tarefa, expanda a seção **Tags** (Etiquetas) e configure suas etiquetas.

   Para que o Amazon ECS marque automaticamente todas as tarefas recém-iniciadas com o nome do cluster e as tags de definição de tarefa, selecione **Turn on Amazon ECS managed tags** (Ativar tags gerenciadas pelo Amazon ECS) e depois **Definições de tarefas**.

   Adicione ou remova uma tag.
   + [Adicionar uma etiqueta] Escolha **Add tag** (Adicionar etiqueta) e faça o seguinte:
     + Em **Chave**, insira o nome da chave.
     + Em **Valor** insira o valor da chave.
   + [Remover uma tag] Ao lado da tag, escolha **Remove tag (Remover tag)**.

1. Escolha **Criar**.

# Uso do Agendador do Amazon EventBridge para programar tarefas do Amazon ECS
<a name="tasks-scheduled-eventbridge-scheduler"></a>

O Agendador do EventBridge é um programador com tecnologia sem servidor que permite criar, executar e gerenciar tarefas de um serviço gerenciado central. Ele fornece uma funcionalidade de programação única e recorrente, independente das regras e barramentos de eventos. O Agendador do EventBridge é altamente personalizável e oferece escalabilidade aprimorada em relação às regras programadas do EventBridge, com um conjunto mais amplo de operações da API de destino e serviços da AWS. O Agendador do EventBridge fornece as programações a seguir que podem ser configuradas para suas tarefas no console do Agendador do EventBridge:
+ Baseada em taxa 
+ Baseado em cron

  É possível configurar programações baseadas em cron em qualquer fuso horário.
+ Programações únicas

  É possível configurar programações únicas em qualquer fuso horário.

Você pode programar o Amazon ECS usando o Agendador do Amazon EventBridge.

Embora seja possível criar uma tarefa programada no console do Amazon ECS, no momento, o console do Agendador do EventBridge fornece mais funcionalidades.

Conclua as etapas a seguir antes de programar uma tarefa:

1. Use o console da VPC para obter os IDs de sub-rede em que as tarefas são executadas e os IDs do grupo de segurança para as sub-redes. Para obter mais informações, consulte [Sub-redes para sua VPC](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) e [Controlar o tráfego para seus recursos da AWS usando grupos de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html) no *Guia do usuário da Amazon VPC*.

1. Configure o perfil de execução do Agendador do EventBridge. Para obter mais informações, consulte [Configurar o perfil de execução](https://docs.aws.amazon.com/scheduler/latest/UserGuide/setting-up.html#setting-up-execution-role) no *Guia do usuário do Agendador do Amazon EventBridge*. 

1. Se você desejar usar uma estratégia de provedor de capacidade para executar a tarefa, você deverá ter um provedor de capacidade associado ao cluster.

**Para criar uma nova programação usando o console**

1. Abra o console do Agendador do Amazon EventBridge em [https://console.aws.amazon.com/scheduler/home](https://console.aws.amazon.com/scheduler/home/).

1.  Na página **Programações**, clique em **Criar programação**. 

1.  Na página **Especificar detalhes da programação**, na seção **Nome e descrição da programação**, faça o seguinte: 

   1. Em **Nome da programação**, insira um nome para a programação. Por exemplo, **MyTestSchedule**. 

   1. (Opcional) Em **Descrição**, insira a descrição da programação. Por exemplo, **TestSchedule**.

   1. Em **Grupo de agendamentos**, escolha um grupo de agendamento. Se você não tiver um grupo, escolha **padrão**. Para criar um grupo de programação, escolha **criar sua própria programação**. 

      Para adicionar tags a grupos de programação, você usa os grupos de programação. 

1. Escolha as opções de programação.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/tasks-scheduled-eventbridge-scheduler.html)

1. (Opcional) Se você escolher **Programação recorrente** na etapa anterior, na seção **Período**, faça o seguinte: 

   1. Em **Fuso horário**, escolha um fuso horário. 

   1. Em **Data e hora de início**, insira uma data válida no formato `YYYY/MM/DD` e, em seguida, especifique um carimbo de data/hora no formato de 24 horas `hh:mm`. 

   1. Para **Data e hora de término**, insira uma data válida no formato `YYYY/MM/DD` e, em seguida, especifique um carimbo de data/hora no formato 24 horas `hh:mm`. 

1. Escolha **Próximo**. 

1. Na página **Selecionar destino**, faça o seguinte: 

   1. Escolha **Todas as APIs** e, na caixa de pesquisa, digite **ECS**. 

   1. Selecione **Amazon ECS**.

   1. Na caixa de pesquisa, insira **RunTask** e, em seguida, escolha **RunTask**.

   1. Em **Cluster do ECS**, escolha o cluster.

   1. Em **Tarefa do ECS**, escolha a definição de tarefa a ser usada para a tarefa.

   1. Escolha como suas tarefas serão distribuídas em toda a infraestrutura do cluster. Expanda **Opções de computação** e, em seguida, escolha uma das opções a seguir    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/tasks-scheduled-eventbridge-scheduler.html)

   1. Em **Sub-redes**, insira os IDs de sub-rede nas quais executar a tarefa.

   1. Em **Grupos de segurança**, insira as IDs do grupo de segurança da sub-rede.

   1. (Opcional) Para usar uma estratégia de posicionamento de tarefas diferente da padrão, expanda **Restrição de posicionamento** e insira as restrições.

       Para obter mais informações, consulte [Como o Amazon ECS posiciona tarefas em instâncias de contêineres](task-placement.md).

   1. (Opcional) Para ajudar a identificar as tarefas, em **Tags**, configure suas tags.

      Para que o Amazon ECS atribua tags automaticamente a todas as tarefas recém-iniciadas com tags de definição de tarefa, selecione **Habilitar tags gerenciadas pelo Amazon ECS**.

1. Escolha **Próximo**. 

1. Na página **Configurações**, faça o seguinte: 

   1. Para ativar a programação, em **Estado da programação**, mude para **Ativar programação**. 

   1. Para configurar uma política de novas tentativas para a programação, em **Política de novas tentativas e fila de mensagens não entregues (DLQ)**, faça o seguinte:
      + Mude para **Tentar novamente**.
      + Em **Tempo de retenção máximo do evento**, insira a(s) **hora(s)** e o(s) **minuto(s)** máximo(s) que o Agendador do EventBridge deverá manter um evento não processado.
      + O período máximo é de 24 horas.
      + Em **Máximo de tentativas**, insira o número máximo de vezes que o Agendador do EventBridge tentará executar a programação se o destino retornar um erro. 

         O valor máximo é 185 tentativas. 

      Com as políticas de novas tentativas, se a programação não conseguir invocar o destino, o Agendador do EventBridge tentará executar novamente a programação. Se configurado, você deve definir o tempo máximo de retenção e as novas tentativas da programação.

   1. Escolha onde o Agendador do EventBridge armazena os eventos não entregues.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/tasks-scheduled-eventbridge-scheduler.html)

   1. Para usar uma chave gerenciada pelo cliente para criptografar a entrada de destino, em **Criptografia**, escolha **Personalizar as configurações de criptografia (avançado)**. 

      Se você escolher essa opção, insira o ARN da chave do KMS existente ou escolha **Criar AWS KMS key** para navegar até o console do AWS KMS. Para obter mais informações sobre como o Agendador do EventBridge criptografa os dados em repouso, consulte [Criptografia em repouso](https://docs.aws.amazon.com/scheduler/latest/UserGuide/encryption-rest.html) no *Guia do usuário do Agendador do Amazon EventBridge*. 

   1. Em **Permissões**, escolha **Usar perfil existente** e selecione o perfil.

      Para que o Agendador do EventBridge crie um novo perfil de execução para você, escolha **Criar novo perfil para esta programação**. Depois, insira um nome em **Nome do perfil**. Se você escolher essa opção, o Agendador do EventBridge anexará as permissões necessárias para o destino de exemplo ao perfil. 

1. Escolha **Próximo**. 

1.  Na página **Revisar e criar programação**, revise os detalhes da programação. Em cada seção, escolha **Editar** para voltar a essa etapa e editar seus detalhes. 

1. Clique em **Criar programação**. 

   Você pode ver a lista com as programações novas e existentes na página **Programações**. Na coluna **Status**, verifique se a nova programação está **Ativada**. 

## Próximas etapas
<a name="eventbridge-scheduler-next-steps"></a>

É possível usar o console do Agendador do EventBridge ou a AWS CLI para gerenciar a programação. Para obter mais informações, consulte [Gerenciamento de uma programação](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-schedule.html) no *Guia do usuário do Agendador do Amazon EventBridge*.

# Interrupção de uma tarefa do Amazon ECS
<a name="standalone-task-stop"></a>

Caso não precise mais manter uma tarefa autônoma em execução, é possível interrompê-la. O console do Amazon ECS facilita a interrupção de uma ou mais tarefas.

Você não pode reiniciar uma tarefa autônoma que foi interrompida.

Caso queira interromper um serviço, consulte [Exclusão de um serviço do Amazon ECS usando o console](delete-service-v2.md).

**Para interromper uma tarefa autônoma (Console de gerenciamento da AWS)**

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 cluster para navegar até a página de detalhes do cluster.

1. Na página de detalhes do cluster, escolha a guia **Tarefas**. 

1. Você pode filtrar tarefas por tipo de execução usando a lista **Filtrar tipo de execução**.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/standalone-task-stop.html)