

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

# Usa i modelli di lancio di Amazon EC2 con AWS Batch
<a name="launch-templates"></a>

AWS Batch supporta l'utilizzo dei modelli di lancio di Amazon EC2 con i tuoi ambienti di calcolo EC2. Con i modelli di avvio, puoi modificare la configurazione predefinita delle tue risorse di AWS Batch calcolo senza dover creare AMI personalizzate.

I modelli di avvio possono specificare le AMI che hanno la precedenza nell'ordine di selezione delle AMI. Per ulteriori informazioni, consulta [Ordine di selezione AMI](ami-selection-order.md).

**Nota**  
Quando si specifica un modello di avvio personalizzato per un ambiente di AWS Batch calcolo, AWS Batch non si collega direttamente il modello di avvio al gruppo Auto Scaling sottostante. AWS Batch Crea invece un modello di Batch-managed avvio separato per il gruppo Auto Scaling e vi incorpora le impostazioni pertinenti del modello di avvio personalizzato. Di conseguenza, il modello di avvio che vedi associato al gruppo Auto Scaling è diverso da quello specificato originariamente. Questo è il comportamento previsto.

**Nota**  
I modelli di avvio non sono supportati nelle risorse AWS Fargate.

È necessario creare un modello di avvio prima di associarlo a un ambiente di calcolo. Puoi creare un modello di lancio nella console Amazon EC2. In alternativa, puoi utilizzare AWS CLI o un AWS SDK. Ad esempio, il seguente file JSON rappresenta un modello di avvio che ridimensiona il volume di dati Docker per l'AMI della risorsa di AWS Batch calcolo predefinita e lo imposta anche per la crittografia.

```
{
    "LaunchTemplateName": "increase-container-volume-encrypt",
    "LaunchTemplateData": {
        "BlockDeviceMappings": [
            {
                "DeviceName": "/dev/xvda",
                "Ebs": {
                    "Encrypted": true,
                    "VolumeSize": 100,
                    "VolumeType": "gp2"
                }
            }
        ]
    }
}
```

È possibile creare il modello di avvio precedente salvando il JSON in un file chiamato `lt-data.json` ed eseguendo il comando seguente. AWS CLI 

```
aws ec2 --region {{<region>}} create-launch-template --cli-input-json file://lt-data.json
```

Per ulteriori informazioni sui modelli di lancio, consulta [ Launching an Instance from a Launch Template ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) nella * Amazon EC2 User Guide. *

Se si utilizza un modello di avvio per creare il tuo ambiente di calcolo, è possibile spostare i seguenti parametri di ambiente di calcolo esistenti sul modello di avvio:

**Nota**  
Supponiamo che uno qualsiasi di questi parametri (ad eccezione dei tag Amazon EC2) sia specificato sia nel modello di avvio che nella configurazione dell'ambiente di calcolo. Quindi, i parametri dell'ambiente di calcolo hanno la precedenza. I tag Amazon EC2 vengono uniti tra il modello di avvio e la configurazione dell'ambiente di calcolo. In caso di collisione sulla chiave del tag, il valore nella configurazione dell'ambiente di calcolo ha la precedenza.
+ Coppia di chiavi Amazon EC2
+ ID AMI Amazon EC2
+ ID dei gruppi di sicurezza
+ Tag Amazon EC2

I seguenti parametri del modello di avvio vengono ** ignorati da**: AWS Batch
+ Tipo di istanza (specificare i tipi di istanza desiderati al momento della creazione dell'ambiente di calcolo)
+ Ruolo istanza (specificare il ruolo di istanza desiderato al momento della creazione dell'ambiente di calcolo)
+ Sottoreti dell'interfaccia di rete (specificare i tipi di sottoreti desiderati al momento della creazione dell'ambiente di calcolo)
+ Opzioni di mercato delle istanze (AWS Batch deve controllare la configurazione di Spot Instance)
+ Disattiva la terminazione dell'API (AWS Batch deve controllare il ciclo di vita dell'istanza)

