Executar uma tarefa autônoma - Serviço Amazon Elastic Container

Executar uma tarefa autônoma

Recomendamos a implantação da sua aplicação como uma tarefa autônoma, em algumas situações. Por exemplo, suponha que você esteja desenvolvendo uma aplicação, mas ainda não esteja pronto(a) para implantá-la com o programador de serviços. Se a sua aplicação for um trabalho em lote único ou periódico, não faz sentido manter em execução ou reiniciar quando terminar.

Para implantar a aplicação que será executada continuamente ou para colocá-la atrás de um balanceador de carga, crie um serviço do Amazon ECS. Para mais informações, consulte Serviços do Amazon ECS.

Classic console

Para executar uma tarefa autônoma usando o console clássico

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

  2. No painel de navegação, selecione Task Definitions e selecione a definição da tarefa a ser executada.

    • Para executar a revisão mais recente de uma definição de tarefa, selecione a caixa à esquerda da definição de tarefa a ser executada.

    • Para executar uma revisão anterior de uma definição de tarefa, selecione a definição de tarefa para ver todas as revisões ativas. Por último, selecione a revisão a ser executada.

  3. Escolha Actions, Run Task.

  4. Na página Run Task (Executar tarefa), execute as seguintes etapas:

    1. Escolha uma estratégia de provedor de capacidade ou um tipo de lançamento.

      • Para usar uma Estratégia de provedor de capacidade, escolha Switch to capacity provider strategy (Mudar para a estratégia de provedor de capacidade). Em seguida, escolha se a tarefa usa a estratégia de provedor de capacidade definida para o cluster ou uma estratégia de provedor de capacidade personalizada. Um provedor de capacidade deve ser associado ao cluster a ser usado em uma estratégia de provedor de capacidade personalizada. Para mais informações, consulte Provedores de capacidade do Amazon ECS.

      • Para usar um Tipo de inicialização, escolha Switch to launch type (Mudar para tipo de inicialização) e selecione EC2 ou EXTERNAL (EXTERNO). Para obter mais informações sobre tipos de inicialização, consulte Tipos de inicialização do Amazon ECS.

    2. Em Cluster, escolha o cluster a ser usado.

    3. Em Number of tasks (Número de tarefas), digite o número de tarefas a serem inicializadas com essa definição de tarefa.

    4. Em Task Group (Grupo da tarefa), digite o nome do grupo da tarefa.

  5. Se a sua definição de tarefa usar o modo de rede awsvpc, conclua as subetapas a seguir. Caso contrário, siga para a próxima etapa.

    1. Para Cluster VPC, selecione a VPC na qual as instâncias do seu contêiner residem.

    2. Para Subnets, escolha as sub-redes disponíveis para sua tarefa.

      Importante

      Somente as sub-redes privadas são compatíveis com o modo de rede awsvpc. As tarefas não recebem endereços IP públicos. Portanto, é necessário um gateway NAT para o acesso à Internet de saída e o tráfego de entrada da Internet é roteado por meio de um balanceador de carga.

    3. Em Security groups (Grupos de segurança), foi criado um security group para sua tarefa, que permite tráfego HTTP da Internet (0.0.0.0/0). Para editar o nome ou as regras desse grupo de segurança, escolha Edit (Editar) e modifique as configurações do seu grupo de segurança. Faça o mesmo se quiser escolher um grupo de segurança existente.

  6. (Opcional) Em Task Placement, você pode especificar como as tarefas são posicionadas usando estratégias e restrições de posicionamento de tarefas. Escolha entre as seguintes opções:

    • AZ Balanced Spread (Distribuição balanceada de AZ) – Distribua tarefas por zonas de disponibilidade e entre instâncias de contêiner na zona de disponibilidade.

    • AZ Balanced BinPack (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.

    • One Task Per Host (Uma tarefa por host) – Posicione, no máximo, uma tarefa do serviço em cada instância de contêiner.

    • Custom (Personalizado) – Defina sua própria estratégia de posicionamento de tarefas.

    Para mais informações, consulte Posicionamento de tarefas do Amazon ECS.

  7. (Opcional) Para enviar substituições de comando, variável de ambiente, uma função do IAM de tarefa ou função de execução de tarefa para um ou mais contêineres na sua definição de tarefa, escolha Advanced Options (Opções avançadas) e execute as seguintes etapas:

    nota

    Se você pretende usar os valores dos parâmetros da definição de tarefa, não é preciso especificar substituições. Esses campos são usadas apenas para substituir os valores que são especificados na definição de tarefa.

    1. Em Task Role Override (Substituição de função de tarefa), escolha uma função do IAM para essa tarefa para substituir a função do IAM de tarefa especificada na definição de tarefa. Para mais informações, consulte Funções do IAM para tarefas.

      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 Criação de uma função e política do IAM para suas tarefas.

    2. Em Task Execution Role Override (Substituição de função de execução de tarefa), escolha uma função de execução de tarefa para substituir a função de execução da tarefa especificada na definição de tarefa. Para mais informações, consulte Função do IAM de execução de tarefas do Amazon ECS.

    3. Em Container Overrides (Substituições de contêiner), escolha um contêiner para enviar uma substituição de comando ou de variável de ambiente.

      • Para uma substituição de comando: em Command override (Substituição de comando), digite a substituição de comando a ser enviada. Se sua definição de contêiner não especificar um ENTRYPOINT, o formato deverá ser uma lista separada por vírgulas de strings sem aspas.

        /bin/sh,-c,echo,$DATE

        Se a definição de contêiner especificar um ENTRYPOINT (comosh,-c), insira um valor de string para o seu valor de ambiente (sem as aspas duplas (" ")). A AWS delimita a string com aspas duplas (" ") e a transmite como um argumento para o comando ENTRYPOINT.

        while true; do echo $DATE > /var/www/html/index.html; sleep 1; done
      • Para substituições de variável de ambiente: escolha Add Environment Variable. 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."
  8. Na seção Configuração de marcação de tarefa, conclua as seguintes etapas:

    1. Selecione Enable ECS managed tags (Ativar etiquetas gerenciadas pelo ECS) se quiser que o Amazon ECS marque automaticamente cada tarefa com as etiquetass gerenciadas pelo Amazon ECS. Para obter mais informações, consulte Marcação dos recursos do Amazon ECS.

    2. Em Propagate tags from (Propagar etiquetas de), selecione uma das seguintes opções:

      • Não propagar: esta opção não propagará qualquer etiqueta.

      • Definições de tarefa: esta opção propagará as etiquetas especificadas na definição da tarefa para a tarefa.

        nota

        Se você especificar uma etiqueta com a mesma key na seçãoEtiquetas, ela substituirá a etiqueta propagada a partir da definição da tarefa.

  9. Na seção Etiquetas, especifique a chave e o valor de cada etiqueta a ser associada à tarefa. Para obter mais informações, consulte Marcação dos recursos do Amazon ECS.

  10. Revise as informações de sua tarefa e escolha Run Task.

    nota

    Se sua tarefa passar do status PENDING para STOPPED, ela poderá ser interrompida devido a um erro. Este também é o caso se ela exibir um status PENDING e depois desaparecer das tarefas listadas. Para obter mais informações, consulte Como verificar tarefas interrompidas em busca de erros na seção de solução de problemas.

Command line

Use o comando run-task. Para obter mais informações, consulte run-task, na Referência da AWS Command Line Interface.