

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 dell'agente del container Amazon ECS
<a name="ecs-agent-update"></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. Il processo per l'aggiornamento dell'agente differisce a seconda se la tua istanza di container è stata avviata con l'AMI ottimizzata per Amazon ECS o con un altro sistema operativo.

**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.

## Verifica della versione dell'agente del container Amazon ECS
<a name="checking_agent_version"></a>

Puoi verificare la versione dell'agente del container che è in esecuzione nelle tue istanze di container per vedere se è necessario aggiornarla. La vista dell'istanza di container nella console di Amazon ECS fornisce la versione dell'agente. Utilizza la procedura seguente per verificare la versione del tuo agente.

------
#### [ Amazon ECS console ]

1. Apri la console alla [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Dalla barra di navigazione, scegli la Regione in cui l'istanza esterna è registrata.

1. Nel riquadro di navigazione, scegli **Cluster** e seleziona il cluster che ospita l'istanza esterna.

1. Nella *name* pagina **Cluster:**, scegli la scheda **Infrastruttura**.

1. In **Container instances** (Istanze di container), osserva la colonna **Agent version** (Versione agente) per le tue istanze di container. Se l'istanza di container non contiene la versione più recente dell'agente del container, la console invia un avviso con un messaggio e contrassegna la versione dell'agente obsoleta.

   Se la versione del tuo agente del container è obsoleta, puoi aggiornare l'agente con le seguenti procedure:
   + Se la tua istanza di container sta eseguendo un'AMI ottimizzata per Amazon ECS, consulta [Come aggiornare l'agente del container Amazon ECS su un'AMI ottimizzata per Amazon ECS](agent-update-ecs-ami.md).
   + Se la tua istanza di container non sta eseguendo un'AMI ottimizzata per Amazon ECS, consulta [Aggiornamento manuale dell'agente container Amazon ECS (per prodotti non ottimizzati per Amazon ECS) AMIs](manually_update_agent.md).
