

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

# Avvisi di interruzione dell'istanza spot
<a name="spot-instance-termination-notices"></a>

Una *notifica di interruzione di istanza spot* è un avviso che viene emesso due minuti prima che Amazon EC2 arresti o termini l'istanza spot. Se si specifica l'ibernazione come comportamento di interruzione, si riceve un avviso di interruzione ma senza i due minuti di preavviso perché il processo di ibernazione comincia immediatamente.

Il modo migliore per gestire nel modo appropriato le interruzioni delle istanze spot è progettare l'applicazione affinché sia tollerante ai guasti. A tale scopo, puoi sfruttare gli avvisi di interruzione dell'istanza spot. Si consiglia di controllare queste notifiche di interruzione ogni 5 secondi. 

Gli avvisi di interruzione sono resi disponibili come EventBridge evento e come elementi nei [metadati dell'istanza sull'istanza](ec2-instance-metadata.md) Spot. Gli avvisi di interruzione vengono emessi in base al miglior sforzo possibile.

## Evento EC2 Spot Instance Interruption Warning.
<a name="ec2-spot-instance-interruption-warning-event"></a>

Quando Amazon EC2 sta per interrompere l'istanza spot, emette un evento due minuti prima dell'interruzione effettiva (tranne che per l'ibernazione, che riceve l'avviso di interruzione ma non con due minuti di anticipo, perché l'ibernazione inizia immediatamente). Questo evento può essere rilevato da Amazon EventBridge. Per ulteriori informazioni sugli EventBridge eventi, consulta la [Amazon EventBridge User Guide](https://docs.aws.amazon.com/eventbridge/latest/userguide/). Per un esempio dettagliato che illustra come creare e utilizzare le regole degli eventi, consulta [Taking Advantage of Amazon EC2 Spot Instance Interruption Notices](https://aws.amazon.com/blogs/compute/taking-advantage-of-amazon-ec2-spot-instance-interruption-notices/).

Di seguito è illustrato un esempio dell'evento di interruzione dell'istanza spot. I valori possibili per `instance-action` sono `hibernate`, `stop` e `terminate`.

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-123456789012",
    "detail-type": "EC2 Spot Instance Interruption Warning",
    "source": "aws.ec2",
    "account": "123456789012",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-2",
    "resources": ["arn:aws:ec2:us-east-2a:instance/i-1234567890abcdef0"],
    "detail": {
        "instance-id": "i-1234567890abcdef0",
        "instance-action": "action"
    }
}
```

**Nota**  
Il formato dell'ARN dell'interruzione dell'istanza spot è `arn:aws:ec2:availability-zone:instance/instance-id`. Questo formato è diverso dal formato dell'[ARN delle risorse EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-resources-for-iam-policies).

## instance-action
<a name="instance-action-metadata"></a>

La voce `instance-action` specifica l'azione e l'orario indicativo, in UTC, in cui si verificherà l'azione.

Se l'istanza spot è contrassegnata per essere arrestata o terminata dal Amazon EC2, nei [metadati dell'istanza](ec2-instance-metadata.md) è presente la voce `instance-action`. In caso contrario, non è presente. Puoi recuperare `instance-action` utilizzando Instance Metadata Service versione 2 (IMDSv2) come segue.

------
#### [ Linux ]

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/spot/instance-action
```

------
#### [ Windows ]

```
[string]$token = Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/meta-data/spot/instance-action
```

------

 L'esempio seguente indica l'orario in cui questa istanza verrà arrestata.

```
{"action": "stop", "time": "2017-09-18T08:22:00Z"}
```

L'esempio seguente indica l'orario in cui questa istanza verrà terminata.

```
{"action": "terminate", "time": "2017-09-18T08:22:00Z"}
```

Se Amazon EC2 non si sta preparando ad arrestare o terminare l'istanza o se l'istanza è stata terminata dall'utente stesso, `instance-action` non è presente nei metadati dell'istanza e viene restituito un errore HTTP 404 quando si cerca di recuperarla.

## termination-time
<a name="termination-time-metadata"></a>

L'elemento `termination-time` specifica l'orario indicativo, in UTC, in cui l'istanza riceve il segnale di arresto. 

**Nota**  
Questa voce viene mantenuta per la compatibilità con le versioni precedenti; è necessario utilizzare `instance-action`.

Se la tua istanza spot è contrassegnata per la terminazione da Amazon EC2 (a causa di un'interruzione dell'istanza spot in cui il comportamento di interruzione è impostato su `terminate` o a causa dell'annullamento di una richiesta persistente di istanza spot), l'elemento `termination-time` è presente nei [metadati dell'istanza](ec2-instance-metadata.md). In caso contrario, non è presente. È possibile recuperare l'`termination-time`utilizzo IMDSv2 come segue.

------
#### [ Linux ]

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
if curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/spot/termination-time | grep -q .*T.*Z; then echo termination_scheduled; fi
```

------
#### [ Windows ]

```
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/meta-data/spot/termination-time
```

------

Di seguito è riportato un output di esempio.

```
2015-01-05T18:02:00Z
```

Se Amazon EC2 non si sta preparando a terminare l'istanza (perché non c'è un'interruzione dell'istanza spot o perché il comportamento di interruzione è impostato su `stop` o `hibernate`) o se hai terminato l'istanza spot, l'elemento `termination-time` non è presente nei metadati dell'istanza (quindi riceve un errore HTTP 404) o contiene un valore che non è un valore temporale.

Se Amazon EC2 non riesce a terminare l'istanza, lo stato della richiesta viene impostato su `fulfilled`. I valore `termination-time` rimane nei metadati di istanza con l'orario indicativo originario, che ora è in passato.