

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

# Eseguire aggiornamenti dell'infrastruttura
<a name="infrastructure-updates"></a>

Gli aggiornamenti dell'infrastruttura sostituiscono le istanze nell'ambiente di elaborazione con nuove istanze con impostazioni aggiornate. Questa strategia di aggiornamento richiede più tempo rispetto agli aggiornamenti di scalabilità e richiede impostazioni specifiche del ruolo del servizio e della strategia di allocazione. Gli aggiornamenti dell'infrastruttura forniscono un modo per modificare le configurazioni fondamentali dell'ambiente di calcolo mantenendo la disponibilità del servizio.

**Importante**  
Gli aggiornamenti dell'infrastruttura richiedono il ruolo * AWSServiceRoleForBatch * collegato ai servizi e una strategia di allocazione di`BEST_FIT_PROGRESSIVE`,,, `BEST_FIT_PROGRESSIVE_ORDERED` o. `SPOT_CAPACITY_OPTIMIZED` `SPOT_PRICE_CAPACITY_OPTIMIZED` `SPOT_CAPACITY_OPTIMIZED_PRIORITIZED` Se il tuo ambiente non soddisfa questi requisiti, utilizza blue/green invece gli aggiornamenti.

## Modifiche che attivano gli aggiornamenti dell'infrastruttura
<a name="infrastructure-updates-triggers"></a>

Quando si modifica una delle seguenti impostazioni, AWS Batch esegue un aggiornamento dell'infrastruttura. Gli aggiornamenti dell'infrastruttura si verificano anche quando si modificano queste impostazioni insieme alla scalabilità delle impostazioni di aggiornamento.

Le seguenti impostazioni attivano gli aggiornamenti dell'infrastruttura:

**Configurazione di calcolo **
+ `allocationStrategy`— Determina la modalità di AWS Batch selezione dei tipi di istanza.
+ `instanceTypes`— Specifica quali tipi di istanze EC2 utilizzare.
+ `bidPercentage`— Percentuale massima di On-Demand prezzo per le istanze Spot.
+ `type`— Tipo di ambiente di calcolo (`EC2`o`SPOT`).

**AMI e configurazione di avvio **
+ `imageId`— AMI specifica da utilizzare per le istanze.
+ `ec2Configuration`— Configurazione EC2 inclusa. `imageIdOverride`
+ `launchTemplate`— Impostazioni del modello di avvio EC2.
+ `ec2KeyPair`— Coppia di chiavi SSH per esempio l'accesso.
+ `updateToLatestImageVersion`— Impostazione degli aggiornamenti automatici dell'AMI.

**Rete e sicurezza **
+ `subnets`— Sottoreti VPC in cui vengono lanciate le istanze (per ambienti di elaborazione EC2).
+ `securityGroupIds`— Gruppi di sicurezza per le istanze (per ambienti di calcolo EC2).
+ `placementGroup`— Configurazione del gruppo di collocamento EC2.

**Altre impostazioni **
+ `instanceRole`— Ruolo IAM per le istanze EC2.
+ `tags`— Tag applicati alle istanze EC2.

**Importante**  
Se si modificano le impostazioni di aggiornamento dell'infrastruttura insieme alla scalabilità delle impostazioni di aggiornamento (ad esempio`desiredvCpus`,, o`minvCpus`)`maxvCpus`, AWS Batch esegue un aggiornamento dell'infrastruttura. Gli aggiornamenti dell'infrastruttura richiedono più tempo rispetto agli aggiornamenti di scalabilità.

## Selezione dell'AMI durante gli aggiornamenti dell'infrastruttura
<a name="updating-compute-environments-ami"></a>

Durante un aggiornamento dell'infrastruttura, l'ID AMI dell'ambiente di calcolo potrebbe cambiare, a seconda che le AMI siano specificate in una di queste tre impostazioni. Le AMI sono specificate in `imageId` (in`computeResources`), `imageIdOverride` (in`ec2Configuration`) o nel modello di avvio specificato in. `launchTemplate` Supponiamo che nessun ID AMI sia specificato in nessuna di queste impostazioni e che l'`updateToLatestImageVersion`impostazione sia. `true` Quindi, l'ultima AMI ottimizzata per Amazon ECS supportata da AWS Batch viene utilizzata per qualsiasi aggiornamento dell'infrastruttura.

