

# Criação e gerenciamento de daemons
<a name="managed-daemons-create-manage"></a>

Depois de registrar uma definição de tarefa de daemon, crie um daemon para realizar a implantação dela nos provedores de capacidade do Amazon ECS Managed Instances. O Amazon ECS instala automaticamente uma tarefa de daemon em cada instância do Amazon EC2 nos provedores de capacidade associados e gerencia o ciclo de vida do daemon.

## Pré-requisitos
<a name="managed-daemons-prerequisites"></a>

Antes de criar um daemon, verifique se você possui o seguinte:
+ Um cluster do Amazon ECS.
+ Um ou mais provedores de capacidade de Instâncias Gerenciadas do Amazon ECS associados ao cluster.
+ Uma definição de tarefa de daemon registrada.

## Criação de um daemon
<a name="managed-daemons-create"></a>

### Console de gerenciamento da AWS
<a name="managed-daemons-create-console"></a>

1. Abra o console do Amazon ECS. Na barra de navegação à esquerda, selecione **Clusters** e, em seguida, selecione o seu cluster.

1. Escolha a guia **Daemons** e depois **Criar**.

1. Em **Família de definições de tarefas de daemon**, selecione a definição da tarefa do daemon no menu suspenso.

1. Em **Revisão da definição da tarefa do daemon**, selecione a revisão a ser usada. Deixe em branco para usar a versão mais recente.

1. Em **Nome do daemon**, digite um nome exclusivo. O nome pode conter até 255 caracteres alfanuméricos, hífens e sublinhados.

1. Em **Provedores de capacidade**: selecione um ou mais provedores de capacidade de Instâncias gerenciadas do Amazon ECS. Isso determina quais instâncias executam suas tarefas de daemon.

1. (Opcional) Configure as opções de implantação:
   + **Porcentagem de drenagem**: porcentagem de instâncias a serem drenadas simultaneamente durante as atualizações. Padrão: `25`.
   + **Use alarmes do CloudWatch**: ative para monitorar a integridade da implantação e reverter automaticamente se forem ativados gatilhos.
   + **Tempo de incorporação**: o número de minutos que o Amazon ECS aguarda após atualizar todas as instâncias para a nova versão do daemon antes de concluir a implantação. Durante esse período, o Amazon ECS monitora os alarmes do CloudWatch e reverte automaticamente a implantação caso algum alarme seja um gatilho. Padrão: `0`.

1. (Opcional) Adicione tags.

1. (Opcional) Ative **Habilitar ECS Exec** para executar comandos interativos em seus contêineres de daemon para solucionar problemas.

1. Verifique sua configuração e escolha **Criar**.

### AWS CLI
<a name="managed-daemons-create-cli"></a>

Crie um arquivo JSON com a configuração do seu daemon e execute o comando `create-daemon`.

A seguir, um exemplo de arquivo JSON:

```
{
    "clusterArn": "arn:aws:ecs:{{us-east-1}}:{{123456789012}}:cluster/{{my-daemon-cluster}}",
    "daemonName": "{{my-monitoring-daemon}}",
    "daemonTaskDefinitionArn": "arn:aws:ecs:{{us-east-1}}:{{123456789012}}:daemon-task-definition/{{my-daemon-task}}:1",
    "capacityProviderArns": [
        "arn:aws:ecs:{{us-east-1}}:{{123456789012}}:capacity-provider/{{my-daemon-capacity-provider}}"
    ]
}
```

Execute o seguinte comando para criar o daemon:

```
aws ecs create-daemon --cli-input-json file://create-daemon.json
```

**Campos obrigatórios**
+ `daemonName`: um nome exclusivo para o daemon.
+ `clusterArn`: o ARN do cluster.
+ `daemonTaskDefinitionArn`: o ARN da definição da tarefa do daemon.
+ `capacityProviderArns`: uma matriz de ARNs de provedores de capacidade das instâncias gerenciadas do Amazon ECS.

**Campos opcionais**
+ `deploymentConfiguration`: um objeto `DaemonDeploymentConfiguration` para personalizar o comportamento da implantação.
+ `tags`: pares chave-valor para marcação.
+ `propagateTags`: configuração de propagação de etiquetas.
+ `clientToken`: um token de idempotência.