AWS Batch aggiorna il modello di lancio con una nuova versione del modello di avvio solo durante gli aggiornamenti dell'infrastruttura. Per ulteriori informazioni, consulta [Aggiornare un ambiente di calcolo in AWS Batch](updating-compute-environments.md).

## Modelli di avvio predefiniti e sostituiti
<a name="default-lt-and-overrides"></a>

È possibile definire un modello di avvio predefinito per l'ambiente di calcolo e un modello di avvio sostitutivo per tipi e famiglie di istanze specifici. Questo può esserti utile in modo che il modello predefinito venga utilizzato per la maggior parte dei tipi di istanze negli ambienti di calcolo.

Le variabili `$Default` di sostituzione `$Latest` possono essere utilizzate invece di denominare una versione specifica. Se non si fornisce un modello di avvio sostitutivo, il modello di avvio predefinito viene applicato automaticamente.

Se si utilizza la `$Latest` variabile `$Default` or, AWS Batch applicherà le informazioni correnti al momento della creazione dell'ambiente di calcolo. Se la versione predefinita o più recente cambia in futuro, è necessario aggiornare le informazioni tramite [ UpdateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) o tramite il Console di gestione AWS - AWS Batch.

Per fornire ulteriore flessibilità, è possibile definire l'override che i modelli di avvio vengano applicati a tipi o famiglie di istanze di calcolo specifici.

**Nota**  
È possibile specificare fino a dieci (10) modelli di avvio sostitutivi per ambiente di calcolo.

