

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

# Piattaforme personalizzate Elastic Beanstalk (ritirate)
<a name="custom-platforms"></a>

**Nota**  
[Il 18 luglio 2022,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html) **Elastic Beanstalk ha impostato lo stato di tutte le filiali della piattaforma basate su Amazon Linux AMI AL1 () come ritirato.** Include le piattaforme personalizzate. Elastic Beanstalk non supporta le piattaforme personalizzate. Per ulteriori informazioni sul ritiro da parte di Elastic Beanstalk dell'AMI Amazon Linux, consulta [Domande frequenti sul ritiro della piattaforma](using-features.migration-al.FAQ.md).

Questo argomento rimarrà in questo documento come riferimento per tutti i clienti che hanno utilizzato la funzionalità della piattaforma personalizzata Elastic Beanstalk prima del suo ritiro. In passato, le piattaforme personalizzate Elastic Beanstalk supportavano la creazione di un'AMI da Amazon Linux AMI, RHEL 7, RHEL 6 o Ubuntu 16.04 base. AMIs Questi sistemi operativi non sono più supportati da Elastic Beanstalk. Per ulteriori informazioni sulla funzionalità delle piattaforme personalizzate, che non è più supportata, espandi il seguente argomento.



## Piattaforme personalizzate
<a name="custom-platforms-collapsed"></a>

Una piattaforma personalizzata è una personalizzazione più avanzata rispetto a una [immagine personalizzata](using-features.customenv.md) in diversi modi. Una piattaforma personalizzata ti consente di sviluppare un'intera nuova piattaforma da zero, personalizzando il sistema operativo, il software aggiuntivo e gli script che vengono eseguiti da Elastic Beanstalk sulle istanze della piattaforma. Questa flessibilità ti consente di creare una piattaforma per un'applicazione che utilizza un linguaggio o altro software dell'infrastruttura per cui Elastic Beanstalk non fornisce una piattaforma gestita. Confrontala con immagini personalizzate, in cui modifichi un'Amazon Machine Image (AMI) per l'uso con una piattaforma Elastic Beanstalk esistente ed Elastic Beanstalk continua a fornire gli script della piattaforma e a controllare lo stack del software della piattaforma. Inoltre, con le piattaforme personalizzate utilizzi un metodo automatizzato e con script per creare e gestire la personalizzazione, mentre con le immagini personalizzate apporti le modifiche manualmente su un'istanza in esecuzione.

Per creare una piattaforma personalizzata devi creare un'AMI da uno dei sistemi operativi supportati: Ubuntu, RHEL o Amazon Linux (vedi la voce `flavor` in [Formato del file Platform.yaml](#platform-yaml-format) per i numeri di versione esatti) e aggiungere ulteriori personalizzazioni. Puoi creare la tua [piattaforma](https://www.packer.io/) Elastic Beanstalk utilizzando Packer, uno strumento open source per la creazione di immagini di macchine per molte piattaforme, AMIs incluso l'uso con Amazon Elastic Compute Cloud (Amazon). EC2 Una piattaforma Elastic Beanstalk comprende un'AMI configurata per eseguire un set di software che supporta un'applicazione e metadati che possono includere opzioni di configurazione personalizzate e impostazioni di opzioni di configurazione predefinite.

Elastic Beanstalk gestisce Packer come una piattaforma integrata separata e non dovrai preoccuparti della configurazione e delle versioni di Packer.

Puoi creare una piattaforma fornendo a Elastic Beanstalk un modello Packer e gli script e i file che il modello richiama per creare un'AMI. Questi componenti sono compressi in un [file di definizione della piattaforma](#custom-platform-creating) che specifica il modello e i metadati in un archivio ZIP noto come [archivio di definizione della piattaforma](#custom-platforms-pda).

Quando crei una piattaforma personalizzata, avvii un ambiente con una singola istanza senza un IP elastico che esegue Packer. Quindi, Packer avvia un'altra istanza per creare un'immagine. Puoi riutilizzare questo ambiente per più piattaforme e più versioni di ciascuna piattaforma.