## Verificar a implantação do daemon
<a name="managed-daemons-verify"></a>

Depois de criar um daemon, verifique seu status usando o Console de gerenciamento da AWS ou a AWS CLI.

### Console de gerenciamento da AWS
<a name="managed-daemons-verify-console"></a>

1. Abra o console do Amazon ECS. Na barra de navegação à esquerda, selecione **Clusters** e, em seguida, selecione o seu cluster.

1. Escolha a guia **Daemons**.

1. Verifique se seu daemon mostra o status **Ativo**.

1. Escolha a guia **Tarefas** para confirmar se uma tarefa daemon é executada em cada instância do contêiner.

### AWS CLI
<a name="managed-daemons-verify-cli"></a>

Execute os seguintes comandos para verificar o status do daemon:

```
aws ecs list-daemons \
    --cluster-arn arn:aws:ecs:{{us-east-1}}:{{123456789012}}:cluster/{{my-daemon-cluster}}
```

```
aws ecs describe-daemons \
    --daemon-arn arn:aws:ecs:{{us-east-1}}:{{123456789012}}:daemon/{{my-daemon-cluster}}/{{my-monitoring-daemon}}
```

## Atualização de um daemon
<a name="managed-daemons-update"></a>

Para atualizar um daemon com uma nova revisão da definição de tarefa ou para adicionar provedores de capacidade, use o Console de gerenciamento da AWS ou a AWS CLI. Isso é um gatilho para uma implantação gradual em todas as instâncias.

### Console de gerenciamento da AWS
<a name="managed-daemons-update-console"></a>

1. Abra o console do Amazon ECS. Na barra de navegação à esquerda, selecione **Clusters** e, em seguida, selecione o seu cluster.

1. Escolha a guia **Daemons** e selecione o daemon que deseja atualizar.

1. Selecione **Atualizar**.

1. Em **Revisão da definição da tarefa do daemon**; selecione a nova revisão.

1. (Opcional) Atualize os provedores de capacidade ou as configurações de implantação.

1. Escolha **Atualizar** para iniciar a implantação contínua.

### AWS CLI
<a name="managed-daemons-update-cli"></a>

Execute o comando `update-daemon`:

```
aws ecs update-daemon \
    --daemon-arn arn:aws:ecs:{{us-east-1}}:{{123456789012}}:daemon/{{my-daemon-cluster}}/{{my-monitoring-daemon}} \
    --daemon-task-definition-arn arn:aws:ecs:{{us-east-1}}:{{123456789012}}:daemon-task-definition/{{my-daemon-task}}:2 \
    --capacity-provider-arns arn:aws:ecs:{{us-east-1}}:{{123456789012}}:capacity-provider/{{my-daemon-capacity-provider}}
```

**Importante**  
Quando você fornece configurações de daemon em uma solicitação `UpdateDaemon`, o Amazon ECS usa as configurações especificadas por você em vez das configurações padrão. As configurações do daemon, incluindo etiquetas e o sinalizador de comando de execução, não são mantidas entre as atualizações. Cada chamada para `UpdateDaemon` deve incluir o conjunto completo de configurações que você deseja aplicar. Quaisquer configurações omitidas na solicitação voltam aos seus valores padrão.

## Exclusão de um daemon
<a name="managed-daemons-delete"></a>

Para excluir um daemon, use o Console de gerenciamento da AWS ou a AWS CLI. Aguarde até que todas as tarefas do daemon sejam encerradas antes de excluir o provedor de capacidade ou o cluster.

### Console de gerenciamento da AWS
<a name="managed-daemons-delete-console"></a>

1. Abra o console do Amazon ECS. Na barra de navegação à esquerda, selecione **Clusters** e, em seguida, selecione o seu cluster.

1. Escolha a guia **Daemons** e selecione o daemon que deseja excluir.

1. Escolha **Excluir**.

1. Na caixa de diálogo de confirmação, selecione **Excluir** para confirmar.

### AWS CLI
<a name="managed-daemons-delete-cli"></a>

Execute o comando `delete-daemon`:

```
aws ecs delete-daemon \
    --daemon-arn arn:aws:ecs:{{us-east-1}}:{{123456789012}}:daemon/{{my-daemon-cluster}}/{{my-monitoring-daemon}}
```