Se un ID AMI è specificato in almeno una di queste impostazioni, l'aggiornamento dipende dall'impostazione fornita dall'ID AMI utilizzato prima dell'aggiornamento. Quando si crea un ambiente di calcolo, la priorità per la selezione di un ID AMI è innanzitutto il modello di avvio, poi l'`imageId`impostazione e infine l'`imageIdOverride`impostazione. Tuttavia, se l'ID AMI utilizzato proviene dal modello di avvio, l'aggiornamento `imageIdOverride` delle impostazioni `imageId` o non aggiorna l'ID AMI. L'unico modo per aggiornare un ID AMI selezionato dal modello di lancio è aggiornare il modello di lancio. Se il parametro di versione del modello di lancio è `$Default` o`$Latest`, viene valutata la versione predefinita o più recente del modello di lancio specificato. Se viene selezionato un ID AMI diverso per impostazione predefinita o viene selezionata la versione più recente del modello di lancio, tale ID AMI viene utilizzato nell'aggiornamento.

Se il modello di lancio non è stato utilizzato per selezionare l'ID AMI, viene utilizzato l'ID AMI specificato nei `imageIdOverride` parametri `imageId` or. Se vengono specificati entrambi, viene utilizzato l'ID AMI specificato nel `imageIdOverride` parametro.

Supponiamo che l'ambiente di calcolo utilizzi un ID AMI specificato dai `launchTemplate` parametri`imageId`,`imageIdOverride`, o e che tu voglia utilizzare l'ultima AMI ottimizzata per Amazon ECS supportata da. AWS Batch Quindi, l'aggiornamento deve rimuovere le impostazioni che hanno fornito gli ID AMI. Perché`imageId`, ciò richiede la specificazione di una stringa vuota per quel parametro. Perché`imageIdOverride`, è necessario specificare una stringa vuota per il `ec2Configuration` parametro.

Se l'ID AMI proviene dal modello di lancio, puoi passare alla più recente AMI ottimizzata per Amazon ECS AWS Batch supportata in uno dei seguenti modi:
+ Rimuovi il modello di avvio specificando una stringa vuota per il parametro `launchTemplateId` or`launchTemplateName`. Ciò rimuove l'intero modello di avvio, anziché il solo ID AMI.
+ Se la versione aggiornata del modello di lancio non specifica un ID AMI, il `updateToLatestImageVersion` parametro deve essere impostato su`true`.

## Gestione dei lavori durante gli aggiornamenti
<a name="infrastructure-updates-job-handling"></a>

Configura come vengono gestiti i job in esecuzione durante un aggiornamento dell'infrastruttura utilizzando la policy di aggiornamento. Una volta impostato`terminateJobsOnUpdate=true`, i processi in esecuzione vengono interrotti immediatamente, l'`jobExecutionTimeoutMinutes`impostazione viene ignorata e l'aggiornamento procede non appena è possibile sostituire le istanze. Una volta impostato`terminateJobsOnUpdate=false`, i processi in esecuzione continuano per il periodo di timeout specificato con un timeout predefinito di 30 minuti e i job vengono terminati se superano il timeout.

**Nota**  
Per riprovare i processi terminati durante un aggiornamento, configura una strategia per riprovare i processi. Per ulteriori informazioni, consulta [Ritentativi automatici del lavoro](job_retries.md).

------
#### [ Performing infrastructure updates using the Console di gestione AWS ]

**Nota**  
Per eseguire semplicemente l'aggiornamento alla versione AMI più recente nella console, consulta. [Aggiornamento delle versioni AMI](managing-ami-versions.md#updating-ami-versions)