**Nota**  
Le piattaforme personalizzate sono specifiche della regione. AWS Se utilizzi Elastic Beanstalk in più regioni devi creare le tue piattaforme separatamente in ciascuna regione.  
In determinate circostanze, le istanze avviate da Packer non vengono eliminate e devono essere terminate manualmente. Per informazioni su come pulire manualmente queste istanze, consulta [Pulizia delle istanze Packer](#custom-platforms-packercleanup).

Gli utenti nel tuo account possono utilizzare le piattaforme personalizzate specificando un [ARN della piattaforma](AWSHowTo.iam.policies.arn.md) durante la creazione dell'ambiente. Queste ARNs vengono restituite dal **eb platform create** comando utilizzato per creare la piattaforma personalizzata.

Ogni volta che compili la tua piattaforma personalizzata, Elastic Beanstalk crea una nuova versione della piattaforma. Gli utenti possono specificare una piattaforma per nome per ottenerne solo la versione più recente o includere un numero di versione per ottenere una versione specifica.

Ad esempio, per distribuire la versione più recente della piattaforma personalizzata con l'ARN **MyCustomPlatformARN**, che potrebbe corrispondere alla versione 3.0, la riga di comando dell'interfaccia a riga di comando EB deve essere simile alla seguente:

```
eb create -p MyCustomPlatformARN
```

Per distribuire la versione 2.1, la riga di comando della CLI EB deve essere simile alla seguente:

```
eb create -p MyCustomPlatformARN --version 2.1
```

Puoi applicare tag a una versione della piattaforma personalizzata al momento della sua creazione e modificare i tag di versioni della piattaforma esistenti. Per informazioni dettagliate, vedi [Tagging delle versioni della piattaforma personalizzate](#custom-platforms-tagging).

### Creazione di una piattaforma personalizzata
<a name="custom-platform-creating"></a>

Per creare una piattaforma personalizzata, la root della tua applicazione deve includere un file di definizione della piattaforma `platform.yaml` che definisce il tipo di generatore utilizzato per creare la piattaforma personalizzata. Il formato di questo file è descritto in [Formato del file Platform.yaml](#platform-yaml-format). Puoi creare la tua piattaforma personalizzata da zero oppure utilizzare una delle [piattaforme personalizzate di esempio](#custom-platforms-sample) come punto di partenza.

### Utilizzo di una piattaforma personalizzata di esempio
<a name="custom-platforms-sample"></a>

Un'alternativa alla creazione di una piattaforma personalizzata consiste nell'usare uno degli esempi dell'archivio di definizione della piattaforma per eseguire il bootstrap della piattaforma personalizzata. Gli unici elementi che devi configurare negli esempi prima di poterli utilizzare sono un'AMI sorgente e una regione.

**Nota**  
Non utilizzare una piattaforma personalizzata di esempio non modificata in produzione. Gli esempi hanno lo scopo di mostrare alcune delle funzionalità disponibili per una piattaforma personalizzata, tuttavia non sono stati consolidati per l'uso in produzione.

[NodePlatform\_Ubuntu.zip](https://github.com/awslabs/eb-custom-platforms-samples/releases/download/v1.0.4/NodePlatform_Ubuntu.zip)  
Questa piattaforma personalizzata si basa su **Ubuntu 16.04** e supporta **Node.js 4.4.4**. Utilizziamo questa piattaforma personalizzata per gli esempi in questa sezione.

[NodePlatform\_RHEL.zip](https://github.com/awslabs/eb-custom-platforms-samples/releases/download/v1.0.4/NodePlatform_RHEL.zip)  
Questa piattaforma personalizzata si basa su **RHEL 7.2** e supporta **Node.js 4.4.4**.

[NodePlatformAmazonLinux\_.zip](https://github.com/awslabs/eb-custom-platforms-samples/releases/download/v1.0.4/NodePlatform_AmazonLinux.zip)  
Questa piattaforma personalizzata si basa su **Amazon Linux 2016.09.1** e supporta **Node.js 4.4.4**.

[TomcatPlatform\_Ubuntu.zip](https://github.com/awslabs/eb-custom-platforms-samples/releases/download/v1.0.4/TomcatPlatform_Ubuntu.zip)  
Questa piattaforma personalizzata si basa su **Ubuntu 16.04** e supporta **Tomcat 7/Java 8**.

[CustomPlatformNodeSampleApp\_.zip](https://github.com/awslabs/eb-custom-platforms-samples/releases/download/v1.0.4/CustomPlatform_NodeSampleApp.zip)  
Esempio Node.js che usa **express** ed **ejs** per visualizzare una pagina Web statica.

[CustomPlatform\_ .zip TomcatSampleApp](https://github.com/awslabs/eb-custom-platforms-samples/releases/download/v1.0.4/CustomPlatform_TomcatSampleApp.zip)  
Esempio Tomcat che visualizza una pagina Web statica al momento della distribuzione.

Scarica l'archivio di definizione della piattaforma di esempio: `NodePlatform_Ubuntu.zip`. Questo file contiene un file di definizione della piattaforma, un modello Packer, gli script eseguiti da Packer durante la creazione di immagini e gli script e i file di configurazione che Packer copia nell'istanza del generatore durante la creazione della piattaforma.

**Example NodePlatform\_Ubuntu.zip**  

```
|-- builder                 Contains files used by Packer to create the custom platform
|-- custom_platform.json    Packer template
|-- platform.yaml           Platform definition file
|-- ReadMe.txt              Briefly describes the sample
```

Il file di definizione della piattaforma `platform.yaml` indica a Elastic Beanstalk il nome del modello Packer `custom_platform.json`.

```
version: "1.0"

provisioner:
  type: packer
  template: custom_platform.json
  flavor: ubuntu1604
```

Il modello Packer indica a Packer come creare il file AMIs per la piattaforma, utilizzando un'[AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) Ubuntu come base per l'immagine della piattaforma per i tipi di istanze HVM. La sezione `provisioners` indica a Packer di copiare nell'istanza tutti i file della cartella `builder` all'interno dell'archivio e di eseguire lo script `builder.sh` sull'istanza. Una volta completati gli script, Packer crea un'immagine dall'istanza modificata.

Elastic Beanstalk crea tre variabili di ambiente che possono essere utilizzate per etichettare in Packer: AMIs 

AWS\_EB\_PLATFORM\_ARN  
L'ARN della piattaforma personalizzata.

AWS\_EB\_NOME\_PIATTAFORMA  
Il nome della piattaforma personalizzata.

AWS\_EB\_VERSIONE\_PIATTAFORMA  
La versione della piattaforma personalizzata.

Il file `custom_platform.json` di esempio utilizza queste variabili per definire i seguenti valori utilizzati negli script:
+ `platform_name`, impostato da `platform.yaml`
+ `platform_version`, impostato da `platform.yaml`
+ `platform_arn`, impostato dallo script di compilazione principale, `builder.sh`, mostrato alla fine del file `custom_platform.json` di esempio.

Il file `custom_platform.json` contiene due proprietà di cui è necessario fornire i valori, ovvero `source_ami` e `region`. Per i dettagli sulla scelta dei valori AMI e Region corretti, consulta [Aggiornamento del modello Packer](https://github.com/aws-samples/eb-custom-platforms-samples#updating-packer-template) nel *eb-custom-platforms-samples* GitHub repository.

**Example custom\_platform.json**  

```
{
  "variables": {
    "platform_name": "{{env `AWS_EB_PLATFORM_NAME`}}",
    "platform_version": "{{env `AWS_EB_PLATFORM_VERSION`}}",
    "platform_arn": "{{env `AWS_EB_PLATFORM_ARN`}}"
  },
  "builders": [
    {
      ...
      "region": "",
      "source_ami": "",
      ...
    }
  ],
  "provisioners": [
    {...},
    {
      "type": "shell",
      "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} sudo {{ .Path }}",
      "scripts": [
        "builder/builder.sh"
      ]
    }
  ]
}
```

Gli script e altri file inclusi nell'archivio di definizione della piattaforma possono variare notevolmente a seconda delle modifiche che desideri apportare all'istanza. La piattaforma di esempio include i seguenti script:
+ `00-sync-apt.sh`: impostato come commento `apt -y update`. Abbiamo commentato il comando perché richiede l'intervento dell'utente, che interrompe l'aggiornamento automatico del pacchetto. Questo potrebbe essere un problema di Ubuntu. Tuttavia, l'esecuzione di `apt -y update` è ancora consigliata come best practice. Per questo motivo, abbiamo lasciato il comando nello script di esempio a scopo di riferimento.
+ `01-install-nginx.sh`: installa nginx.
+ `02-setup-platform.sh`: installa `wget`, `tree` e `git`. Copia hook e [configurazioni della registrazione](using-features.logging.md) nell'istanza e crea le seguenti directory:
  + `/etc/SampleNodePlatform`: la posizione in cui il file di configurazione del container viene caricato durante la distribuzione.
  + `/opt/elasticbeanstalk/deploy/appsource/`: la posizione in cui lo script `00-unzip.sh` carica il codice sorgente dell'applicazione durante la distribuzione. Per informazioni su questo script, consultare la sezione [Strumenti di script di piattaforma per i tuoi ambienti Elastic Beanstalk](custom-platforms-scripts.md).
  + `/var/app/staging/`: la posizione in cui il codice sorgente dell'applicazione viene elaborato durante la distribuzione.
  + `/var/app/current/`: la posizione in cui il codice sorgente dell'applicazione viene eseguito dopo l'elaborazione.
  + `/var/log/nginx/healthd/`: la posizione in cui l'[agente di stato migliorato](health-enhanced.md#health-enhanced-agent) scrive i log.
  + `/var/nodejs`: la posizione in cui i file Node.js vengono caricati durante la distribuzione.

Utilizza l'EB CLI per creare la tua prima piattaforma personalizzata con l'archivio di definizione della piattaforma di esempio.

**Per creare una piattaforma personalizzata**

1. [Installa l'interfaccia a riga di comando EB](eb-cli3.md#eb-cli3-install).

1. Crea una directory in cui estrarre la piattaforma personalizzata di esempio.

   ```
   ~$ mkdir ~/custom-platform
   ```

1. Estrai `NodePlatform_Ubuntu.zip` nella directory e successivamente inseriscilo nella directory estratta.

   ```
   ~$ cd ~/custom-platform
   ~/custom-platform$ unzip ~/NodePlatform_Ubuntu.zip
   ~/custom-platform$ cd NodePlatform_Ubuntu
   ```

1. Modifica il file `custom_platform.json` e fornisci i valori per le proprietà `source_ami` e `region`. Per ulteriori dettagli, consulta la sezione relativa all'[aggiornamento del modello Packer](https://github.com/aws-samples/eb-custom-platforms-samples#updating-packer-template).

1. Esegui [**eb platform init**](eb3-platform.md#eb3-platform-init) e segui le istruzioni per l'inizializzazione di un archivio della piattaforma.

   Puoi abbreviare **eb platform** in **ebp**.
**Nota**  
Windows PowerShell lo utilizza **ebp** come alias di comando. Se stai eseguendo la CLI EB in Windows PowerShell, usa la forma lunga di questo comando:. **eb platform**

   ```
   ~/custom-platform$ eb platform init
   ```

   Questo comando, inoltre, crea la directory `.elasticbeanstalk` nella directory corrente e aggiunge il file di configurazione `config.yml` alla directory. Non modificare o eliminare questo file perché Elastic Beanstalk lo utilizza durante la creazione della piattaforma personalizzata.

   Per impostazione predefinita, **eb platform init** usa il nome della cartella corrente come nome della piattaforma personalizzata, ovvero `custom-platform` in questo esempio.

1. Esegui [**eb platform create**](eb3-platform.md#eb3-platform-create) per avviare un ambiente Packer e ottenere l'ARN della piattaforma personalizzata. Avrai bisogno di questo valore in un secondo momento, durante la creazione di un ambiente dalla piattaforma personalizzata.

   ```
   ~/custom-platform$ eb platform create
   ...
   ```

   Per impostazione predefinita, Elastic Beanstalk crea il profilo di istanza `aws-elasticbeanstalk-custom-platform-ec2-role` per le piattaforme personalizzate. Se, invece, desideri utilizzare un profilo dell'istanza esistente, aggiungi l'opzione `-ip {{INSTANCE_PROFILE}}` al comando [**eb platform create**](eb3-platform.md#eb3-platform-create).
**Nota**  
Packer non è in grado di creare una piattaforma personalizzata se utilizzi il profilo dell'istanza predefinito Elastic Beanstalk `aws-elasticbeanstalk-ec2-role`.

   L'interfaccia a riga di comando EB mostra l'evento generato dall'ambiente Packer finché non viene completata la generazione. Puoi uscire dalla visualizzazione dell'evento premendo **Ctrl\+C**. 

1. Puoi controllare i log alla ricerca di errori utilizzando il comando [**eb platform logs**](eb3-platform.md#eb3-platform-logs).

   ```
   ~/custom-platform$ eb platform logs
   ...
   ```

1. Puoi controllare il processo in un secondo momento con [**eb platform events**](eb3-platform.md#eb3-platform-events).

   ```
   ~/custom-platform$ eb platform events
   ...
   ```

1. Controlla lo stato della tua piattaforma con [**eb platform status**](eb3-platform.md#eb3-platform-status).

   ```
   ~/custom-platform$ eb platform status
   ...
   ```

Al termine dell'operazione avrai una piattaforma che potrai utilizzare per avviare un ambiente Elastic Beanstalk.

Puoi utilizzare la piattaforma personalizzata durante la creazione di un ambiente dalla console. Per informazioni, consulta [Procedura guidata per la creazione del nuovo ambiente](environments-create-wizard.md).

**Per avviare un ambiente sulla tua piattaforma personalizzata**

1. Crea una directory per l'applicazione.

   ```
   ~$ mkdir custom-platform-app
   ~$ cd ~/custom-platform-app
   ```

1. Inizializza un archivio dell'applicazione.

   ```
   ~/custom-platform-app$ eb init
   ...
   ```

1. Scarica l'applicazione di esempio [NodeSampleApp.zip.](samples/NodeSampleApp.zip)

1. Estrai l'applicazione di esempio.

   ```
   ~/custom-platform-app$ unzip {{~/}}NodeSampleApp.zip
   ```

1. Esegui**eb create -p {{CUSTOM-PLATFORM-ARN}}**, {{CUSTOM-PLATFORM-ARN}} dov'è l'ARN restituito da un **eb platform create** comando, per avviare un ambiente che esegue la tua piattaforma personalizzata.

   ```
   ~/custom-platform-app$ eb create -p {{CUSTOM-PLATFORM-ARN}}
   ...
   ```

### Contenuti dell'archivio di definizione della piattaforma
<a name="custom-platforms-pda"></a>

Un archivio di definizione della piattaforma è l'equivalente della piattaforma di un [bundle di origine dell'applicazione](applications-sourcebundle.md). L'archivio di definizione della piattaforma è un file ZIP che contiene un file di definizione della piattaforma, un modello Packer e gli script e i file utilizzati dal modello Packer per creare la piattaforma.

**Nota**  
Se utilizzata per creare una piattaforma personalizzata, l'interfaccia a riga di comando EB crea un archivio di definizione della piattaforma dal file e dalle cartelle nell'archivio della piattaforma, perciò non devi necessariamente creare l'archivio manualmente.

Il file di definizione della piattaforma è un file in formato YAML che deve essere denominato `platform.yaml` e trovarsi nella directory root dell'archivio di definizione della piattaforma. Consultare [Creazione di una piattaforma personalizzata](#custom-platform-creating) per un elenco delle chiavi obbligatorie e facoltative supportate in un file di definizione della piattaforma.

Non devi denominare il modello Packer in un modo specifico, ma il nome del file deve corrispondere al modello dello strumento di provisioning specificato nel file di definizione della piattaforma. Per istruzioni su come creare modelli Packer, vedi la [documentazione di Packer](https://www.packer.io/docs/templates/introduction.html) ufficiale.

Gli altri file nell'archivio di definizione della piattaforma sono script e file utilizzati dal modello per personalizzare l'istanza prima di creare un'AMI.

### Hook della piattaforma personalizzata
<a name="custom-platform-hooks"></a>

Elastic Beanstalk usa una struttura di directory standardizzata per gli hook su piattaforme personalizzate. Si tratta di script che vengono eseguiti durante gli eventi del ciclo di vita e in risposta alle operazioni di gestione: quando le istanze nell'ambiente vengono avviate oppure quando un utente avvia una distribuzione o usa la funzionalità di riavvio del server applicazioni.

Inserisci gli script che desideri vengano attivati dagli hook in una delle sottocartelle della cartella `/opt/elasticbeanstalk/hooks/`.

**avvertimento**  
*L'utilizzo di hook della piattaforma personalizzati su piattaforme gestite non è supportato.* Gli hook della piattaforma personalizzati sono progettati per piattaforme personalizzate. Sulle piattaforme gestite Elastic Beanstalk potrebbero funzionare in modo diverso o presentare alcuni problemi e il comportamento potrebbe variare tra le piattaforme. Sulle piattaforme AMI Amazon Linux (precedenti ad Amazon Linux 2) potrebbero in alcuni casi ancora funzionare in modi utile, usali con cautela.  
Gli hook di piattaforma personalizzati sono una caratteristica legacy delle piattaforme AMI Amazon Linux. Sulle piattaforme Amazon Linux 2, gli hook di piattaforma personalizzati nella cartella `/opt/elasticbeanstalk/hooks/` sono stati completamente interrotti. Elastic Beanstalk non li legge né li esegue. Le piattaforme Amazon Linux 2 supportano un nuovo tipo di hook di piattaforma, specificamente progettato per estendere le piattaforme gestite Elastic Beanstalk. Puoi aggiungere script e programmi personalizzati direttamente a una directory di hook nel bundle di origine dell'applicazione. Elastic Beanstalk li esegue durante varie fasi di provisioning delle istanze. Per ulteriori informazioni, espandere la sezione *Hook della piattaforma* in [Estensione delle piattaforme Elastic Beanstalk Linux](platforms-linux-extend.md).

Gli hook sono organizzati nelle seguenti cartelle:
+ `appdeploy`: gli script vengono eseguiti durante la distribuzione di un'applicazione. Elastic Beanstalk esegue la distribuzione di un'applicazione durante il lancio di nuove istanze e quando un client avvia la distribuzione di una nuova versione.
+ `configdeploy`: gli script vengono eseguiti quando un client esegue un aggiornamento della configurazione che influisce sulla configurazione del software sull'istanza, ad esempio, impostando le proprietà dell'ambiente o abilitando la rotazione dei log su Amazon S3.
+ `restartappserver`: gli script vengono eseguiti quando un client esegue un'operazione di riavvio del server di applicazione.
+ `preinit`: gli script vengono eseguiti durante il processo di bootstrap dell'istanza.
+ `postinit`: gli script vengono eseguiti dopo il processo di bootstrap dell'istanza.

Le cartelle `appdeploy`, `configdeploy` e `restartappserver` contengono le sottocartelle `pre`, `enact` e `post`. In ciascuna fase di un'operazione, tutti gli script nella cartella `pre` vengono eseguiti in ordine alfabetico, quindi vengono eseguiti gli script nella cartella `enact` e infine quelli nella cartella `post`.

Quando viene lanciata un'istanza, Elastic Beanstalk esegue `preinit`, `appdeploy` e `postinit` in questo ordine. Su distribuzioni successive nelle istanze in esecuzione, Elastic Beanstalk esegue gli hook `appdeploy`. Gli hook `configdeploy` vengono eseguiti quando un utente aggiorna le impostazioni di configurazione del software sull'istanza. Gli hook `restartappserver` vengono eseguiti solo quando l'utente inizia il riavvio del server dell'applicazione.

Quando riscontrano errori, i tuoi script possono uscire con uno stato diverso da zero e scrivere in `stderr` per far fallire l'operazione. Il messaggio che scrivi in `stderr` apparirà nell'evento generato quando l'operazione ha esito negativo. Elastic Beanstalk è inoltre in grado di acquisire queste informazioni nel file di log `/var/log/eb-activity.log`. Se non desideri che l'operazione abbia esito negativo, restituisci 0. I messaggi che scrivi in `stderr` o `stdout` vengono visualizzati nei [log di distribuzione](using-features.logging.md), ma non nel flusso di eventi, a meno che l'operazione non abbia esito negativo.

### Pulizia delle istanze Packer
<a name="custom-platforms-packercleanup"></a>

In determinate circostanze, ad esempio nel caso di interruzione del processo del generatore Packer prima della conclusione, le istanze avviate da Packer non vengono eliminate. Queste istanze non fanno parte dell'ambiente Elastic Beanstalk e possono essere visualizzate e terminate solo utilizzando il servizio Amazon. EC2 

**Per eliminare manualmente queste istanze**

1. Apri la [ EC2 console Amazon](https://console.aws.amazon.com/ec2/).

1. Assicurati di trovarti nella stessa AWS regione in cui hai creato l'istanza con Packer.

1. In **Risorse**, scegli {{N }} **Running Instances**, dove {{N}} indica il numero di istanze in esecuzione.

1. Fare clic nella casella di testo di query.

1. Selezionare il tag **Name (Nome)**.

1. Immettere **packer**.

   L'aspetto della query deve essere simile a: **tag:Name: packer**

1. Selezionare le istanze che corrispondono alla query.

1. Se **Instance State (Stato istanza)** è **running (In esecuzione)**, scegliere **Actions (Operazioni)**, **Instance State (Stato istanza)**, **Stop (Arresta)**, quindi **Actions (Operazioni)**, **Instance State (Stato istanza)**, **Terminate (Termina)**.

### Formato del file Platform.yaml
<a name="platform-yaml-format"></a>

Il file `platform.yaml` presenta il formato seguente.

```
version: "{{version-number}}"

provisioner:
   type: {{provisioner-type}}
   template: {{provisioner-template}}
   flavor: {{provisioner-flavor}}
        
metadata:
   maintainer: {{metadata-maintainer}}
   description: {{metadata-description}}
   operating_system_name: {{metadata-operating_system_name}}
   operating_system_version: {{metadata-operating_system_version}}
   programming_language_name: {{metadata-programming_language_name}}
   programming_language_version: {{metadata-programming_language_version}}
   framework_name: {{metadata-framework_name}}
   framework_version: {{metadata-framework_version}}

option_definitions:
   - namespace: {{option-def-namespace}}
     option_name: {{option-def-option_name}}
     description: {{option-def-description}}
     default_value: {{option-def-default_value}}

option_settings:
   - namespace: "{{option-setting-namespace}}"
     option_name: "{{option-setting-option_name}}"
     value: "{{option-setting-value}}"
```

Sostituisci i segnaposto con i questi valori:

{{version-number}}  
Obbligatorio. La versione della definizione YAML. Deve essere **1.0**.

{{provisioner-type}}  
Obbligatorio. Il tipo di generatore utilizzato per creare la piattaforma personalizzata. Deve essere **packer**.

{{provisioner-template}}  
Obbligatorio. Il file JSON contenente le impostazioni per. {{provisioner-type}}

{{provisioner-flavor}}  
Opzionale. Il sistema operativo di base utilizzato per l'AMI. Una delle seguenti:     
amazon (predefinito)  
Amazon Linux. Se non è specificato, la versione più recente di Amazon Linux al momento della creazione della piattaforma.  
Amazon Linux 2 non è un sistema operativo supportato.  
ubuntu1604  
Ubuntu 16.04 LTS  
rhel7  
RHEL 7  
rhel6  
RHEL 6

{{metadata-maintainer}}  
Opzionale. Informazioni di contatto per la persona che possiede la piattaforma (100 caratteri).

{{metadata-description}}  
Opzionale. Descrizione della piattaforma (2.000 caratteri).

{{metadata-operating\_system\_name}}  
Opzionale. Nome del sistema operativo della piattaforma (50 caratteri). Questo valore è disponibile quando si filtra l'output per l'[ListPlatformVersions](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListPlatformVersions.html)API.

{{metadata-operating\_system\_version}}  
Opzionale. Versione del sistema operativo della piattaforma (20 caratteri).

{{metadata-programming\_language\_name}}  
Opzionale. Linguaggio di programmazione supportato dalla piattaforma (50 caratteri)

{{metadata-programming\_language\_version}}  
Opzionale. Versione del linguaggio della piattaforma (20 caratteri).

{{metadata-framework\_name}}  
Opzionale. Nome del framework Web utilizzato dalla piattaforma (50 caratteri).

{{metadata-framework\_version}}  
Opzionale. Versione del framework Web della piattaforma (20 caratteri).

{{option-def-namespace}}  
Opzionale. Uno spazio dei nomi in `aws:elasticbeanstalk:container:custom` (100 caratteri)

{{option-def-option\_name}}  
Opzionale. Il nome dell'opzione (100 caratteri). È possibile definire fino a un massimo di 50 opzioni di configurazione personalizzate che la piattaforma fornisce agli utenti.

{{option-def-description}}  
Opzionale. Descrizione dell'opzione (1.024 caratteri).

{{option-def-default\_value}}  
Opzionale. Il valore predefinito utilizzato quando l'utente non ne specifica uno.  
L'esempio seguente crea l'opzione **NPM\_START**.  

```
options_definitions:
 -  namespace: "aws:elasticbeanstalk:container:custom:application"
    option_name: "NPM_START"
    description: "Default application startup command"
    default_value: "node application.js"
```

{{option-setting-namespace}}  
Opzionale. Spazio dei nomi dell'opzione.

{{option-setting-option\_name}}  
Opzionale. Nome dell'opzione. Puoi specificare fino a 50 [opzioni fornite da Elastic Beanstalk](command-options-general.md).

{{option-setting-value}}  
Opzionale. Il valore utilizzato quando l'utente non ne specifica uno.  
L'esempio seguente crea l'opzione **TEST**.  

```
option_settings:
 - namespace: "aws:elasticbeanstalk:application:environment"
   option_name: "TEST"
   value: "This is a test"
```

### Tagging delle versioni della piattaforma personalizzate
<a name="custom-platforms-tagging"></a>

Puoi applicare tag alle versioni AWS Elastic Beanstalk personalizzate della tua piattaforma. I tag sono coppie chiave-valore associate AWS alle risorse. Per informazioni sul tagging delle risorse, sui casi d'uso, sui vincoli delle chiavi e dei valori di tag e sui tipi di risorse supportati di Elastic Beanstalk, consulta [Tagging delle risorse dell'applicazione Elastic Beanstalk](applications-tagging-resources.md).

Puoi specificare i tag al momento della creazione di una versione della piattaforma personalizzata. In una versione della piattaforma personalizzata esistente, puoi aggiungere o rimuovere i tag e aggiornare i valori dei tag esistenti. Puoi aggiungere fino a 50 tag per ogni versione della piattaforma personalizzata.

#### Aggiunta di tag durante la creazione della versione della piattaforma personalizzata
<a name="custom-platforms-tagging.create"></a>

Se utilizzi la CLI EB per creare una versione della piattaforma personalizzata, utilizza l'opzione `--tags` con **[eb platform create](eb3-platform.md#eb3-platform-create)** per aggiungere i tag.

```
~/workspace/my-app$ eb platform create --tags {{mytag1}}={{value1}},{{mytag2}}={{value2}}
```

Con AWS CLI o con altri client basati su API, aggiungi tag utilizzando il `--tags` parametro sul comando. **[create-platform-version](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-platform-version.html)**

```
$ aws elasticbeanstalk create-platform-version \
      --tags Key={{mytag1}},Value={{value1}} Key={{mytag2}},Value={{value2}} \
      --platform-name {{my-platform}} --platform-version {{1.0.0}} --platform-definition-bundle S3Bucket={{amzn-s3-demo-bucket}},S3Key={{sample.zip}}
```

#### Gestione dei tag di una versione della piattaforma personalizzata esistente
<a name="custom-platforms-tagging.manage"></a>

Puoi aggiungere, aggiornare ed eliminare tag in una versione della piattaforma personalizzata Elastic Beanstalk esistente.

Se utilizzi la CLI EB per aggiornare la versione della piattaforma personalizzata, utilizza **[eb tags](eb3-tags.md)** per aggiungere, aggiornare, eliminare o elencare i tag.

Ad esempio, il comando seguente elenca i tag in una versione della piattaforma personalizzata.

```
~/workspace/my-app$ eb tags --list --resource "arn:aws:elasticbeanstalk:us-east-2:{{my-account-id}}:platform/{{my-platform}}/{{1.0.0}}"
```

Il comando seguente aggiorna il tag `mytag1` ed elimina il tag `mytag2`.

```
~/workspace/my-app$ eb tags --update {{mytag1}}={{newvalue}} --delete {{mytag2}} \
      --resource "arn:aws:elasticbeanstalk:us-east-2:{{my-account-id}}:platform/{{my-platform}}/{{1.0.0}}"
```

Per un elenco completo delle opzioni e per altri esempi, consulta `eb tags`.

Con lo AWS CLI o altri client basati su API, utilizzate il **[list-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/list-tags-for-resource.html)** comando per elencare i tag di una versione personalizzata della piattaforma.

```
$ aws elasticbeanstalk list-tags-for-resource --resource-arn "arn:aws:elasticbeanstalk:us-east-2:{{my-account-id}}:platform/{{my-platform}}/{{1.0.0}}"
```

Utilizza il comando **[update-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-tags-for-resource.html)** per aggiungere, aggiornare o eliminare i tag in una versione della piattaforma personalizzata.

```
$ aws elasticbeanstalk update-tags-for-resource \
      --tags-to-add Key={{mytag1}},Value={{newvalue}} --tags-to-remove {{mytag2}} \
      --resource-arn "arn:aws:elasticbeanstalk:us-east-2:{{my-account-id}}:platform/{{my-platform}}/{{1.0.0}}"
```

Specifica i tag da aggiungere e i tag da aggiornare nel parametro `--tags-to-add` di **update-tags-for-resource**. È stato aggiunto un tag non esistente e il valore di un tag esistente è stato aggiornato.

**Nota**  
Per utilizzare alcuni AWS CLI comandi e CLI di EB con una versione della piattaforma personalizzata Elastic Beanstalk, è necessario l'ARN della versione personalizzata della piattaforma. È possibile recuperare l'ARN utilizzando il seguente comando.  

```
$ aws elasticbeanstalk list-platform-versions
```
Utilizza l'opzione `--filters` per filtrare l'output per il nome della piattaforma personalizzata.