Utilizzate il `targetInstanceTypes` parametro per selezionare il tipo o la famiglia di istanze che deve utilizzare questo modello di avvio sostitutivo. Il tipo o la famiglia di istanza devono essere prima identificati dal [`instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) parametro.

Se definisci le sostituzioni dei modelli di avvio e decidi di rimuoverle in un secondo momento, puoi passare un array vuoto per annullare l'impostazione del [`overrides`](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides) parametro nell'[`UpdateComputeEnvironment`](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html)operazione API. Puoi anche scegliere di non includere il `overrides` parametro quando invii l'operazione API. `UpdateComputeEnvironment` Per ulteriori informazioni, consulta, [`LaunchTemplateSpecification.overrides`](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides)

Per ulteriori informazioni, consulta [`LaunchTemplateSpecificationOverride.targetInstanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecificationOverride.html#Batch-Type-LaunchTemplateSpecificationOverride-targetInstanceTypes) la guida di riferimento sulle AWS Batch API.

## Dati utente di Amazon EC2 nei modelli di avvio
<a name="lt-user-data"></a>

Puoi fornire i dati utente di Amazon EC2 nel modello di avvio eseguito da [ cloud-init ](https://cloudinit.readthedocs.io/en/latest/index.html) all'avvio delle istanze. I tuoi dati utente possono eseguire scenari di configurazione comuni, inclusi, a titolo esemplificativo ma non esaustivo, i seguenti:
+ [Inclusione di utenti o gruppi.](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#including-users-and-groups)
+ [Installazione di pacchetti](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#install-arbitrary-packages)
+ [Creazione di partizioni e file system](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#create-partitions-and-filesystems)

I dati utente di Amazon EC2 nei modelli di avvio devono essere nel formato di archivio multiparte [ MIME. ](https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive) Questo perché i tuoi dati utente vengono uniti ad altri dati AWS Batch utente necessari per configurare le tue risorse di calcolo. È possibile unire più blocchi di dati utente in un unico blocco, detto file MIME in più parti. Ad esempio, potresti voler combinare un boothook cloud che configura il demone Docker con uno script di shell dei dati utente che scrive le informazioni di configurazione per l'agente contenitore Amazon ECS.

Se stai usando AWS CloudFormation, il [ tipo ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-init.html)AWS::CloudFormation: :Init può essere usato con lo script helper [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html) cfn-init per eseguire scenari di configurazione comuni.

Un file MIME in più parti è composto dai seguenti elementi:
+ Il tipo di contenuto e la dichiarazione di delimitazione della parte: `Content-Type: multipart/mixed; boundary="==BOUNDARY=="`
+ La dichiarazione della versione MIME: `MIME-Version: 1.0`
+ Uno o più blocchi di dati utente che contengono i seguenti componenti:
  + Il limite di apertura che segnala l'inizio di un blocco di dati utente:`--==BOUNDARY==`. È necessario mantenere vuota la riga prima di questo limite.
  + La dichiarazione del tipo di contenuto per il blocco: `Content-Type: {{text/cloud-config}}; charset="us-ascii"`. Per ulteriori informazioni sui tipi di contenuto, consulta la [ Cloud-Init documentazione](https://cloudinit.readthedocs.io/en/latest/topics/format.html). È necessario mantenere vuota la riga dopo la dichiarazione del tipo di contenuto.
  + Il contenuto dei dati utente, ad esempio un elenco di comandi o `cloud-init` direttive di shell.
+ Il limite di chiusura che indica la fine del file in più parti MIME:. `--==BOUNDARY==--` È necessario mantenere vuota la riga prima del limite di chiusura.

**Nota**  
Se aggiungi dati utente a un modello di avvio nella console Amazon EC2, puoi incollarli come testo normale. In alternativa, puoi caricarlo da un file. Se utilizzi AWS CLI o un AWS SDK, devi prima `base64` codificare i dati dell'utente e inviare quella stringa come valore del `UserData` parametro quando chiami [ CreateLaunchTemplate](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html), come mostrato in questo file JSON.  

```
{
    "LaunchTemplateName": "base64-user-data",
    "LaunchTemplateData": {
        "UserData": "{{ewogICAgIkxhdW5jaFRlbXBsYXRlTmFtZSI6ICJpbmNyZWFzZS1jb250YWluZXItdm9sdW...}}"
    }
}
```

### Valori di configurazione riservati degli agenti Amazon ECS
<a name="lt-reserved-ecs-config"></a>

AWS Batch Scrive valori di configurazione specifici degli agenti Amazon ECS `/etc/ecs/ecs.config` quando le istanze vengono avviate in ambienti di elaborazione EC2-based gestiti che utilizzano Amazon ECS. AWS Batch può anche sovrascrivere questi valori durante gli aggiornamenti dell'ambiente di calcolo, quindi le modifiche potrebbero non persistere.

**Importante**  
I conflitti tra i dati utente e i valori AWS Batch gestiti possono impedire la pianificazione dei processi, causare comportamenti di scalabilità imprevisti e comportare costi imprevisti.

**Importante**  
Non copiare i dati utente da un modello AWS Batch di avvio gestito nel tuo modello di avvio. AWS Batch-managed user data contengono valori che differiscono tra gli ambienti di elaborazione e cambiano quando l'ambiente di elaborazione viene aggiornato. Se il modello di avvio contiene valori copiati, potrebbero entrare in conflitto con i valori previsti per l'ambiente di calcolo corrente.

Non impostate i seguenti valori nei dati utente del modello di avvio. Questi valori sono gestiti da AWS Batch e i conflitti possono causare problemi di pianificazione e scalabilità:
+ `ECS_CLUSTER`
+ `ECS_INSTANCE_ATTRIBUTES`

Per ulteriori informazioni sui parametri sopra elencati, consulta la configurazione dell'agente container [ Amazon ECS ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) nella * Amazon Elastic Container Service Developer Guide. *

**Topics**
+ [Modelli di avvio predefiniti e sostituiti](#default-lt-and-overrides)
+ [Dati utente di Amazon EC2 nei modelli di avvio](#lt-user-data)
+ [Riferimento: esempi di modelli di lancio di Amazon EC2](launch-template-examples.md)