

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Aggiornamento manuale dell'agente container Amazon ECS (per prodotti non ottimizzati per Amazon ECS) AMIs
<a name="manually_update_agent"></a>

In alcuni casi, potrebbe essere necessario aggiornare l'agente del container di Amazon ECS per ottenere correzioni dei bug e nuove funzionalità. L'aggiornamento dell'agente del container di Amazon ECS non interrompe i processi o i servizi in esecuzione nell'istanza di container.
**Nota**  
Gli aggiornamenti dell'agente non si applicano alle istanze di container di Windows. Consigliamo di avviare nuove istanze di container per aggiornare la versione dell'agente nei cluster Windows.

1. Accedi alla tua istanza di container con SSH.

1. Controlla se il tuo agente utilizza la variabile di ambiente `ECS_DATADIR` per salvare il suo stato.

   ```
   ubuntu:~$ docker inspect ecs-agent | grep ECS_DATADIR
   ```

   Output:

   ```
   "ECS_DATADIR=/data",
   ```
**Importante**  
Se il comando precedente non restituisce la variabile di ambiente `ECS_DATADIR`, è necessario arrestare qualsiasi attività in esecuzione in questa istanza di container prima di aggiornare l'agente. Gli agenti più recenti con la variabile di ambiente `ECS_DATADIR` salvano il proprio stato e puoi aggiornarli mentre le attività vengono eseguite senza problemi.

1. Arresta l'agente del container di Amazon ECS.

   ```
   ubuntu:~$ docker stop ecs-agent
   ```

1. Elimina l'agente del container.

   ```
   ubuntu:~$ docker rm ecs-agent
   ```

1. Assicurati che la directory `/etc/ecs` e il file di configurazione dell'agente del container di Amazon ECS esistano in `/etc/ecs/ecs.config`.

   ```
   ubuntu:~$ sudo mkdir -p /etc/ecs && sudo touch /etc/ecs/ecs.config
   ```

1. Modifica il file `/etc/ecs/ecs.config` e assicurati che contenga almeno le seguenti dichiarazioni di variabili. Se non vuoi che la tua istanza di container sia registrata con il cluster predefinito, specifica il nome del tuo cluster come il valore per `ECS_CLUSTER`.

   ```
   ECS_DATADIR=/data
   ECS_ENABLE_TASK_IAM_ROLE=true
   ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST=true
   ECS_LOGFILE=/log/ecs-agent.log
   ECS_AVAILABLE_LOGGING_DRIVERS=["json-file","awslogs"]
   ECS_LOGLEVEL=info
   ECS_CLUSTER=default
   ```

   Per ulteriori informazioni su queste e altre opzioni di runtime dell'agente, consulta [Configurazione dell'agente del container Amazon ECS](ecs-agent-config.md).
**Nota**  
Puoi facoltativamente archiviare le variabili di ambiente dell'agente in Amazon S3 (che possono essere scaricate nelle tue istanze di container all'avvio utilizzando i dati utente di Amazon EC2). Ciò è consigliato per le informazioni sensibili, come le credenziali di autenticazione per i repository privati. Per ulteriori informazioni, consultare [Archiviazione della configurazione di un'istanza di container Amazon ECS in Amazon S3](ecs-config-s3.md) e [Utilizzo di immagini non AWS containerizzate in Amazon ECS](private-auth.md).

1. Estrai l'ultima immagine dell'agente del container di Amazon ECS da Amazon Elastic Container Registry Public.

   ```
   ubuntu:~$ docker pull public.ecr.aws/ecs/amazon-ecs-agent:latest
   ```

   Output:

   ```
   Pulling repository amazon/amazon-ecs-agent
   a5a56a5e13dc: Download complete
   511136ea3c5a: Download complete
   9950b5d678a1: Download complete
   c48ddcf21b63: Download complete
   Status: Image is up to date for amazon/amazon-ecs-agent:latest
   ```

1. Esegui l'agente del container di Amazon ECS più recente sulla tua istanza di container.
**Nota**  
Utilizza le policy di riavvio di Docker o un gestore di processo (come **upstart** o **systemd**) per trattare l'agente del container come un servizio o un daemon e assicurarne il riavvio dopo l'uscita. L'AMI ottimizzata per Amazon ECS utilizza l'`ecs-init`RPM per questo scopo e puoi visualizzare il [codice sorgente di questo](https://github.com/aws/amazon-ecs-init) RPM su. GitHub 

   Nell'esempio seguente, il comando di esecuzione dell'agente è suddiviso in righe separate per mostrare ciascuna opzione. Per ulteriori informazioni su queste e altre opzioni di runtime dell'agente, consulta [Configurazione dell'agente del container Amazon ECS](ecs-agent-config.md).
**Importante**  
I sistemi operativi con SELinux abilitato richiedono l'`--privileged`opzione nel comando. **docker run** Inoltre, per le istanze SELinux di container abilitate, si consiglia di aggiungere l'`:Z`opzione ai montaggi `/log` e `/data` volume. Tuttavia, i montaggi degli host per questi volumi devono esistere prima che tu esegua il comando o che riceva un errore `no such file or directory`. Se riscontri difficoltà nell'esecuzione dell'agente Amazon ECS su un'istanza di container SELinux abilitata, intraprendi la seguente azione:  
Crea i punti di montaggio dei volumi degli host sulla tua istanza di container.  

     ```
     ubuntu:~$ sudo mkdir -p /var/log/ecs /var/lib/ecs/data
     ```
Aggiungi l'opzione `--privileged` al comando **docker run** seguente.
Aggiungi l'opzione `:Z` ai montaggi dei volumi dei container `/log` e `/data` (ad esempio `--volume=/var/log/ecs/:/log:Z`) al comando **docker run** seguente.

   ```
   ubuntu:~$ sudo docker run --name ecs-agent \
   --detach=true \
   --restart=on-failure:10 \
   --volume=/var/run:/var/run \
   --volume=/var/log/ecs/:/log \
   --volume=/var/lib/ecs/data:/data \
   --volume=/etc/ecs:/etc/ecs \
   --volume=/etc/ecs:/etc/ecs/pki \
   --net=host \
   --env-file=/etc/ecs/ecs.config \
   amazon/amazon-ecs-agent:latest
   ```
**Nota**  
Se ricevi un messaggio `Error response from daemon: Cannot start container`, puoi eliminare il container che presenta l'errore con il comando **sudo docker rm ecs-agent** e tentare di eseguire nuovamente l'agente. 