**Importante**  
Per aggiornare la versione dell'agente di Amazon ECS da versioni precedenti alla v1.0.0 sull'AMI ottimizzata per Amazon ECS, ti consigliamo di terminare la tua attuale istanza di container e avviare una nuova istanza con la versione dell'AMI più recente. Qualsiasi istanza di container che utilizza una versione di anteprima deve essere ritirata e sostituita con l'AMI più recente. Per ulteriori informazioni, consulta [Avvio di un'istanza di container Linux di Amazon ECS](launch_container_instance.md).

------
#### [ Amazon ECS container agent introspection API  ]

Puoi inoltre utilizzare l'API di introspezione dell'agente del container di Amazon ECS per verificare la versione dell'agente dall'istanza di container stessa. Per ulteriori informazioni, consulta [Introspezione del container di Amazon ECS](ecs-agent-introspection.md).

**Come verificare se il tuo agente del container di Amazon ECS sta eseguendo l'ultima versione con l'API di introspezione**

1. Accedi alla tua istanza di container con SSH.

1. Interroga l'API di introspezione.

   ```
   [ec2-user ~]$ curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool
   ```
**Nota**  
L'API di introspezione ha aggiunto delle informazioni di `Version` nella versione v1.0.0 dell'agente del container di Amazon ECS. Se `Version` non è presente quando si interroga l'API di introspezione oppure se quest'ultima è completamente assente nel tuo agente, la versione in esecuzione è v0.0.3 o precedente. È necessario aggiornare la versione.

------

# Come aggiornare l'agente del container Amazon ECS su un'AMI ottimizzata per Amazon ECS
<a name="agent-update-ecs-ami"></a>

Se utilizzi l'AMI ottimizzata per Amazon ECS, hai diverse opzioni per ottenere la versione più recente dell'agente del container di Amazon ECS (mostrato in ordine di raccomandazione):
+ Termina l'istanza di container e avvia la versione più recente dell'AMI Amazon Linux 2 ottimizzata per Amazon ECS (manualmente o tramite l'aggiornamento della configurazione di avvio di Auto Scaling con l'AMI più recente). Questo fornisce una nuova istanza di container con le versioni testate e convalidate più aggiornate di Amazon Linux, Docker, `ecs-init` e l'agente del container di Amazon ECS. Per ulteriori informazioni, consulta [Linux ottimizzato per Amazon ECS AMIs](ecs-optimized_AMI.md).
+ Connettiti all'istanza con SSH e aggiorna il pacchetto `ecs-init` (e le relative dipendenze) alla versione più recente. Questa operazione fornisce le versioni testate e convalidate più aggiornate di Docker e `ecs-init` che sono disponibili nei repository di Amazon Linux e la versione più recente dell'agente del container di Amazon ECS. Per ulteriori informazioni, consulta [Come aggiornare il pacchetto `ecs-init` su un'AMI ottimizzata per Amazon ECS](#procedure_update_ecs-init).
+ Aggiorna l'agente del contenitore con l'operazione `UpdateContainerAgent` API, tramite la console o con l'opzione AWS CLI o AWS SDKs. Per ulteriori informazioni, consulta [Aggiornamento dell'agente del container di Amazon ECS con l'operazione API `UpdateContainerAgent`](#agent-update-api).

**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.<a name="procedure_update_ecs-init"></a>

**Come aggiornare il pacchetto `ecs-init` su un'AMI ottimizzata per Amazon ECS**

1. Accedi alla tua istanza di container con SSH.

1. Aggiorna il pacchetto `ecs-init` con il comando seguente.

   ```
   sudo yum update -y ecs-init
   ```
**Nota**  
Il pacchetto `ecs-init` e l'agente del container di Amazon ECS vengono aggiornati immediatamente. Tuttavia, le versioni più recenti di Docker non vengono caricate finché il daemon Docker non viene riavviato. Utilizza il riavvio dell'istanza oppure esegui i comandi seguenti sull'istanza:  
AMI Amazon Linux 2 ottimizzata per Amazon ECS:  

     ```
     sudo systemctl restart docker
     ```
AMI Amazon Linux ottimizzata per Amazon ECS:  

     ```
     sudo service docker restart && sudo start ecs
     ```

## Aggiornamento dell'agente del container di Amazon ECS con l'operazione API `UpdateContainerAgent`
<a name="agent-update-api"></a>

**Importante**  
L'API `UpdateContainerAgent` è supportata solo sulle varianti Linux dell'AMI ottimizzata per Amazon ECS, ad eccezione dell'AMI Amazon Linux 2 (arm64) ottimizzata per Amazon ECS. Per le istanze di container che utilizzano l'AMI Amazon Linux 2 (arm64) ottimizzata per Amazon ECS, aggiorna il pacchetto `ecs-init` per aggiornare l'agente. Per le istanze di container che eseguono altri sistemi operativi, consulta [Aggiornamento manuale dell'agente container Amazon ECS (per prodotti non ottimizzati per Amazon ECS) AMIs](manually_update_agent.md). Se utilizzi istanze di container Windows, ti consigliamo di avviare nuove istanze di container per aggiornare la versione dell'agente nei tuoi cluster Windows.

Il processo `UpdateContainerAgent` API inizia quando richiedi l'aggiornamento di un agente, tramite la console o con AWS CLI o AWS SDKs. Amazon ECS controlla la versione corrente dell'agente rispetto all'ultima versione disponibile e, se è possibile un aggiornamento. Se non è disponibile alcun aggiornamento, ad esempio se l'agente sta già eseguendo la versione più recente, allora viene restituito `NoUpdateAvailableException`.

Le fasi del processo di aggiornamento riportate in precedenza sono le seguenti:

`PENDING`  
È disponibile un aggiornamento dell'agente e il processo di aggiornamento è stato avviato.

`STAGING`  
L'agente ha iniziato a scaricare il relativo aggiornamento. Se l'agente non è in grado di scaricare l'aggiornamento, oppure se i contenuti dell'aggiornamento non sono corretti o sono danneggiati, l'agente invia una notifica dell'errore e l'aggiornamento passa allo stato `FAILED`.

`STAGED`  
Il download dell'agente è stato completato e i contenuti dell'agente sono stati verificati.

`UPDATING`  
Il servizio `ecs-init` è stato riavviato e ottiene la nuova versione dell'agente. Se l'agente non è in grado di riavviarsi per qualsiasi motivo, l'aggiornamento passa allo stato `FAILED`. In caso contrario, l'agente segnala ad Amazon ECS che l'aggiornamento è completo.

**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.

**Come aggiornare l'agente del container Amazon ECS su un'AMI ottimizzata per Amazon ECS nella console**

1. Apri la console alla [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Dalla barra di navigazione, scegli la Regione in cui l'istanza esterna è registrata.

1. Nel pannello di navigazione, seleziona **Clusters** (Cluster), quindi seleziona il cluster.

1. Nella *name* pagina **Cluster:**, scegli la scheda **Infrastruttura**.

1. In **Istanze di container**, seleziona le istanze da aggiornare, quindi scegli **Operazioni**, **Aggiorna agente**.

# 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. 