1. Apri la AWS Batch console all'indirizzo [ https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Nel pannello di navigazione, scegli ** Ambienti, ** quindi la ** scheda Ambienti di ** calcolo.

1. **Nella scheda Ambienti di ** calcolo, seleziona l'opzione accanto all'ambiente di elaborazione da aggiornare. È necessario selezionare un ambiente di elaborazione prima che le opzioni nel ** menu ** Azioni diventino disponibili.

1. Scegli ** Azioni ** e poi ** Modifica**.

1. Nella ** sezione ** Aggiorna comportamento, configura come vengono gestiti i lavori in esecuzione:
   + Scegli ** Aggiorna AMI alla versione più recente ** per aggiornare l'AMI alla versione più recente.
   + Scegli ** Termina i lavori immediatamente dopo l'aggiornamento ** per terminare i lavori quando viene eseguito il processo di aggiornamento.
   + Per il timeout dell'esecuzione dei ** job, ** inserisci il numero di minuti di attesa prima di iniziare il processo di aggiornamento.

1. Modifica una o più [ impostazioni che richiedono un aggiornamento ](#infrastructure-updates-triggers) dell'infrastruttura. Ad esempio:
   + **Ruolo dell'istanza **
   + **Usa le istanze EC2 Spot **
   + **Tipi di istanze consentiti **
   + **Gruppo di collocamento **
   + **Coppia di chiavi EC2**
   + **Configurazione EC2 **
   + **Modelli di avvio**
   + **Sottoreti**
   + **Gruppi di sicurezza**

1. Scegli **Save changes** (Salva modifiche).

1. Monitora lo stato dell'ambiente di elaborazione. L'ambiente verrà visualizzato `UPDATING` durante il processo di aggiornamento.

------
#### [ Performing infrastructure updates using the AWS CLI ]

Usa il **update-compute-environment** comando per modificare una o più [ impostazioni che richiedono aggiornamenti dell'infrastruttura](#infrastructure-updates-triggers). I tre esempi seguenti sono operazioni di infrastruttura comuni.
+ Questo esempio aggiorna i tipi di istanza e configura la politica di aggiornamento:

  ```
  aws batch update-compute-environment \
      --compute-environment {{your-compute-environment-name}} \
      --compute-resources instanceTypes={{default_x86_64}} \
      --update-policy terminateJobsOnUpdate={{false}},jobExecutionTimeoutMinutes={{30}}
  ```
+ Questo esempio aggiorna le sottoreti e i gruppi di sicurezza VPC:

  ```
  aws batch update-compute-environment \
      --compute-environment {{your-compute-environment-name}} \
      --compute-resources subnets={{subnet-abcd1234}},{{subnet-efgh5678}} securityGroupIds={{sg-abcd1234}} \
      --update-policy terminateJobsOnUpdate={{true}}
  ```
+ Questo esempio abilita gli aggiornamenti automatici alla più recente AMI ottimizzata per Amazon ECS:

  ```
  aws batch update-compute-environment \
      --compute-environment {{your-compute-environment-name}} \
      --compute-resources updateToLatestImageVersion={{true}} \
      --update-policy terminateJobsOnUpdate={{false}},jobExecutionTimeoutMinutes={{60}}
  ```

------

## Monitoraggio degli aggiornamenti dell'infrastruttura
<a name="infrastructure-updates-monitoring"></a>

Monitora gli aggiornamenti dell'infrastruttura utilizzando la AWS Batch console per osservare il cambiamento dello stato dell'ambiente di elaborazione`UPDATING`, monitorare l'avanzamento della sostituzione delle istanze e verificare eventuali aggiornamenti non riusciti. L'aggiornamento ha esito positivo una volta raggiunto lo stato dell'ambiente di calcolo. `VAILD` È inoltre possibile utilizzarlo CloudWatch per tenere traccia degli eventi di chiusura delle istanze e monitorare gli stati dei processi durante l'aggiornamento. Con il AWS CLI, usa il **describe-compute-environments** comando per controllare lo stato e monitorare gli eventi del ciclo di vita dell'istanza.