

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

# Configurazione degli ambienti Elastic Beanstalk (avanzata)
<a name="beanstalk-environment-configuration-advanced"></a>

Quando crei un AWS Elastic Beanstalk ambiente, Elastic Beanstalk effettua il provisioning e configura tutte le AWS risorse necessarie per eseguire e supportare l'applicazione. Oltre a configurare i metadati e il comportamento di aggiornamento dell'ambiente, puoi personalizzare queste risorse specificando valori per le [opzioni di configurazione](command-options.md). Ad esempio, potresti voler aggiungere una coda Amazon SQS e un allarme sulla profondità della coda oppure potresti voler aggiungere un cluster Amazon. ElastiCache 

La maggior parte delle opzioni di configurazione presenta valori predefiniti che vengono applicati automaticamente da Elastic Beanstalk. Puoi sostituire queste impostazioni predefinite con file di configurazione, configurazioni salvate, opzioni della riga di comando o chiamando direttamente l'API Elastic Beanstalk. La console Elastic Beanstalk e la CLI EB applicano i valori consigliati per alcune opzioni.

Includendo un file di configurazione nel bundle di origine, puoi personalizzare agevolmente il tuo ambiente in contemporanea con la distribuzione della versione dell'applicazione. Quando si personalizza il software sulla propria istanza, è più vantaggioso utilizzare un file di configurazione piuttosto che creare un'AMI personalizzata perché non è necessario mantenere un set di. AMIs

Quando distribuisci le applicazioni puoi personalizzare e configurare il software da cui dipende l'applicazione. Questi file potrebbero essere dipendenze richieste dall'applicazione (ad esempio, pacchetti aggiuntivi dal repository yum) oppure file di configurazione (ad esempio, un file che sostituisce httpd.conf e annulla specifici valori predefiniti da AWS Elastic Beanstalk).

**Topics**
+ [Opzioni di configurazione](command-options.md)
+ [Personalizzazione avanzata dell'ambiente con i file di configurazione (`.ebextensions`)](ebextensions.md)
+ [Utilizzo delle configurazioni salvate di Elastic Beanstalk](environment-configuration-savedconfig.md)
+ [Manifest di ambiente (`env.yaml`)](environment-cfg-manifest.md)
+ [Utilizzo di un'immagine Amazon Machine Image (AMI) personalizzata nell'ambiente Elastic Beanstalk](using-features.customenv.md)
+ [Fornire i file statici](environment-cfg-staticfiles.md)
+ [Configurazione del protocollo HTTPS per l'ambiente Elastic Beanstalk](configuring-https.md)

# Opzioni di configurazione
<a name="command-options"></a>

Elastic Beanstalk definisce un numero elevato di opzioni di configurazione che puoi utilizzare per configurare il comportamento dell'ambiente e le risorse che contiene. Le opzioni di configurazione sono organizzate in spazi dei nomi, ad esempio `aws:autoscaling:asg`, che definiscono le opzioni per un gruppo Auto Scaling dell'ambiente.

La console Elastic Beanstalk e la CLI EB impostano le opzioni di configurazione al momento della creazione di un ambiente, incluse le opzioni che imposti in modo esplicito e i [valori consigliati](#configuration-options-recommendedvalues) definiti dal client. Puoi anche impostare le opzioni di configurazione in configurazioni salvate e nei file di configurazione. Se la stessa opzione è impostata in più posizioni, il valore utilizzato viene stabilito in base all'[ordine di precedenza](#configuration-options-precedence).

Le impostazioni delle opzioni di configurazione possono essere in formato di testo e salvate prima della creazione dell'ambiente, applicate durante la creazione dell'ambiente utilizzando qualsiasi client supportato e aggiunte, modificate o rimosse dopo la creazione dell'ambiente. Per un elenco dettagliato di tutti i metodi disponibili per l'utilizzo delle opzioni di configurazione in ciascuna di queste tre fasi, consulta i seguenti argomenti:
+ [Impostazione delle opzioni di configurazione prima della creazione di un ambiente](environment-configuration-methods-before.md)
+ [Impostazione delle opzioni di configurazione durante la creazione di un ambiente](environment-configuration-methods-during.md)
+ [Impostazione delle opzioni di configurazione dopo la creazione di un ambiente](environment-configuration-methods-after.md)

Per un elenco completo delle opzioni e dei namespace, inclusi i valori supportati e quelli predefiniti, vedi [Opzioni generali per tutti gli ambienti](command-options-general.md) e [Opzioni specifiche della piattaforma](command-options-specific.md).

## Priorità
<a name="configuration-options-precedence"></a>

Durante la creazione dell'ambiente, le opzioni di configurazione vengono applicate da più origini con le seguenti priorità, dalla più alta alla più bassa:
+ **Impostazioni applicate direttamente all'ambiente**: impostazioni specificate durante un'operazione di creazione o aggiornamento dell'ambiente sull'API Elastic Beanstalk da qualsiasi client, inclusa la console Elastic Beanstalk, EB CLI e. AWS CLI SDKs La CLI EB e la console Elastic Beanstalk applicano anche [valori consigliati](#configuration-options-recommendedvalues) per alcune opzioni a questo livello, a meno che non siano sostituite.
+ **Configurazioni salvate**: le impostazioni per le opzioni non applicate direttamente all'ambiente vengono caricate da una configurazione salvata, se specificato.
+ **File di configurazione (.ebextensions)**: le impostazioni per le opzioni non applicate direttamente all'ambiente e non specificate in una configurazione salvata vengono caricate dai file di configurazione nella cartella `.ebextensions` alla radice del bundle di origine dell'applicazione.

  I file di configurazione vengono eseguiti in ordine alfabetico. Ad esempio, `.ebextensions/01run.config` viene eseguito prima di `.ebextensions/02do.config`.
+ **Valori predefiniti**: se un'opzione di configurazione dispone di un valore predefinito, viene applicato solo quando l'opzione non è impostata su nessuno dei suddetti livelli.

Se la stessa opzione di configurazione è definita in più di un percorso, viene applicata l'impostazione con la priorità massima. Quando un'impostazione è applicata da una configurazione salvata o le impostazioni vengono applicate direttamente all'ambiente, l'impostazione viene memorizzata come parte della configurazione dell'ambiente. Queste impostazioni possono essere annullate [con la AWS CLI](environment-configuration-methods-after.md#configuration-options-remove-awscli) o [con la CLI EB](environment-configuration-methods-after.md#configuration-options-remove-ebcli).

Le impostazioni nei file di configurazione non vengono applicate direttamente all'ambiente e non possono essere rimosse senza modificare i file di configurazione e distribuire una nuova versione dell'applicazione. Se un'impostazione applicata con uno degli altri metodi viene rimossa, la stessa impostazione sarà caricata dai file di configurazione nel bundle di origine.

Ad esempio, è possibile impostare il numero minimo di istanze nell'ambiente su 5 al momento della creazione dell'ambiente, utilizzando la console Elastic Beanstalk, un'opzione della riga di comando o una configurazione salvata. Il bundle di origine per l'applicazione include anche un file di configurazione che consente di impostare il numero minimo di istanze su 2.

Quando si crea l'ambiente, Elastic Beanstalk imposta l'opzione `MinSize` nello spazio dei nomi `aws:autoscaling:asg` su 5. Se quindi rimuovi l'opzione dalla configurazione dell'ambiente, viene caricato il valore del file di configurazione e il numero minimo di istanze è impostato su 2. Se elimini il file di configurazione dal bundle di origine e ridistribuisci, Elastic Beanstalk utilizza l'impostazione predefinita di 1.

## Valori consigliati
<a name="configuration-options-recommendedvalues"></a>

L'interfaccia a riga di comando di Elastic Beanstalk (CLI EB) e la console Elastic Beanstalk forniscono i valori consigliati per alcune opzioni di configurazione. Questi valori possono essere diversi dai valori predefiniti e vengono impostati a livello di API al momento della creazione dell'ambiente. I valori consigliati permettono a Elastic Beanstalk di migliorare la configurazione predefinita dell'ambiente senza applicare modifiche non compatibili con la versione precedente all'API.

Ad esempio, sia l'EB CLI che la console Elastic Beanstalk impostano l'opzione di configurazione EC2 per il tipo di istanza (nello spazio dei nomi). `InstanceType` `aws:autoscaling:launchconfiguration` Ogni client fornisce un modo diverso di ignorare l'impostazione predefinita. Nella console è possibile scegliere un altro tipo di istanza da un menu a discesa nella pagina **Configuration Details (Dettagli della configurazione)** della procedura guidata **Create New Environment (Crea nuovo ambiente)**. Con la CLI EB, puoi usare il parametro `--instance_type` per [**eb create**](eb3-create.md).

Poiché i valori consigliati vengono impostati a livello di API, questi sostituiranno i valori per le stesse opzioni che hai impostato nei file di configurazione o nelle configurazioni salvate. Vengono configurate le opzioni seguenti:

**Console Elastic Beanstalk**
+ Spazio dei nomi: `aws:autoscaling:launchconfiguration`

  Nomi opzioni: `IamInstanceProfile`, `EC2KeyName`, `InstanceType`
+ Spazio dei nomi: `aws:autoscaling:updatepolicy:rollingupdate`

  Nomi opzioni: `RollingUpdateType` e `RollingUpdateEnabled`
+ Spazio dei nomi: `aws:elasticbeanstalk:application`

  Nomi opzioni: `Application Healthcheck URL`
+ Spazio dei nomi: `aws:elasticbeanstalk:command`

  Nomi opzioni: `DeploymentPolicy`, `BatchSize` e `BatchSizeType`
+ Spazio dei nomi: `aws:elasticbeanstalk:environment`

  Nomi opzioni: `ServiceRole`
+ Spazio dei nomi: `aws:elasticbeanstalk:healthreporting:system`

  Nomi opzioni: `SystemType` e `HealthCheckSuccessThreshold`
+ Spazio dei nomi: `aws:elasticbeanstalk:sns:topics`

  Nomi opzioni: `Notification Endpoint`
+ Spazio dei nomi: `aws:elasticbeanstalk:sqsd`

  Nomi opzioni: `HttpConnections`
+ Spazio dei nomi: `aws:elb:loadbalancer`

  Nomi opzioni: `CrossZone`
+ Spazio dei nomi: `aws:elb:policies`

  Nomi opzioni: `ConnectionDrainingTimeout` e `ConnectionDrainingEnabled`

**CLI EB**
+ Spazio dei nomi: `aws:autoscaling:launchconfiguration`

  Nomi opzioni: `IamInstanceProfile`, `InstanceType`
+ Spazio dei nomi: `aws:autoscaling:updatepolicy:rollingupdate`

  Nomi opzioni: `RollingUpdateType` e `RollingUpdateEnabled`
+ Spazio dei nomi: `aws:elasticbeanstalk:command`

  Nomi opzioni: `BatchSize` e `BatchSizeType`
+ Spazio dei nomi: `aws:elasticbeanstalk:environment`

  Nomi opzioni: `ServiceRole`
+ Spazio dei nomi: `aws:elasticbeanstalk:healthreporting:system`

  Nomi opzioni: `SystemType`
+ Spazio dei nomi: `aws:elb:loadbalancer`

  Nomi opzioni: `CrossZone`
+ Spazio dei nomi: `aws:elb:policies`

  Nomi opzioni: `ConnectionDrainingEnabled`

# Impostazione delle opzioni di configurazione prima della creazione di un ambiente
<a name="environment-configuration-methods-before"></a>

AWS Elastic Beanstalk supporta un gran numero di [opzioni di configurazione](command-options.md) che consentono di modificare le impostazioni applicate alle risorse dell'ambiente. Molte di queste opzioni dispongono di valori predefiniti che possono essere sostituiti per personalizzare l'ambiente. Possono essere configurate altre opzioni per abilitare funzionalità aggiuntive.

Elastic Beanstalk supporta due metodi di salvataggio delle impostazioni delle opzioni di configurazione. I file di configurazione in formato JSON o YAML possono essere inclusi nel codice sorgente della tua applicazione in una directory denominata `.ebextensions` e distribuiti come parte del tuo bundle di origine dell'applicazione. È possibile creare e gestire i file di configurazione in locale.

Le configurazioni salvate sono modelli creati da un ambiente in esecuzione o da un file di opzioni JSON e memorizzati in Elastic Beanstalk. Le configurazioni salvate esistenti possono anche essere estese per creare una nuova configurazione.

**Nota**  
Le impostazioni definite nei file di configurazione e le configurazioni salvate hanno una priorità inferiore rispetto alle impostazioni configurate durante o dopo la creazione dell'ambiente, inclusi i valori consigliati applicati dalla console Elastic Beanstalk e dalla [CLI EB](eb-cli3.md). Per informazioni dettagliate, consulta [Priorità](command-options.md#configuration-options-precedence).

Le opzioni possono anche essere specificate in un documento in formato JSON e fornite direttamente a Elastic Beanstalk quando crei o aggiorni un ambiente con la CLI EB o AWS CLI. Le opzioni fornite direttamente a Elastic Beanstalk in questo modo sostituiscono tutti gli altri metodi.

Per un elenco completo delle opzioni disponibili, consulta [Opzioni di configurazione](command-options.md).

**Topics**
+ [File di configurazione (`.ebextensions`)](#configuration-options-before-ebextensions)
+ [Configurazioni salvate](#configuration-options-before-savedconfig)
+ [Documento JSON](#configuration-options-before-json)
+ [Configurazione CLI EB](#configuration-options-before-configyml)

## File di configurazione (`.ebextensions`)
<a name="configuration-options-before-ebextensions"></a>

Utilizza `.ebextensions` per configurare le opzioni necessarie per far funzionare l'applicazione, e fornisci valori predefiniti per altre opzioni che possono essere sostituite a un livello più elevato di [priorità](command-options.md#configuration-options-precedence). Le opzioni specificate in `.ebextensions` hanno il livello più basso di priorità e vengono sostituite dalle impostazioni in qualsiasi altro livello.

Per utilizzare i file di configurazione, crea una cartella chiamata `.ebextensions` al primo livello del codice sorgente del progetto. Aggiungi un file con l'estensione `.config` e specifica le opzioni nel modo seguente:

```
option_settings:
  - namespace:  namespace
    option_name:  option name
    value:  option value
  - namespace:  namespace
    option_name:  option name
    value:  option value
```

Ad esempio, il seguente file di configurazione imposta l'url di controllo dello stato dell'applicazione su `/health`:

`healthcheckurl.config`

```
option_settings:
  - namespace:  aws:elasticbeanstalk:application
    option_name:  Application Healthcheck URL
    value:  /health
```

In JSON:

```
{
 "option_settings" :
    [
      {
        "namespace" : "aws:elasticbeanstalk:application",
        "option_name" : "Application Healthcheck URL",
        "value" : "/health"
      }
    ]
}
```

In questo modo viene configurato il sistema di bilanciamento del carico di Elastic Load Balancing nell'ambiente Elastic Beanstalk per effettuare una richiesta HTTP `/health` al percorso di ciascuna istanza EC2 per determinare se è integro o meno.

**Nota**  
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

Includi la directory `.ebextensions` nel [bundle di origine dell'applicazione](applications-sourcebundle.md) e distribuiscila in un ambiente Elastic Beanstalk nuovo o esistente.

I file di configurazione supportano diverse sezioni, oltre a `option_settings` per la personalizzazione del software e dei file che vengono eseguiti sui server nel tuo ambiente. Per ulteriori informazioni, consultare [.Ebextensions](ebextensions.md).

## Configurazioni salvate
<a name="configuration-options-before-savedconfig"></a>

Crea una configurazione salvata per salvare le impostazioni applicate a un ambiente esistente durante o dopo la creazione dello stesso utilizzando la console Elastic Beanstalk, la CLI EB oppure l AWS CLI. Le configurazioni salvate appartengono a un'applicazione e possono essere applicate ad ambienti nuovi o esistenti per quell'applicazione.

**Topics**
+ [Console Elastic Beanstalk](#configuration-options-before-savedconfig-console)
+ [CLI EB](#configuration-options-before-savedconfig-ebcli)
+ [AWS CLI](#configuration-options-before-savedconfig-awscli)

### Console Elastic Beanstalk
<a name="configuration-options-before-savedconfig-console"></a>

**Per creare una configurazione salvata (console Elastic Beanstalk)**

1. Apri la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) e, **nell'elenco Regioni, seleziona la tua**. Regione AWS

1. Nel pannello di navigazione selezionare **Environments** (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

1. Scegli **Actions** (Operazioni), quindi **Save configuration** (Salva configurazione).

1. Utilizza la finestra di dialogo su schermo per completare l'operazione.

Le configurazioni salvate sono memorizzate nel bucket S3 di Elastic Beanstalk in una cartella che ha lo stesso nome dell'applicazione. Ad esempio, le configurazioni per un'applicazione denominata `my-app` nella regione us-west-2 per l'account numero 123456789012 sono disponibili in `s3://elasticbeanstalk-us-west-2-123456789012/resources/templates/my-app`.

### CLI EB
<a name="configuration-options-before-savedconfig-ebcli"></a>

La [CLI EB](eb-cli3.md) fornisce inoltre sottocomandi per l'interazione con le configurazioni salvate in [**eb config**](eb3-config.md):

**Per creare una configurazione salvata (CLI EB)**

1. Salva la configurazione attuale dell'ambiente collegato:

   ```
   ~/project$ eb config save --cfg my-app-v1
   ```

   La CLI EB salva la configurazione su `~/project/.elasticbeanstalk/saved_configs/my-app-v1.cfg.yml`

1. Modifica la configurazione salvata in locale, se necessario.

1. Carica la configurazione salvata in S3:

   ```
   ~/project$ eb config put my-app-v1
   ```

### AWS CLI
<a name="configuration-options-before-savedconfig-awscli"></a>

Creazione di una configurazione salvata da un ambiente di esecuzione con `aws elasticbeanstalk create-configuration-template`

**Per creare una configurazione salvata (AWS CLI)**

1. Individua l'ID ambiente dell'ambiente Elastic Beanstalk in uso con `describe-environments`:

   ```
   $ aws elasticbeanstalk describe-environments --environment-name my-env
   {
       "Environments": [
           {
               "ApplicationName": "my-env",
               "EnvironmentName": "my-env",
               "VersionLabel": "89df",
               "Status": "Ready",
               "Description": "Environment created from the EB CLI using \"eb create\"",
               "EnvironmentId": "e-vcghmm2zwk",
               "EndpointURL": "awseb-e-v-AWSEBLoa-1JUM8159RA11M-43V6ZI1194.us-west-2.elb.amazonaws.com",
               "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.2 running Multi-container Docker 1.7.1 (Generic)",
               "CNAME": "my-env-nfptuqaper.elasticbeanstalk.com",
               "Health": "Green",
               "AbortableOperationInProgress": false,
               "Tier": {
                   "Version": " ",
                   "Type": "Standard",
                   "Name": "WebServer"
               },
               "HealthStatus": "Ok",
               "DateUpdated": "2015-10-01T00:24:04.045Z",
               "DateCreated": "2015-09-30T23:27:55.768Z"
           }
       ]
   }
   ```

1. Salva la configurazione attuale dell'ambiente con `create-configuration-template`:

   ```
   $ aws elasticbeanstalk create-configuration-template --environment-id e-vcghmm2zwk --application-name my-app --template-name v1
   ```

Elastic Beanstalk salva la configurazione nel bucket di Elastic Beanstalk in Amazon S3.

## Documento JSON
<a name="configuration-options-before-json"></a>

Se utilizzi la AWS CLI per creare e aggiornare ambienti, puoi anche fornire opzioni di configurazione in formato JSON. Una libreria di file di configurazione in JSON è utile se la utilizzi AWS CLI per creare e gestire ambienti.

Ad esempio, il seguente documento JSON imposta l'url di controllo dello stato dell'applicazione su `/health`:

**\$1 /ebconfigs/healthcheckurl.json**

```
[
  {
    "Namespace": "aws:elasticbeanstalk:application",
    "OptionName": "Application Healthcheck URL",
    "Value": "/health"
  }
]
```

## Configurazione CLI EB
<a name="configuration-options-before-configyml"></a>

Oltre a supportare le configurazioni salvate e la configurazione diretta dell'ambiente con i comandi **eb config**, la CLI EB dispone di un file di configurazione con un'opzione denominata `default_ec2_keyname` che puoi utilizzare per specificare una coppia di chiavi Amazon EC2 per l'accesso SSH alle istanze nell'ambiente. La CLI EB si avvale di questa opzione per impostare l'opzione di configurazione `EC2KeyName` nel namespace `aws:autoscaling:launchconfiguration`. 

**\$1/ .yml workspace/my-app/.elasticbeanstalk/config**

```
branch-defaults:
  master:
    environment: my-env
  develop:
    environment: my-env-dev
deploy:
  artifact: ROOT.war
global:
  application_name: my-app
  default_ec2_keyname: my-keypair
  default_platform: Tomcat 8 Java 8
  default_region: us-west-2
  profile: null
  sc: git
```

# Impostazione delle opzioni di configurazione durante la creazione di un ambiente
<a name="environment-configuration-methods-during"></a>

Quando crei un AWS Elastic Beanstalk ambiente utilizzando la console Elastic Beanstalk, EB AWS CLI CLI, un SDK o l'API Elastic Beanstalk, puoi fornire valori per le opzioni di configurazione per personalizzare l'ambiente e le risorse che vengono lanciate al suo interno. AWS 

Per tutto ciò di diverso da una modifica di configurazione una tantum, è possibile [archiviare i file di configurazione](environment-configuration-methods-before.md) in locale, nel bundle di origine o in Amazon S3.

Questo argomento include le procedure per tutti i metodi di impostazione delle opzioni di configurazione durante la creazione dell'ambiente.

**Topics**
+ [Nella console Elastic Beanstalk](#configuration-options-during-console)
+ [Utilizzo della CLI EB](#configuration-options-during-ebcli)
+ [Usando il AWS CLI](#configuration-options-during-awscli)

## Nella console Elastic Beanstalk
<a name="configuration-options-during-console"></a>

Quando crei un ambiente Elastic Beanstalk nella console Elastic Beanstalk, è possibile fornire le opzioni di configurazione utilizzando i file di configurazione, le configurazioni salvate e i moduli nella procedura guidata **Create New Environment (Crea nuovo ambiente)**.

**Topics**
+ [Utilizzo dei file di configurazione (`.ebextensions`)](#configuration-options-during-console-ebextensions)
+ [Utilizzo di una configurazione salvata](#configuration-options-during-console-savedconfig)
+ [Utilizzo della procedura guidata per la creazione del nuovo ambiente](#configuration-options-during-console-wizard)

### Utilizzo dei file di configurazione (`.ebextensions`)
<a name="configuration-options-during-console-ebextensions"></a>

Includi i file `.config` nel [bundle di origine dell'applicazione](applications-sourcebundle.md) in una cartella chiamata `.ebextensions`.

Per informazioni dettagliate sui file di configurazione, consulta [.Ebextensions](ebextensions.md).

```
~/workspace/my-app-v1.zip
|-- .ebextensions
|   |-- environmentvariables.config
|   `-- healthcheckurl.config
|-- index.php
`-- styles.css
```

Carica normalmente il bundle sorgente su Elastic Beanstalk durante la [creazione dell'ambiente](using-features.environments.md).

La console Elastic Beanstalk applica [valori consigliati](command-options.md#configuration-options-recommendedvalues) per alcune opzioni di configurazione e campi dei moduli per le altre. Le impostazioni configurate dalla console Elastic Beanstalk vengono applicate direttamente all'ambiente e sovrascrivono le impostazioni nei file di configurazione.

### Utilizzo di una configurazione salvata
<a name="configuration-options-during-console-savedconfig"></a>

Quando crei un nuovo ambiente utilizzando la console Elastic Beanstalk, uno dei primi passaggi è scegliere una configurazione. La configurazione può essere una [**Predefined configuration (Configurazione predefinita)**](concepts.platforms.md), generalmente la versione più recente di una piattaforma, ad esempio **PHP** o **Tomcat** oppure una **Saved configuration (Configurazione salvata)**.

**Per applicare una configurazione salvata durante la creazione dell'ambiente (console Elastic Beanstalk)**

1. Apri la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) e, **nell'elenco Regioni, seleziona la tua**. Regione AWS

1. Nel riquadro di navigazione, scegliere **Applicazioni**, quindi selezionare il nome dell'applicazione dall'elenco.

1. Nel riquadro di spostamento individuare il nome dell'applicazione e scegliere **Saved configurations (Configurazioni salvate)**.

1. Selezionare la configurazione salvata che si desidera applicare, quindi scegliere **Launch environment (Avvia ambiente)**.

1. Procedi seguendo la procedura guidata per creare l'ambiente.

Le configurazioni salvate sono specifiche dell'applicazione. Consulta [Configurazioni salvate](environment-configuration-methods-before.md#configuration-options-before-savedconfig) per dettagli sulla creazione di configurazioni salvate.

### Utilizzo della procedura guidata per la creazione del nuovo ambiente
<a name="configuration-options-during-console-wizard"></a>

La maggior parte delle opzioni di configurazione standard sono riportate nella pagina **Configure more options (Configurazione di più opzioni)** della procedura guidata [Create New Environment (Crea un nuovo ambiente)](environments-create-wizard.md). Se crei un database Amazon RDS o configuri un VPC per l'ambiente in uso, le opzioni di configurazione aggiuntive sono disponibili per tali risorse.

**Per impostare le opzioni di configurazione durante la creazione dell'ambiente (console Elastic Beanstalk)**

1. Apri la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) e, **nell'elenco Regioni, seleziona la tua**. Regione AWS

1. Nel riquadro di navigazione, scegliere **Applications (Applicazioni)**.

1. Seleziona o [crea](applications.md) un'applicazione.

1. Selezionare **Actions (Operazioni)** e scegliere **Create environment (Crea ambiente)**.

1. Continua con la procedura guidata e scegli **Configure more options (Configura altre opzioni)**.

1. Scegliere una delle **configuration presets (impostazioni di configurazione predefinite)** e successivamente scegliere **Edit (Modifica)** in una o più categorie di configurazione per modificare un gruppo di opzioni di configurazione correlate.

1. Una volta selezionate le opzioni, scegli **Create environment (Crea ambiente)**.

Le opzioni impostate nella procedura guidata del nuovo ambiente sono impostate direttamente sull'ambiente e sovrascrivono le impostazioni delle opzioni nelle configurazioni salvate o nei file di configurazione (`.ebextensions`) che applichi. Dopo la creazione dell'ambiente, è possibile annullare le impostazioni utilizzando la [CLI EB](environment-configuration-methods-after.md#configuration-options-after-ebcli) o la [AWS CLI](environment-configuration-methods-after.md#configuration-options-after-awscli) per permettere la visualizzazione delle impostazioni nelle configurazioni salvate o nei file di configurazione.

Per ulteriori informazioni sulla procedura guidata per il nuovo ambiente, consultare [Procedura guidata per la creazione del nuovo ambiente](environments-create-wizard.md).

## Utilizzo della CLI EB
<a name="configuration-options-during-ebcli"></a>

**Topics**
+ [Utilizzo dei file di configurazione (`.ebextensions`)](#configuration-options-during-ebcli-ebextensions)
+ [Utilizzo delle configurazioni salvate](#configuration-options-during-ebcli-savedconfig)
+ [Utilizzo delle opzioni della riga di comando](#configuration-options-during-ebcli-params)

### Utilizzo dei file di configurazione (`.ebextensions`)
<a name="configuration-options-during-ebcli-ebextensions"></a>

Includi i file `.config` nella tua cartella di progetto in `.ebextensions` per distribuirli con il codice della tua applicazione.

Per informazioni dettagliate sui file di configurazione, consulta [.Ebextensions](ebextensions.md).

```
~/workspace/my-app/
|-- .ebextensions
|   |-- environmentvariables.config
|   `-- healthcheckurl.config
|-- .elasticbeanstalk
|   `-- config.yml
|-- index.php
`-- styles.css
```

Crea un ambiente e distribuisci il codice sorgente nello stesso con **eb create**.

```
~/workspace/my-app$ eb create my-env
```

### Utilizzo delle configurazioni salvate
<a name="configuration-options-during-ebcli-savedconfig"></a>

Per applicare una configurazione salvata al momento della creazione di un ambiente con [**eb create**](eb3-create.md), utilizza l'opzione `--cfg`.

```
~/workspace/my-app$ eb create --cfg savedconfig
```

Puoi archiviare la configurazione salvata nella cartella del progetto o nella posizione di storage Elastic Beanstalk in Amazon S3. Nell'esempio precedente, la CLI EB prima cerca un file di configurazione salvato denominato `savedconfig.cfg.yml` nella cartella `.elasticbeanstalk/saved_configs/`. Non includere le estensioni dei nomi dei file (`.cfg.yml`) quando applichi una configurazione salvata con `--cfg`.

```
~/workspace/my-app/
|-- .ebextensions
|   `-- healthcheckurl.config
|-- .elasticbeanstalk
|   |-- saved_configs
|   |   `-- savedconfig.cfg.yml
|   `-- config.yml
|-- index.php
`-- styles.css
```

Se la CLI EB non trova la configurazione localmente, viene eseguita la ricerca nella posizione di storage Elastic Beanstalk in Amazon S3. Per informazioni dettagliate sulla creazione, sulla modifica e sul caricamento delle configurazioni salvate, consulta [Configurazioni salvate](environment-configuration-methods-before.md#configuration-options-before-savedconfig).

### Utilizzo delle opzioni della riga di comando
<a name="configuration-options-during-ebcli-params"></a>

Il comando **eb create** della CLI EB presenta diverse [opzioni](eb3-create.md#eb3-createoptions) che è possibile utilizzare per impostare le opzioni di configurazione durante la creazione dell'ambiente. Queste opzioni possono essere utilizzate per aggiungere un database RDS all'ambiente, configurare un VPC o sostituire i [valori consigliati](command-options.md#configuration-options-recommendedvalues).

Ad esempio, la CLI EB utilizza il tipo di istanza `t2.micro` per impostazione predefinita. Per scegliere un tipo di istanza diverso, utilizza l'opzione `--instance_type`.

```
$ eb create my-env --instance_type t2.medium
```

Per creare un'istanza database Amazon RDS e collegarla all'ambiente, utilizza le opzioni `--database`.

```
$ eb create --database.engine postgres --database.username dbuser
```

Se ometti il nome dell'ambiente, la password del database o altri parametri necessari per creare l'ambiente, la CLI EB richiede di immetterli.

Vedi [eb create](eb3-create.md) per un elenco completo delle opzioni disponibili e degli esempi di utilizzo.

## Usando il AWS CLI
<a name="configuration-options-during-awscli"></a>

[Quando si utilizza il `create-environment` comando per creare un ambiente Elastic Beanstalk AWS CLI con AWS CLI , non viene applicato alcun valore consigliato.](command-options.md#configuration-options-recommendedvalues) Tutte le opzioni di configurazione sono definite nei file di configurazione del bundle di origine da te specificati. 

**Topics**
+ [Utilizzo dei file di configurazione (`.ebextensions`)](#configuration-options-during-awscli-ebextensions)
+ [Utilizzo di una configurazione salvata](#configuration-options-during-awscli-savedconfig)
+ [Utilizzo delle opzioni della riga di comando](#configuration-options-during-awscli-params)

### Utilizzo dei file di configurazione (`.ebextensions`)
<a name="configuration-options-during-awscli-ebextensions"></a>

Per applicare i file di configurazione a un ambiente creato con AWS CLI, includili nel bundle di sorgenti dell'applicazione che carichi su Amazon S3.

Per informazioni dettagliate sui file di configurazione, consulta [.Ebextensions](ebextensions.md).

```
~/workspace/my-app-v1.zip
|-- .ebextensions
|   |-- environmentvariables.config
|   `-- healthcheckurl.config
|-- index.php
`-- styles.css
```

**Per caricare un bundle di sorgenti dell'applicazione e creare un ambiente con AWS CLI**

1. Se non hai già un bucket Elastic Beanstalk in Amazon S3, creane uno con `create-storage-location`.

   ```
   $ aws elasticbeanstalk create-storage-location
   {
       "S3Bucket": "elasticbeanstalk-us-west-2-123456789012"
   }
   ```

1. Carica il bundle di origine dell'applicazione su Amazon S3.

   ```
   $ aws s3 cp sourcebundle.zip s3://elasticbeanstalk-us-west-2-123456789012/my-app/sourcebundle.zip
   ```

1. Per creare la versione dell'applicazione.

   ```
   $ aws elasticbeanstalk create-application-version --application-name my-app --version-label v1 --description MyAppv1 --source-bundle S3Bucket="elasticbeanstalk-us-west-2-123456789012",S3Key="my-app/sourcebundle.zip" --auto-create-application
   ```

1. Creazione dell'ambiente

   ```
   $ aws elasticbeanstalk create-environment --application-name my-app --environment-name my-env --version-label v1 --solution-stack-name "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8"
   ```

### Utilizzo di una configurazione salvata
<a name="configuration-options-during-awscli-savedconfig"></a>

Per applicare una configurazione salvata a un ambiente durante la creazione, utilizza il parametro `--template-name`.

```
$ aws elasticbeanstalk create-environment --application-name my-app --environment-name my-env --template-name savedconfig --version-label v1
```

Quando specifichi una configurazione salvata, non devi anche specificare un nome dello stack di soluzioni. Le configurazioni salvate già specificano uno stack di soluzioni ed Elastic Beanstalk restituisce un errore se tenti di utilizzare entrambe le opzioni. 

### Utilizzo delle opzioni della riga di comando
<a name="configuration-options-during-awscli-params"></a>

Utilizza il parametro `--option-settings` per specificare le opzioni di configurazione in formato JSON.

```
$ aws elasticbeanstalk create-environment --application-name my-app --environment-name my-env --version-label v1 --template-name savedconfig --option-settings '[
  {
    "Namespace": "aws:elasticbeanstalk:application",
    "OptionName": "Application Healthcheck URL",
    "Value": "/health"
  }
]
```

Per caricare il formato JSON da un file, utilizza il prefisso `file://`.

```
$ aws elasticbeanstalk create-environment --application-name my-app --environment-name my-env --version-label v1 --template-name savedconfig --option-settings file://healthcheckurl.json
```

Elastic Beanstalk applica le impostazioni delle opzioni specificate con l'opzione `--option-settings` direttamente nell'ambiente. Se le stesse opzioni vengono specificate in una configurazione salvata o in un file di configurazione, `--option-settings` sostituisce tali valori.

# Impostazione delle opzioni di configurazione dopo la creazione di un ambiente
<a name="environment-configuration-methods-after"></a>

Puoi modificare le impostazioni delle opzioni in un ambiente in esecuzione applicando le configurazioni salvate e caricando un nuovo bundle di origine con i file di configurazione (`.ebextensions`) o utilizzando un documento in formato JSON. Anche la console Elastic Beanstalk e la CLI EB hanno funzionalità specifiche del client per la configurazione e l'aggiornamento delle opzioni di configurazione.

Quando imposti o modifichi un'opzione di configurazione, puoi attivare un aggiornamento completo dell'ambiente, a seconda dell'importanza della modifica. Ad esempio, le modifiche delle opzioni in [`aws:autoscaling:launchconfiguration`](command-options-general.md#command-options-general-autoscalinglaunchconfiguration), ad esempio `InstanceType`, richiedono di nuovo l'esecuzione del provisioning delle istanze Amazon EC2 nell'ambiente. Questa operazione attiva un [aggiornamento in sequenza](using-features.rollingupdates.md). Altre modifiche di configurazione possono essere applicate senza alcuna interruzione o provisioning.

È possibile rimuovere le impostazioni delle opzioni da un ambiente con l'interfaccia a riga di comando o AWS CLI i comandi EB. La rimozione di un'opzione che è stata impostata direttamente in un ambiente a livello di API consente a impostazioni nei file di configurazione, che sono altrimenti mascherate da impostazioni applicate direttamente a un ambiente, di emergere e di diventare effettive.

Le impostazioni delle configurazioni salvate e i file di configurazione possono essere sostituiti impostando la stessa opzione direttamente nell'ambiente con uno degli altri metodi di configurazione. Tuttavia, questi possono essere rimossi completamente applicando un file di configurazione o una configurazione salvata aggiornati. Quando un'opzione non è impostata in una configurazione salvata, in un file di configurazione oppure direttamente su un ambiente, viene applicato il valore predefinito, se presente. Per informazioni dettagliate, consulta [Priorità](command-options.md#configuration-options-precedence).

**Topics**
+ [Console Elastic Beanstalk](#configuration-options-after-console)
+ [CLI EB](#configuration-options-after-ebcli)
+ [La AWS CLI](#configuration-options-after-awscli)

## Console Elastic Beanstalk
<a name="configuration-options-after-console"></a>

Puoi aggiornare le impostazioni delle opzioni di configurazione nella console Elastic Beanstalk distribuendo un bundle di origine dell'applicazione che contiene i file di configurazione, applicando una configurazione salvata o modificando l'ambiente direttamente nella pagina **Configuration (Configurazione)** nella console di gestione dell'ambiente.

**Topics**
+ [Utilizzo dei file di configurazione (`.ebextensions`)](#configuration-options-after-console-ebextensions)
+ [Utilizzo di una configurazione salvata](#configuration-options-after-console-savedconfig)
+ [Utilizzo della console Elastic Beanstalk](#configuration-options-after-console-configpage)

### Utilizzo dei file di configurazione (`.ebextensions`)
<a name="configuration-options-after-console-ebextensions"></a>

Aggiorna i file di configurazione nella directory di origine, crea un nuovo bundle di origine e distribuisci la nuova versione nell'ambiente Elastic Beanstalk in uso per applicare le modifiche.

Per informazioni dettagliate sui file di configurazione, consulta [.Ebextensions](ebextensions.md).

**Per distribuire un bundle di origine**

1. Apri la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) e, **nell'elenco Regioni, seleziona la tua**. Regione AWS

1. Nel pannello di navigazione selezionare **Environments** (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

1. Nella pagina della panoramica dell'ambiente scegliere **Upload and deploy** (Carica e distribuisci).

1. Utilizzare la finestra di dialogo su schermo per caricare il bundle di origine.

1. Selezionare **Deploy (Distribuisci)**.

1. Al termine della distribuzione, è possibile scegliere l'URL del sito per aprire il sito Web in una nuova scheda.

Le modifiche apportate ai file di configurazione non sostituiranno le impostazioni delle opzioni in configurazioni salvate o in impostazioni applicate direttamente all'ambiente a livello di API. Vedi [Priorità](command-options.md#configuration-options-precedence) per dettagli.

### Utilizzo di una configurazione salvata
<a name="configuration-options-after-console-savedconfig"></a>

Applica una configurazione salvata a un ambiente in esecuzione per applicare impostazioni di opzioni da essa definite.

**Per applicare una configurazione salvata a un ambiente in esecuzione (console Elastic Beanstalk)**

1. Apri la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) e, **nell'elenco Regioni, seleziona la tua**. Regione AWS

1. Nel riquadro di navigazione, scegliere **Applicazioni**, quindi selezionare il nome dell'applicazione dall'elenco.

1. Nel riquadro di spostamento individuare il nome dell'applicazione e scegliere **Saved configurations (Configurazioni salvate)**.

1. Selezionare la configurazione salvata che si desidera applicare, quindi scegliere **Load (Carica)**.

1. Seleziona un ambiente, quindi scegli **Load (Carica)**.

Le impostazioni definite in una configurazione salvata sovrascrivono le impostazioni nei file di configurazione e vengono sostituite dalle impostazioni configurate tramite la console di gestione dell'ambiente.

Consulta [Configurazioni salvate](environment-configuration-methods-before.md#configuration-options-before-savedconfig) per dettagli sulla creazione di configurazioni salvate.

### Utilizzo della console Elastic Beanstalk
<a name="configuration-options-after-console-configpage"></a>

La console Elastic Beanstalk presenta varie opzioni di configurazione nella pagina **Configuration (Configurazione)** per ogni ambiente.

**Per modificare le opzioni di configurazione in un ambiente in esecuzione (console Elastic Beanstalk)**

1. Apri la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) e, **nell'elenco Regioni, seleziona la tua**. Regione AWS

1. Nel pannello di navigazione selezionare **Environments** (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

1. Nel riquadro di navigazione, selezionare **Configuration (Configurazione)**.

1. Trova la pagina della configurazione che desideri modificare:
   + Se vedi l'opzione a cui sei interessato o conosci la categoria di configurazione in cui si trova, seleziona **Edit (Modifica)** nella categoria di configurazione.
   + Per cercare un'opzione, attiva **Table View (Visualizzazione tabella)**, quindi immetti i termini di ricerca nella casella di ricerca. Mentre digiti, l'elenco diventa più breve e mostra solo le opzioni che soddisfano i termini di ricerca.

     Quando vedi l'opzione che hai cercato, scegli **Edit (Modifica)** nella categoria di configurazione che la contiene.  
![\[Visualizzazione tabella della pagina della panoramica della configurazione della console Elastic Beanstalk che mostra la ricerca di un'opzione\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/images/environments-cfg-console.overview.table.search1.png)

1. Modifica le impostazioni e successivamente scegli **Save (Salva)**.

1. Ripeti i due passaggi precedenti su altre categorie di configurazione in base alle esigenze.

1. Scegliere **Apply (Applica)**.

Le modifiche apportate alle opzioni di configurazione nella console di gestione dell'ambiente vengono applicate direttamente all'ambiente. Queste modifiche sostituiscono le impostazioni per le stesse opzioni nei file di configurazione o nelle configurazioni salvate. Vedi [Priorità](command-options.md#configuration-options-precedence) per dettagli.

Per ulteriori informazioni su come modificare le opzioni di configurazione in un ambiente di esecuzione utilizzando la console Elastic Beanstalk, consulta gli argomenti disponibili in [Configurazione degli ambienti Elastic Beanstalk](customize-containers.md).

## CLI EB
<a name="configuration-options-after-ebcli"></a>

È possibile aggiornare le impostazioni delle opzioni di configurazione con la CLI EB distribuendo un codice sorgente che contiene i file di configurazione, applicando le impostazioni di una configurazione salvata o modificando la configurazione dell'ambiente direttamente con il comando **eb config**.

**Topics**
+ [Utilizzo dei file di configurazione (`.ebextensions`)](#configuration-options-after-ebcli-ebextensions)
+ [Utilizzo di una configurazione salvata](#configuration-options-after-ebcli-savedconfig)
+ [Utilizzo **eb config**](#configuration-options-after-ebcli-ebconfig)
+ [Utilizzo **eb setenv**](#configuration-options-after-ebcli-ebsetenv)

### Utilizzo dei file di configurazione (`.ebextensions`)
<a name="configuration-options-after-ebcli-ebextensions"></a>

Includi i file `.config` nella tua cartella di progetto in `.ebextensions` per distribuirli con il codice della tua applicazione.

Per informazioni dettagliate sui file di configurazione, consulta [.Ebextensions](ebextensions.md).

```
~/workspace/my-app/
|-- .ebextensions
|   |-- environmentvariables.config
|   `-- healthcheckurl.config
|-- .elasticbeanstalk
|   `-- config.yml
|-- index.php
`-- styles.css
```

Distribuisci il tuo codice sorgente con **eb deploy**.

```
~/workspace/my-app$ eb deploy
```

### Utilizzo di una configurazione salvata
<a name="configuration-options-after-ebcli-savedconfig"></a>

È possibile utilizzare il comando **eb config** per applicare una configurazione salvata a un ambiente in esecuzione. Utilizza l'opzione `--cfg` opzione con il nome della configurazione salvata per applicare le impostazioni al tuo ambiente.

```
$ eb config --cfg v1
```

In questo esempio, `v1` è il nome di un [file di configurazione precedentemente creato e salvato](environment-configuration-methods-before.md#configuration-options-before-savedconfig).

Le impostazioni applicate a un ambiente con questo comando sostituiranno le impostazioni applicate durante la creazione dell'ambiente e le impostazioni definite nei file di configurazione del tuo bundle di origine dell'applicazione.

### Utilizzo **eb config**
<a name="configuration-options-after-ebcli-ebconfig"></a>

Il comando **eb config** della CLI EB consente di impostare e rimuovere impostazioni delle opzioni direttamente su un ambiente utilizzando un editor di testo.

Quando esegui **eb config**, la CLI EB mostra le impostazioni applicate al tuo ambiente da tutte le origini, inclusi i file di configurazione, le configurazioni salvate, i valori consigliati, le opzioni impostate direttamente sull'ambiente e le API di default.

**Nota**  
**eb config** non visualizza le proprietà di ambiente. Per impostare proprietà di ambiente che puoi leggere dalla tua applicazione, utilizza [**eb setenv**](#configuration-options-after-ebcli-ebsetenv).

L'esempio seguente mostra le impostazioni applicate nello spazio del nome `aws:autoscaling:launchconfiguration`. Queste impostazioni includono:
+ Due valori consigliati, per `IamInstanceProfile` e `InstanceType`, applicati dalla CLI EB durante la creazione dell'ambiente.
+ L'opzione `EC2KeyName`, impostata direttamente nell'ambiente durante la creazione in base alla configurazione del repository.
+ Valori predefiniti dell'API per le altre opzioni.

```
ApplicationName: tomcat
DateUpdated: 2015-09-30 22:51:07+00:00
EnvironmentName: tomcat
SolutionStackName: 64bit Amazon Linux 2015.03 v2.0.1 running Tomcat 8 Java 8
settings:
...
aws:autoscaling:launchconfiguration:
    BlockDeviceMappings: null
    EC2KeyName: my-key
    IamInstanceProfile: aws-elasticbeanstalk-ec2-role
    ImageId: ami-1f316660
    InstanceType: t2.micro
...
```

**Per impostare o modificare le opzioni di configurazione con **eb config****

1. Esegui **eb config** per visualizzare la configurazione dell'ambiente.

   ```
   ~/workspace/my-app/$ eb config
   ```

1. Modifica uno qualsiasi dei valori delle impostazioni utilizzando l'editor di testo predefinito.

   ```
   aws:autoscaling:launchconfiguration:
       BlockDeviceMappings: null
       EC2KeyName: my-key
       IamInstanceProfile: aws-elasticbeanstalk-ec2-role
       ImageId: ami-1f316660
       InstanceType: t2.medium
   ```

1. Salva il file di configurazione temporaneo ed esci.

1. La CLI EB aggiorna la configurazione dell'ambiente.

Impostando le opzioni di configurazione con **eb config** vengono sovrascritte le impostazioni di tutte le altre sorgenti.

Puoi anche eliminare le opzioni dal tuo ambiente con **eb config**.<a name="configuration-options-remove-ebcli"></a>

**Per rimuovere le opzioni di configurazione (CLI EB)**

1. Esegui **eb config** per visualizzare la configurazione dell'ambiente.

   ```
   ~/workspace/my-app/$ eb config
   ```

1. Sostituisci qualsiasi valore mostrato con la stringa `null`. È anche possibile eliminare l'intera riga contenente l'opzione che desideri rimuovere.

   ```
   aws:autoscaling:launchconfiguration:
       BlockDeviceMappings: null
       EC2KeyName: my-key
       IamInstanceProfile: aws-elasticbeanstalk-ec2-role
       ImageId: ami-1f316660
       InstanceType: null
   ```

1. Salva il file di configurazione temporaneo ed esci.

1. La CLI EB aggiorna la configurazione dell'ambiente.

Se elimini le opzioni dal tuo ambiente con **eb config** le impostazioni per le stesse opzioni potranno essere visibili dai file di configurazione nel tuo bundle di origine dell'applicazione. Vedi [Priorità](command-options.md#configuration-options-precedence) per dettagli.

### Utilizzo **eb setenv**
<a name="configuration-options-after-ebcli-ebsetenv"></a>

Per impostare le proprietà dell'ambiente con la CLI EB, utilizza **eb setenv**.

```
~/workspace/my-app/$ eb setenv ENVVAR=TEST
INFO: Environment update is starting.
INFO: Updating environment my-env's configuration settings.
INFO: Environment health has transitioned from Ok to Info. Command is executing on all instances.
INFO: Successfully deployed new configuration to environment.
```

Questo comando imposta le proprietà dell'ambiente nel [namespace `aws:elasticbeanstalk:application:environment`](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment). Le proprietà dell'ambiente impostate con **eb setenv** sono disponibili per la tua applicazione, dopo un breve processo di aggiornamento.

Visualizza le proprietà dell'ambiente impostate nel tuo ambiente con **eb printenv**.

```
~/workspace/my-app/$ eb printenv
 Environment Variables:
     ENVVAR = TEST
```

## La AWS CLI
<a name="configuration-options-after-awscli"></a>

È possibile aggiornare le impostazioni delle opzioni di configurazione con il AWS CLI distribuendo un pacchetto sorgente che contiene i file di configurazione, applicando una configurazione salvata memorizzata in remoto o modificando l'ambiente direttamente con il comando. `aws elasticbeanstalk update-environment`

**Topics**
+ [Utilizzo dei file di configurazione (`.ebextensions`)](#configuration-options-after-awscli-ebextensions)
+ [Utilizzo di una configurazione salvata](#configuration-options-after-awscli-savedconfig)
+ [Utilizzo delle opzioni della riga di comando](#configuration-options-after-awscli-commandline)

### Utilizzo dei file di configurazione (`.ebextensions`)
<a name="configuration-options-after-awscli-ebextensions"></a>

Per applicare i file di configurazione a un ambiente in esecuzione con AWS CLI, includili nel pacchetto sorgente dell'applicazione che carichi su Amazon S3.

Per informazioni dettagliate sui file di configurazione, consulta [.Ebextensions](ebextensions.md).

```
~/workspace/my-app-v1.zip
|-- .ebextensions
|   |-- environmentvariables.config
|   `-- healthcheckurl.config
|-- index.php
`-- styles.css
```

**Per caricare un bundle fonte dell'applicazione e applicarlo a un ambiente in esecuzione (AWS CLI)**

1. Se non hai già un bucket Elastic Beanstalk in Amazon S3, creane uno con `create-storage-location`:

   ```
   $ aws elasticbeanstalk create-storage-location
   {
       "S3Bucket": "elasticbeanstalk-us-west-2-123456789012"
   }
   ```

1. Carica il bundle di origine dell'applicazione su Amazon S3.

   ```
   $ aws s3 cp sourcebundlev2.zip s3://elasticbeanstalk-us-west-2-123456789012/my-app/sourcebundlev2.zip
   ```

1. Per creare la versione dell'applicazione.

   ```
   $ aws elasticbeanstalk create-application-version --application-name my-app --version-label v2 --description MyAppv2 --source-bundle S3Bucket="elasticbeanstalk-us-west-2-123456789012",S3Key="my-app/sourcebundlev2.zip"
   ```

1. Aggiornamento dell'ambiente.

   ```
   $ aws elasticbeanstalk update-environment --environment-name my-env --version-label v2
   ```

### Utilizzo di una configurazione salvata
<a name="configuration-options-after-awscli-savedconfig"></a>

Puoi applicare una configurazione salvata a un ambiente in esecuzione con l'opzione `--template-name` nel comando `aws elasticbeanstalk update-environment`.

La configurazione salvata deve essere nel bucket Elastic Beanstalk in un percorso denominato in base al nome dell'applicazione in uso in `resources/templates`. Ad esempio, il modello `v1` per l'applicazione `my-app` nella regione Stati Uniti occidentali (Oregon). (us-west-2) per l'account 123456789012 si trova in `s3://elasticbeanstalk-us-west-2-123456789012/resources/templates/my-app/v1`.

**Per applicare una configurazione salvata a un ambiente in esecuzione (AWS CLI)**
+ Specifica la configurazione salvata in una chiamata `update-environment` con l'opzione `--template-name`.

  ```
  $ aws elasticbeanstalk update-environment --environment-name my-env --template-name v1
  ```

Elastic Beanstalk colloca le configurazioni salvate in questa posizione quando le crei con `aws elasticbeanstalk create-configuration-template`. Puoi anche modificare le configurazioni salvate in locale e inserirle in questa posizione.

### Utilizzo delle opzioni della riga di comando
<a name="configuration-options-after-awscli-commandline"></a>

**Per modificare le opzioni di configurazione con un documento JSON (AWS CLI)**

1. Definisci le tue impostazioni delle opzioni in formato JSON in un file locale.

1. Esegui `update-environment` con l'opzione `--option-settings`.

   ```
   $ aws elasticbeanstalk update-environment --environment-name my-env --option-settings file://~/ebconfigs/as-zero.json
   ```

In questo esempio, `as-zero.json` definisce le opzioni che configurano l'ambiente con un minimo e un massimo di istanze pari a zero. Questo arresta le istanze nell'ambiente senza terminare l'ambiente.

**`~/ebconfigs/as-zero.json`**

```
[
    {
        "Namespace": "aws:autoscaling:asg",
        "OptionName": "MinSize",
        "Value": "0"
    },
    {
        "Namespace": "aws:autoscaling:asg",
        "OptionName": "MaxSize",
        "Value": "0"
    },
    {
        "Namespace": "aws:autoscaling:updatepolicy:rollingupdate",
        "OptionName": "RollingUpdateEnabled",
        "Value": "false"
    }
]
```

**Nota**  
Impostando le opzioni di configurazione con `update-environment` vengono sovrascritte le impostazioni di tutte le altre sorgenti.

Puoi anche eliminare le opzioni dal tuo ambiente con `update-environment`.<a name="configuration-options-remove-awscli"></a>

**Per annullare le opzioni di configurazione (AWS CLI)**
+ Esegui il comando `update-environment` con l'opzione `--options-to-remove`.

  ```
  $ aws elasticbeanstalk update-environment --environment-name my-env --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=InstanceType
  ```

Se elimini le opzioni dal tuo ambiente con `update-environment` le impostazioni per le stesse opzioni potranno essere visibili dai file di configurazione nel tuo bundle di origine dell'applicazione. Se un'opzione non è configurata utilizzando uno di questi metodi, si applica il valore predefinito dell'API, se esiste. Vedi [Priorità](command-options.md#configuration-options-precedence) per dettagli.

# Opzioni generali per tutti gli ambienti
<a name="command-options-general"></a>

**Topics**
+ [aws:autoscaling:asg](#command-options-general-autoscalingasg)
+ [aws:autoscaling:launchconfiguration](#command-options-general-autoscalinglaunchconfiguration)
+ [aws:autoscaling:scheduledaction](#command-options-general-autoscalingscheduledaction)
+ [aws:autoscaling:trigger](#command-options-general-autoscalingtrigger)
+ [aws:autoscaling:updatepolicy:rollingupdate](#command-options-general-autoscalingupdatepolicyrollingupdate)
+ [aws:ec2:instances](#command-options-general-ec2instances)
+ [aws:ec2:vpc](#command-options-general-ec2vpc)
+ [aws:elasticbeanstalk:application](#command-options-general-elasticbeanstalkapplication)
+ [aws:elasticbeanstalk:application:environment](#command-options-general-elasticbeanstalkapplicationenvironment)
+ [aws:elasticbeanstalk:application:environmentsecrets](#command-options-general-elasticbeanstalk-application-environmentsecrets)
+ [aws:elasticbeanstalk:cloudwatch:logs](#command-options-general-cloudwatchlogs)
+ [aws:elasticbeanstalk:cloudwatch:logs:health](#command-options-general-cloudwatchlogs-health)
+ [aws:elasticbeanstalk:command](#command-options-general-elasticbeanstalkcommand)
+ [aws:elasticbeanstalk:environment](#command-options-general-elasticbeanstalkenvironment)
+ [aws:elasticbeanstalk:environment:process:default](#command-options-general-environmentprocess)
+ [aws:elasticbeanstalk:environment:process:process\$1name](#command-options-general-environmentprocess-process)
+ [aws:elasticbeanstalk:environment:proxy:staticfiles](#command-options-general-environmentproxystaticfiles)
+ [aws:elasticbeanstalk:healthreporting:system](#command-options-general-elasticbeanstalkhealthreporting)
+ [aws:elasticbeanstalk:hostmanager](#command-options-general-elasticbeanstalkhostmanager)
+ [aws:elasticbeanstalk:managedactions](#command-options-general-elasticbeanstalkmanagedactions)
+ [aws:elasticbeanstalk:managedactions:platformupdate](#command-options-general-elasticbeanstalkmanagedactionsplatformupdate)
+ [aws:elasticbeanstalk:monitoring](#command-options-general-elasticbeanstalkmonitoring)
+ [aws:elasticbeanstalk:sns:topics](#command-options-general-elasticbeanstalksnstopics)
+ [aws:elasticbeanstalk:sqsd](#command-options-general-elasticbeanstalksqsd)
+ [aws:elasticbeanstalk:trafficsplitting](#command-options-general-elasticbeanstalktrafficsplitting)
+ [aws:elasticbeanstalk:xray](#command-options-general-elasticbeanstalkxray)
+ [aws:elb:healthcheck](#command-options-general-elbhealthcheck)
+ [aws:elb:loadbalancer](#command-options-general-elbloadbalancer)
+ [aws:elb:listener](#command-options-general-elblistener)
+ [aws:elb:listener:listener\$1port](#command-options-general-elblistener-listener)
+ [aws:elb:policies](#command-options-general-elbpolicies)
+ [aws:elb:policies:policy\$1name](#command-options-general-elbpolicies-custom)
+ [aws:elbv2:listener:default](#command-options-general-elbv2-listener-default)
+ [aws:elbv2:listener:listener\$1port](#command-options-general-elbv2-listener)
+ [aws:elbv2:listenerrule:rule\$1name](#command-options-general-elbv2-listenerrule)
+ [aws:elbv2:loadbalancer](#command-options-general-elbv2)
+ [aws:rds:dbinstance](#command-options-general-rdsdbinstance)

## aws:autoscaling:asg
<a name="command-options-general-autoscalingasg"></a>

Configura il gruppo Auto Scaling dell'ambiente. Per ulteriori informazioni, consultare [Auto Scaling delle istanze dell'ambiente Elastic Beanstalk](using-features.managing.as.md).


**Spazio dei nomi: `aws:autoscaling:asg`**  

| **Nome** | **Descrizione** | **Impostazione predefinita** | **Valori validi** | 
| --- | --- | --- | --- | 
|  Availability Zones  |  Le zone di disponibilità (AZs) sono località distinte all'interno di una AWS regione progettate per essere isolate dai guasti in altre regioni. AZs Forniscono connettività di rete economica e a bassa latenza ad altri utenti della stessa AZs regione. Scegli il numero di istanze AZs per le tue istanze.  |  `Any`  |  `Any` `Any 1` `Any 2` `Any 3`  | 
|  Cooldown  |  I periodi di attesa impediscono ad Amazon EC2 Auto Scaling di avviare ulteriori attività di dimensionamento prima che gli effetti delle attività precedenti siano visibili. La quantità di tempo, in secondi, tra il completamento di un'attività di dimensionamento e l'inizio di un'altra attività di questo tipo.  |  `360`   |  `0` Da a `10000`  | 
|  Custom Availability Zones  |  Definisci le istanze AZs per le tue istanze.  |  Nessuno  |  `us-east-1a`  `us-east-1b`  `us-east-1c`  `us-east-1d`  `us-east-1e`  `eu-central-1`   | 
|  EnableCapacityRebalancing  |  Specifica se abilitare la caratteristica di ribilanciamento della capacità per le istanze Spot nel gruppo Auto Scaling. Per ulteriori informazioni, consulta [Ribilanciamento della capacità](https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html) nella *Guida per l'utente di Amazon EC2 Auto Scaling*. Questa opzione è rilevante solo se `EnableSpot` è impostato su `true` nello spazio dei nomi [`aws:ec2:instances`](#command-options-general-ec2instances) e c'è almeno un'istanza Spot nel gruppo Auto Scaling.  |  `false`  |  `true` `false`  | 
|  MinSize  |  Il numero minimo di istanze desiderate nel gruppo Auto Scaling.  |  `1`   |  `1` Da a `10000`  | 
|  MaxSize  |  Il numero massimo di istanze desiderate nel gruppo Auto Scaling.  |  `4`   |  `1` Da a `10000`  | 

## aws:autoscaling:launchconfiguration
<a name="command-options-general-autoscalinglaunchconfiguration"></a>

Configura le istanze Amazon Elastic Compute Cloud (Amazon EC2) dell'ambiente.

Le istanze utilizzate per l'ambiente vengono create utilizzando un modello di avvio Amazon EC2 o una risorsa di configurazione di avvio del gruppo Auto Scaling. Le opzioni seguenti funzionano con entrambi questi tipi di risorse.

Per ulteriori informazioni, consulta [Le EC2 istanze Amazon per il tuo ambiente Elastic Beanstalk](using-features.managing.ec2.md). Puoi anche fare riferimento a ulteriori informazioni su Amazon Elastic Block Store (EBS) nel capitolo Amazon EBS della [Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) *EC2* User Guide.


**Spazio dei nomi: `aws:autoscaling:launchconfiguration`**  

| **Nome** | **Descrizione** | **Impostazione predefinita** | **Valori validi** | 
| --- | --- | --- | --- | 
|  DisableDefaultEC2SecurityGroup  |  Se impostato sul valore predefinito di`false`, Elastic Beanstalk crea un gruppo di sicurezza predefinito che consente il traffico da Internet o dal sistema di bilanciamento del carico sulle porte standard per HTTP (80). Collega questo gruppo di sicurezza alle istanze EC2 dell'ambiente quando crea l'ambiente. Se impostato su `true` Elastic Beanstalk, non assegnerà il gruppo di sicurezza predefinito alle istanze EC2 per un nuovo ambiente. Per un ambiente esistente, Elastic Beanstalk annullerà l'assegnazione del gruppo di sicurezza EC2 predefinito dalle istanze EC2 dell'ambiente. Di conseguenza, è necessario impostare anche le seguenti configurazioni: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html) Se viene specificato un valore per EC2KeyName un ambiente `DisableDefaultEC2SecurityGroup` impostato su un gruppo di sicurezza predefinito non verrà associato alle `true` istanze EC2.  |  `false`  |  `true` `false`  | 
|  DisableIMDSv1  |  Imposta per `true` disabilitare Instance Metadata Service Version 1 (IMDSv1) e applicare. IMDSv2 Impostare su per `false` abilitare entrambi IMDSv1 e. IMDSv2 Le istanze per l'ambiente sono predefinite come segue, in base al sistema operativo della piattaforma:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html) Per ulteriori informazioni, consulta [Configurazione del servizio di metadati dell'istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html).   Questa impostazione delle opzioni può far sì che Elastic Beanstalk migri un ambiente esistente con configurazioni di avvio verso modelli di avvio. A tale scopo sono necessarie le autorizzazioni necessarie per gestire i modelli di lancio. Queste autorizzazioni sono incluse nella nostra politica gestita. Se utilizzi politiche personalizzate anziché le nostre politiche gestite, la creazione o gli aggiornamenti dell'ambiente potrebbero non riuscire quando aggiorni la configurazione dell'ambiente. Per ulteriori informazioni e altre considerazioni, consulta[Migrazione dell'ambiente Elastic Beanstalk ai modelli di avvio](environments-cfg-autoscaling-launch-templates.md).   |  `false`: piattaforme basate su server Windows, Amazon Linux 2 e versioni precedenti `true`: piattaforme basate su Amazon Linux 2023  |  `true` `false`  | 
|  EC2KeyName  |  È possibile utilizzare una coppia di chiavi per accedere in modo sicuro all'istanza EC2. Se viene specificato un valore per `EC2KeyName` un ambiente `DisableDefaultEC2SecurityGroup` impostato su `true` un gruppo di sicurezza predefinito, non verrà associato alle istanze EC2.  Se utilizzi la console Elastic Beanstalk per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console sostituisce questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  Nessuno  |  | 
|  IamInstanceProfile  |  Un profilo di istanza consente agli utenti e ai AWS servizi AWS Identity and Access Management (IAM) di accedere a credenziali di sicurezza temporanee per effettuare AWS chiamate API. Specifica il nome del profilo dell'istanza o il suo ARN. Esempi: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html)  Se utilizzi la console Elastic Beanstalk o la CLI EB per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console e CLI EB sostituiscono questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  Nessuna  |  Nome del profilo dell'istanza o ARN.  | 
|  ImageId  |  È possibile sostituire l'Amazon Machine Image (AMI) di default con il tuo ID AMI. Ad esempio: `ami-1f316660`  |  Nessuno  |    | 
|   InstanceType  |  Il tipo di istanza utilizzato per eseguire l'applicazione in un ambiente Elastic Beanstalk.  L'opzione `InstanceType` è obsoleta. È sostituita dall'opzione `InstanceTypes` più nuova e potente nello spazio dei nomi [`aws:ec2:instances`](#command-options-general-ec2instances). È possibile utilizzare la nuova opzione per specificare un elenco di uno o più tipi di istanza per l'ambiente. Il primo valore dell'elenco è equivalente al valore dell'opzione `InstanceType` inclusa nello spazio dei nomi `aws:autoscaling:launchconfiguration` descritto qui. Si consiglia di utilizzare la nuova opzione per specificare i tipi di istanza. Se specificata, la nuova opzione ha la precedenza su quella precedente. Per ulteriori informazioni, consulta [Spazio dei nomi aws:ec2:instances](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-namespace.instances).  I tipi di istanza disponibili dipendono dalle zone di disponibilità e dalla regione utilizzate. Se si sceglie una sottorete, la zona di disponibilità che contiene tale sottorete determina i tipi di istanza disponibili.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html)  Se utilizzi la console Elastic Beanstalk o la CLI EB per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console e CLI EB sostituiscono questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  Varia in base all'account e alla regione.  |  Un tipo di istanza EC2. Varia in base all'account, alla regione e alla zona di disponibilità. È possibile ottenere un elenco di tipi di istanza Amazon EC2 filtrati in base a questi valori. Per ulteriori informazioni, consulta la sezione [Tipi di istanze disponibili](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes) nella Guida per l'*utente di Amazon EC2*.  | 
|  LaunchTemplateTagPropagationEnabled  |  Imposta su `true` per abilitare la propagazione di tag dell'ambiente ai modelli di avvio per risorse specifiche fornite all'ambiente.  Elastic Beanstalk è in grado di propagare i tag ai modelli di avvio solo per le risorse seguenti: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html) Questo vincolo esiste perché consente CloudFormation solo l'uso di tag per la creazione di modelli per risorse specifiche. Per ulteriori informazioni, consulta la [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html)Guida per l'*AWS CloudFormation utente*.    La modifica del valore di questa opzione da `false` a `true` per un ambiente esistente può costituire una modifica rivoluzionaria per i tag esistenti.   Quando questa funzionalità è abilitata, la propagazione di tag richiederà la sostituzione di EC2, con conseguenti tempi di inattività. Per applicare le modifiche alla configurazione in batch e prevenire i tempi di inattività durante il processo di aggiornamento, puoi abilitare gli *aggiornamenti in sequenza*. Per ulteriori informazioni, consulta [Modifiche di configurazione](environments-updating.md).    Per ulteriori informazioni sui modelli di avvio, consulta le risorse seguenti: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html) Per ulteriori informazioni su questa opzione, consulta [Propagazione di tag ai modelli di avvio](applications-tagging-resources.launch-templates.md).  |  `false`  |  `true` `false`  | 
|  MonitoringInterval  |  L'intervallo (in minuti) a cui desideri che vengano restituiti i CloudWatch parametri di Amazon.  |  `5 minute`  |  `1 minute` `5 minute`  | 
|  SecurityGroups  |  Elenca gli ID dei gruppi di sicurezza Amazon EC2 da assegnare alle istanze EC2 nel gruppo Auto Scaling per definire le regole del firewall per le istanze. Utilizza questa opzione insieme `DisableDefaultEC2SecurityGroup` a per collegare i tuoi gruppi di sicurezza personalizzati che definiscono le regole del firewall per le istanze EC2. Per ulteriori informazioni, consulta [Ambienti con carico bilanciato (multiistanza)](using-features.managing.ec2.instances.sg.md#using-features.managing.ec2.instances.sg.load-balancer-security).  Potrebbe essere necessario completare alcune configurazioni aggiuntive per evitare che il traffico in entrata verso le istanze EC2 venga bloccato. Ciò si applica solo agli ambienti a più istanze con gruppi di sicurezza EC2 personalizzati. I gruppi di sicurezza EC2 devono includere una regola in entrata che garantisca l'accesso al traffico instradato dal sistema di bilanciamento del carico. Per ulteriori informazioni, consulta [Gestione dei gruppi di sicurezza EC2 in ambienti a più istanze](using-features.managing.ec2.instances.sg.md#using-features.managing.ec2.instances.sg.load-balancer-security).  Puoi fornire una singola stringa di valori separati da virgole che contengono gli ID dei gruppi di sicurezza Amazon EC2 esistenti o i riferimenti alle AWS::EC2::SecurityGroup risorse create nel modello.  È necessario fornire almeno un valore per questa opzione se `DisableDefaultEC2SecurityGroup` for questo namespace è impostato su. `true`  |  `elasticbeanstalk-default`   |    | 
|   SSHSourceRestriction  |  Consente di bloccare l'accesso SSH a un ambiente. Ad esempio, è possibile bloccare l'accesso SSH alle istanze EC2, di modo che solo un host bastione sia in grado di accedere alle istanze nella sottorete privata. Questa stringa è espressa nella seguente forma: `protocol, fromPort, toPort, source_restriction` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html)  |  Nessuno  |    | 
|  BlockDeviceMappings  |  Collega ulteriori volumi Amazon EBS o volumi di instance store su tutte le istanze del gruppo Auto Scaling.  Questa impostazione delle opzioni può far sì che Elastic Beanstalk migri un ambiente esistente con configurazioni di avvio verso modelli di avvio. A tale scopo sono necessarie le autorizzazioni necessarie per gestire i modelli di lancio. Queste autorizzazioni sono incluse nella nostra politica gestita. Se utilizzi politiche personalizzate anziché le nostre politiche gestite, la creazione o gli aggiornamenti dell'ambiente potrebbero non riuscire quando aggiorni la configurazione dell'ambiente. Per ulteriori informazioni e altre considerazioni, consulta[Migrazione dell'ambiente Elastic Beanstalk ai modelli di avvio](environments-cfg-autoscaling-launch-templates.md).  Quando si esegue la mappatura dei volumi di instance store, è necessario mappare solo il nome del dispositivo a un nome di volume. Tuttavia, quando si mappano volumi Amazon EBS, si consiglia di specificare alcuni o tutti i seguenti campi (ogni campo deve essere separato da due punti): [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html) L'esempio seguente collega tre volumi Amazon EBS, un volume gp2 vuoto di 100 GB e uno snapshot, uno volume io1 vuoto di 20 GB con 2.000 provisioned IOPS e un volume di instance store `ephemeral0`. Più volumi di instance store possono essere collegati se il tipo di istanza lo supporta.  `/dev/sdj=:100:true:gp2,/dev/sdh=snap-51eef269,/dev/sdi=:20:true:io1:2000,/dev/sdb=ephemeral0`   |  Nessuno  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html)  | 
|  RootVolumeType  |  Tipo di volume (magnetico, general purpose SSD o provisioned IOPS SSD) da utilizzare per il volume Amazon EBS root collegato alle istanze EC2 dell'ambiente.  Questa impostazione delle opzioni può far sì che Elastic Beanstalk migri un ambiente esistente con configurazioni di avvio verso modelli di avvio. A tale scopo sono necessarie le autorizzazioni necessarie per gestire i modelli di lancio. Queste autorizzazioni sono incluse nella nostra politica gestita. Se utilizzi politiche personalizzate anziché le nostre politiche gestite, la creazione o gli aggiornamenti dell'ambiente potrebbero non riuscire quando aggiorni la configurazione dell'ambiente. Per ulteriori informazioni e altre considerazioni, consulta[Migrazione dell'ambiente Elastic Beanstalk ai modelli di avvio](environments-cfg-autoscaling-launch-templates.md).   |  Varia in base alla piattaforma.  |  `standard` per l'archiviazione magnetica. `gp2` o `gp3` per SSD per scopo generico. `io1` per SSD con capacità di IOPS allocata.  | 
|  RootVolumeSize  |  La capacità di storage del volume Amazon EBS root in GB. Obbligatorio se imposti `RootVolumeType` su provisioned IOPS SSD. Ad esempio, `"64"`.  |  Varia a seconda della piattaforma per lo storage magnetico e general purpose SSD. Nessuno per provisioned IOPS SSD.  |  Da `10` a `16384` GB per general purpose SSD e provisioned IOPS SSD. Da `8` a `1024` GB per storage magnetico.  | 
|  RootVolumeIOPS  |  Le input/output operazioni al secondo (IOPS) desiderate per un volume root SSD IOPS fornito o per un volume radice SSD generico. `gp3` La proporzione massima tra IOPS e dimensione del volume è 500 a 1. Ad esempio, un volume con 3.000 IOPS deve avere almeno 6 GiB.  |  Nessuno  |  Da `100` a `20000` per volumi root SSD io1 con capacità di IOPS allocata. Da `3000` a `16000` per volumi root SSD `gp3` per scopo generico.  | 
|  RootVolumeThroughput  |  La velocità effettiva desiderata di mebibyte al secondo (MIB/s) per il provisioning del volume root Amazon EBS collegato all'istanza EC2 dell'ambiente.  Questa opzione è applicabile solo ai tipi di archiviazione `gp3`.   |  Nessuna  |  `125` Da a `1000`  | 

## aws:autoscaling:scheduledaction
<a name="command-options-general-autoscalingscheduledaction"></a>

Configura [operazioni programmate](environments-cfg-autoscaling-scheduledactions.md) per il gruppo Auto Scaling dell'ambiente. Per ogni azione, specifica un `resource_name` oltre a nome di opzione, namespace e valore per ogni impostazione. Per esempi, consulta [Spazio dei nomi aws:autoscaling:scheduledaction](environments-cfg-autoscaling-scheduledactions.md#environments-cfg-autoscaling-scheduledactions-namespace).


**Spazio dei nomi: `aws:autoscaling:scheduledaction`**  

| **Nome** | **Descrizione** | **Impostazione predefinita** | **Valori validi** | 
| --- | --- | --- | --- | 
|  StartTime  |  Per le azioni singole, scegli la data e l'ora di esecuzione. Per le azioni ricorrenti, scegli quando attivare l'azione.  |  Nessuna  |  Un [time stamp ISO-8601](http://www.w3.org/TR/NOTE-datetime) univoco per tutte le azioni di dimensionamento programmate.  | 
|  EndTime  |  Una data e un'ora future (nel fuso UTC/GMT orario) in cui si desidera che l'azione di ridimensionamento pianificata smetta di ripetersi. Se non si specifica un **EndTime**, l'azione viene ripetuta in base all'espressione. `Recurrence` Ad esempio: `2015-04-28T04:07:2Z` Quando un'operazione pianificata termina, le impostazioni precedenti di Amazon EC2 Auto Scaling non vengono ripristinate automaticamente. Configura una seconda azione programmata per ripristinare le impostazioni originali come necessario.  |  Nessuna  |  Un [time stamp ISO-8601](http://www.w3.org/TR/NOTE-datetime) univoco per tutte le azioni di dimensionamento programmate.  | 
|  MaxSize  |  Il numero massimo di istanze da applicare all'esecuzione dell'azione.  |  Nessuna  |  `0` Da a `10000`  | 
|  MinSize  |  Il numero minimo di istanze da applicare all'esecuzione dell'azione.  |  Nessuna  |  `0` Da a `10000`  | 
|  DesiredCapacity  |  Imposta la capacità iniziale desiderata per il gruppo Auto Scaling. Dopo l'applicazione dell'azione programmata, i trigger regolano la capacità desiderata in base alle relative impostazioni.  |  Nessuna  |  `0` Da a `10000`  | 
|  Recurrence  |  La frequenza alla quale si desidera eseguire l'azione pianificata. Se non si specifica una ricorrenza, l'azione di ridimensionamento viene eseguita una sola volta, come specificato da `StartTime`.  |  Nessuna  |  Un'espressione [Cron](http://en.wikipedia.org/wiki/Cron).  | 
|  Suspend  |  Imposta su `true` per disattivare temporaneamente un'azione programmata ricorrente.  |   `false`   |   `true`   `false`   | 

## aws:autoscaling:trigger
<a name="command-options-general-autoscalingtrigger"></a>

Configura trigger di dimensionamento per il gruppo Auto Scaling dell'ambiente.

**Nota**  
Tre opzioni in questo spazio dei nomi determinano per quanto tempo il parametro per un trigger può restare oltre i suoi limiti definiti prima dell'attivazione del trigger. Queste opzioni sono correlate come segue:  
`BreachDuration = Period * EvaluationPeriods`  
I valori predefiniti per queste opzioni (5, 5 e 1, rispettivamente) soddisfano questa equazione. Se specifichi valori incoerenti, Elastic Beanstalk potrebbe modificare uno dei valori in modo che l'equazione risulti ancora soddisfatta.


**Spazio dei nomi: `aws:autoscaling:trigger`**  

| **Nome** | **Descrizione** | **Impostazione predefinita** | **Valori validi** | 
| --- | --- | --- | --- | 
|  BreachDuration  |  Il periodo di tempo, in minuti, durante il quale un parametro può superare il relativo limite definito (come specificato in `UpperThreshold` e `LowerThreshold`) prima che il trigger venga richiamato.  |  `5`  |  `1` Da a `600`  | 
|  LowerBreachScaleIncrement  |  Il numero di istanze Amazon EC2 da rimuovere durante l'esecuzione di un'attività di dimensionamento.  |  `-1`  |    | 
|  LowerThreshold  |  Se la misurazione è inferiore alla durata dell'utilizzo fuori limite impostata, il trigger viene richiamato.  |  `2000000`  |  `0` Da a `20000000`  | 
|  MeasureName  |  Il parametro utilizzato per il trigger di Auto Scaling.  `HealthyHostCount`, `UnhealthyHostCount` e `TargetResponseTime` sono applicabili solo per ambienti con un sistema di bilanciamento del carico dedicato. Questi valori non sono validi per gli ambienti configurati con un servizio di bilanciamento del carico condiviso. Per ulteriori informazioni sui tipi di bilanciamento del carico, consulta [Sistema di bilanciamento del carico per l'ambiente Elastic Beanstalk](using-features.managing.elb.md).   |  `NetworkOut`  |  `CPUUtilization` `NetworkIn` `NetworkOut` `DiskWriteOps` `DiskReadBytes` `DiskReadOps` `DiskWriteBytes` `Latency` `RequestCount` `HealthyHostCount` `UnhealthyHostCount` `TargetResponseTime`  | 
|  Period  |  Specifica la frequenza con cui Amazon CloudWatch misura le metriche per il tuo trigger. Il valore è il numero di minuti tra due periodi consecutivi.  |  `5`  |  `1` Da a `600`  | 
|  EvaluationPeriods  |  Il numero di periodi di valutazione consecutivi utilizzati per determinare se è in corso una violazione.  |  `1`  |  `1` Da a `600`  | 
|  Statistic  |  La statistica utilizzata dal trigger, ad esempio `Average`.  |  `Average`  |  `Minimum` `Maximum` `Sum` `Average`  | 
|  Unit  |  L'unità per la misura del trigger, ad esempio `Bytes`.  |  `Bytes`  |  `Seconds` `Percent` `Bytes`  `Bits`  `Count`  `Bytes/Second`  `Bits/Second`  `Count/Second`  `None`   | 
|  UpperBreachScaleIncrement  |  Specifica il numero di istanze Amazon EC2 da aggiungere durante l'esecuzione di un'attività di ridimensionamento.  |  `1`  |    | 
|  UpperThreshold  |  Se la misurazione è superiore alla durata dell'utilizzo fuori limite impostata, il trigger viene richiamato.  |  `6000000`  |  `0` Da a `20000000`  | 

## aws:autoscaling:updatepolicy:rollingupdate
<a name="command-options-general-autoscalingupdatepolicyrollingupdate"></a>

Configura gli aggiornamenti in sequenza del gruppo Auto Scaling dell'ambiente.


**Spazio dei nomi: `aws:autoscaling:updatepolicy:rollingupdate`**  

| **Nome** | **Descrizione** | **Impostazione predefinita** | **Valori validi** | 
| --- | --- | --- | --- | 
|  MaxBatchSize  |  Il numero di istanze incluse in ogni batch dell'aggiornamento in sequenza.  |  Un terzo della dimensione minima del gruppo Auto Scaling, arrotondato all'intero successivo più alto.  |  `1` Da a `10000`  | 
|  MinInstancesInService  |  Il numero minimo di istanze che devono essere in servizio nel gruppo Auto Scaling mentre altre istanze vengono terminate.  |  La dimensione minima del gruppo Auto Scaling o una dimensione inferiore alla dimensione massima del gruppo Auto Scaling, a seconda di quale sia più bassa.  |  `0` Da a `9999`  | 
|  RollingUpdateEnabled  |  Se `true`, abilita gli aggiornamenti in sequenza per un ambiente. Gli aggiornamenti in sequenza sono utili quando è necessario effettuare aggiornamenti frequenti e minori all'applicazione software Elastic Beanstalk e si desidera evitare tempi di inattività delle applicazioni. L'impostazione di questo valore su true attiva automaticamente le opzioni `MaxBatchSize`, `MinInstancesInService` e `PauseTime`. L'impostazione di una di queste opzioni, inoltre, imposta automaticamente il valore dell'opzione `RollingUpdateEnabled` su `true`. L'impostazione su `false` disattiva gli aggiornamenti in sequenza.  Se utilizzi la console Elastic Beanstalk o la CLI EB per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console e CLI EB sostituiscono questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  `false`  |  `true` `false`  | 
|  RollingUpdateType  |  Sono inclusi tre tipi: aggiornamenti in sequenza basati sul tempo, aggiornamenti in sequenza basati sulla salute e aggiornamenti immutabili.  Gli aggiornamenti periodici basati sul tempo si applicano tra i batch PauseTime . Gli aggiornamenti in sequenza basati sullo stato attendono che le nuove istanze superino i controlli dello stato prima di passare al batch successivo. Gli [aggiornamenti non modificabili](environmentmgmt-updates-immutable.md) eseguono un set completo di istanze in un nuovo gruppo Auto Scaling.  Se utilizzi la console Elastic Beanstalk o la CLI EB per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console e CLI EB sostituiscono questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  `Time`  |  `Time` `Health` `Immutable`  | 
|  PauseTime  |  Intervallo di attesa (in secondi, minuti o ore) del servizio Elastic Beanstalk dopo il completamento degli aggiornamenti a un batch di istanze e prima di passare al batch successivo.  |  Calcolato automaticamente in base al tipo di istanza e al container.  |  Da `PT0S`\$1 (0 secondi) a `PT1H` (1 ora)  | 
|  Timeout  |  Il periodo di attesa massimo (in minuti o ore) per il superamento dei controlli dello stato da parte di tutte le istanze in un batch di istanze prima che l'aggiornamento venga annullato.  |  `PT30M` (30 minuti)  |  Da `PT5M`\$1 (5 minuti) a `PT1H` (1 ora) \$1 formato di [ISO8601durata](http://en.wikipedia.org/wiki/ISO_8601#Durations): `PT#H#M#S` dove ogni \$1 è rispettivamente il numero di ore, minuti, and/or secondi.  | 

## aws:ec2:instances
<a name="command-options-general-ec2instances"></a>

Configurare le istanze dell'ambiente, incluse le opzioni Spot. Questo spazio dei nomi integra [`aws:autoscaling:launchconfiguration`](#command-options-general-autoscalinglaunchconfiguration) e [`aws:autoscaling:asg`](#command-options-general-autoscalingasg).

Per ulteriori informazioni, consultare [Auto Scaling delle istanze dell'ambiente Elastic Beanstalk](using-features.managing.as.md).


**Spazio dei nomi: `aws:ec2:instances`**  

| **Nome** | **Descrizione** | **Impostazione predefinita** | **Valori validi** | 
| --- | --- | --- | --- | 
|  EnableSpot  |  Abilitare le richieste di istanze Spot per l'ambiente in uso. Quando `false`, alcune opzioni in questo spazio dei nomi non hanno effetto.  Questa impostazione delle opzioni può far sì che Elastic Beanstalk migri un ambiente esistente con configurazioni di avvio verso modelli di avvio. A tale scopo sono necessarie le autorizzazioni necessarie per gestire i modelli di lancio. Queste autorizzazioni sono incluse nella nostra politica gestita. Se utilizzi politiche personalizzate anziché le nostre politiche gestite, la creazione o gli aggiornamenti dell'ambiente potrebbero non riuscire quando aggiorni la configurazione dell'ambiente. Per ulteriori informazioni e altre considerazioni, consulta[Migrazione dell'ambiente Elastic Beanstalk ai modelli di avvio](environments-cfg-autoscaling-launch-templates.md).   |  `false`  |  `true` `false`  | 
|   InstanceTypes  |  Un elenco separato da virgole di tipi di istanza che si desidera utilizzare nell'ambiente (ad esempio, `t2.micro,t3.micro`). Quando `EnableSpot` è impostato su `true` ed `SpotAllocationStrategy` è impostato su`capacity-optimized-prioritized`, l'elenco di valori specificato in questa opzione determina la priorità del tipo di istanza per la strategia di allocazione delle istanze Spot. Quando le istanze Spot non sono attivate (`EnableSpot` è `false`), viene utilizzato solo il primo tipo di istanza nell'elenco. Il primo tipo di istanza nell'elenco di questa opzione è equivalente al valore dell'opzione `InstanceType` nello spazio dei nomi [`aws:autoscaling:launchconfiguration`](#command-options-general-autoscalinglaunchconfiguration). Non si sconsiglia di utilizzare quest'ultima opzione perché è obsoleta. Se si specificano entrambi, viene utilizzato il primo tipo di istanza nell'elenco nell'opzione `InstanceTypes` e `InstanceType` viene ignorato. I tipi di istanza disponibili dipendono dalle zone di disponibilità e dalla regione utilizzate. Se si sceglie una sottorete, la zona di disponibilità che contiene tale sottorete determina i tipi di istanza disponibili.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html)  Alcuni AWS account meno recenti potrebbero fornire a Elastic Beanstalk tipi di istanze predefiniti che non supportano le istanze Spot (ad esempio, t1.micro). Se si attivano le richieste di istanza Spot e viene visualizzato un errore su un tipo di istanza che non supporta Spot, assicurarsi di configurare i tipi di istanza che supportano Spot. Per scegliere i tipi di istanze Spot, utilizza [Spot Instance Advisor](https://aws.amazon.com/ec2/spot/instance-advisor/).  Quando si aggiorna la configurazione dell'ambiente e si rimuove uno o più tipi di istanza dall'opzione `InstanceTypes`, Elastic Beanstalk termina tutte le istanze Amazon EC2 in esecuzione su uno qualsiasi dei tipi di istanza rimossi. Il gruppo Auto Scaling dell'ambiente avvia quindi nuove istanze, se necessario per completare la capacità desiderata, utilizzando i tipi di istanza specificati correnti.  |  Un elenco di due tipi di istanza. Varia in base all'account e alla regione.  |  Da uno a quaranta tipi di istanze EC2. (almeno due consigliati) Varia in base all'account, alla regione e alla zona di disponibilità. È possibile ottenere un elenco di tipi di istanza Amazon EC2 filtrati in base a questi valori. Per ulteriori informazioni, consulta la sezione [Tipi di istanze disponibili](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes) nella Guida per l'*utente di Amazon EC2*. I tipi di istanza devono essere tutti parte della stessa architettura (`arm64`, `x86_64`, `i386`). Anche `SupportedArchitectures` fa parte di questo spazio dei nomi. Se fornisci dei valori per `SupportedArchitectures`, i valori che inserisci per `InstanceTypes` devono appartenere a una sola delle architetture che fornisci per `SupportedArchitectures`.  | 
|  SpotAllocationStrategy  |  Speciifica la [strategia di allocazione delle istanze spot](environments-cfg-autoscaling-spot-allocation-strategy.md) che determina il modo in cui le istanze Spot vengono allocate dai pool di capacità spot disponibili. Se impostato su`capacity-optimized-prioritized`, l'ordine dei valori in `InstanceTypes` imposta la priorità del tipo di istanza per l'allocazione. Questa opzione è rilevante solo quando `EnableSpot` è `true`.  |  `capacity-optimized`  |  `capacity-optimized` `price-capacity-optimized` `capacity-optimized-prioritized` `lowest-price `  | 
|  SpotFleetOnDemandBase  |  Il numero minimo di istanze on demand di cui il gruppo Auto Scaling effettua il provisioning prima di considerare le istanze Spot durante la scalabilità dell'ambiente. Questa opzione è rilevante solo quando `EnableSpot` è `true`.  |  `0`  |  Da `0` all'opzione `MaxSize` nello spazio dei nomi [`aws:autoscaling:asg`](#command-options-general-autoscalingasg)  | 
|  SpotFleetOnDemandAboveBasePercentage  |  La percentuale di istanze on demand su richiesta come parte della capacità aggiuntiva di cui il gruppo Auto Scaling effettua il provisioning oltre alle istanze `SpotOnDemandBase`. Questa opzione è rilevante solo quando `EnableSpot` è `true`.  |  `0` per un ambiente a istanza singola `70` per un ambiente con bilanciamento del carico  |  `0` Da a `100`  | 
|  SpotMaxPrice  |  Il prezzo massimo orario per unità che si è disposti a pagare per un'istanza Spot, in dollari americani. Per consigli sulle opzioni di prezzo massimo per le istanze Spot, consulta la [cronologia dei prezzi delle istanze Spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html) nella *Amazon EC2* User Guide. Questa opzione è rilevante solo quando `EnableSpot` è `true`.  |  Prezzo on demand, per ogni tipo di istanza. Il valore dell'opzione in questo caso è `null`.  |  `0.001` Da a `20.0` `null`  | 
|  SupportedArchitectures  |  Un elenco separato da virgole di tipi di istanza Amazon EC2 che userai nell'ambiente. Elastic Beanstalk supporta i tipi di istanza basati sulle seguenti architetture del processore: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html) Per ulteriori informazioni sull'architettura del processore e sui tipi di istanza Amazon EC2, consulta [Tipi di EC2 istanze Amazon](using-features.managing.ec2.instance-types.md).  |  Nessuno  |  `arm64` `x86_64` `i386`  L'architettura a 32 bit `i386` non è più supportata dalla maggior parte delle piattaforme Elastic Beanstalk. Consigliamo di scegliere invece i tipi di architettura `x86_64` o `arm64`.   | 

## aws:ec2:vpc
<a name="command-options-general-ec2vpc"></a>

Configura l'ambiente per lanciare risorse in un [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) personalizzato (Amazon VPC). Se non configuri le impostazioni in questo spazio dei nomi, Elastic Beanstalk avvia le risorse nel VPC di default.


**Spazio dei nomi: `aws:ec2:vpc`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  VPCId  |  L'ID dell'istanza Amazon VPC in uso.  |  Nessuno  |    | 
|  Subnets  |  La IDs sottorete o le sottoreti del gruppo Auto Scaling. Se disponi di più sottoreti, specifica il valore come singola stringa di sottorete separata da virgole (ad esempio,). IDs `"subnet-11111111,subnet-22222222"`  |  Nessuno  |    | 
|  ELBSubnets  |  La sottorete o IDs le sottoreti per il bilanciamento del carico elastico. Se disponi di più sottoreti, specifica il valore come singola stringa di sottorete separata da virgole (ad esempio,). IDs `"subnet-11111111,subnet-22222222"`  |  Nessuno  |    | 
|  ELBScheme  |  Specifica `internal` se intendi creare un sistema di bilanciamento del carico interno in Amazon VPC, in modo che non sia possibile accedere all'applicazione Elastic Beanstalk dall'esterno di Amazon VPC. Se specifichi un valore diverso a `public` o `internal`, Elastic Beanstalk ignorerà il valore.  |  `public`   |  `public`  `internal`   | 
|  DBSubnets  |  Contiene le sottoreti del database. IDs Viene utilizzato solo se intendi aggiungere un'istanza database di Amazon RDS come parte dell'applicazione. Se disponi di più sottoreti, specifica il valore come singola stringa di sottorete separata da virgole (ad esempio,). IDs `"subnet-11111111,subnet-22222222"`  |  Nessuno  |    | 
|  AssociatePublicIpAddress  |  Specifica se avviare le istanze con indirizzi IP pubblici in Amazon VPC. Le istanze con indirizzi IP pubblici non necessitano di un dispositivo NAT per comunicare con Internet. Devi impostare il valore su `true` per includere il sistema di bilanciamento del carico e le istanze in un'unica sottorete pubblica. Questa opzione non ha effetto su un ambiente a istanza singola, che ha sempre una singola istanza Amazon EC2 con un indirizzo IP elastico. L'opzione è rilevante per gli ambienti scalabili e con bilanciamento del carico.  |  Nessuna  |  `true`  `false`   | 

## aws:elasticbeanstalk:application
<a name="command-options-general-elasticbeanstalkapplication"></a>

Configura il percorso dei controlli dello stato per l'applicazione. Per ulteriori informazioni, consultare [Report dello stato di base](using-features.healthstatus.md).


**Spazio dei nomi: `aws:elasticbeanstalk:application`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  URL dei controlli dello stato dell'applicazione  |  Il percorso al quale vengono inviate le richieste di controllo dello stato. Se questo percorso non è impostato, il servizio di bilanciamento del carico tenta di stabilire una connessione TCP sulla porta 80 per verificare lo stato dell'applicazione. Imposta un percorso che inizia con `/` per inviare una richiesta HTTP GET a quel percorso. Puoi anche includere un protocollo (HTTP, HTTPS, TCP o SSL) e la porta prima del percorso per verificare la connettività HTTPS o utilizzare una porta non di default.  Se utilizzi la console Elastic Beanstalk per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console sostituisce questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  Nessuna  |  I valori validi includono: `/` (HTTP GET al percorso root) `/health` `HTTPS:443/` `HTTPS:443/health`  | 

La console Elastic Beanstalk e la CLI EB applicano i valori consigliati per le opzioni precedenti. Rimuovi queste impostazioni se desideri utilizzare i file di configurazione per configurare le stesse opzioni. Per informazioni dettagliate, consulta [Valori consigliati](command-options.md#configuration-options-recommendedvalues).

## aws:elasticbeanstalk:application:environment
<a name="command-options-general-elasticbeanstalkapplicationenvironment"></a>

Configura le proprietà di ambiente per l'applicazione.


**Spazio dei nomi: `aws:elasticbeanstalk:application:environment`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  Qualsiasi nome di variabile di ambiente.  |  Da passare in coppie chiave-valore.  |  Nessuna  |  Qualsiasi valore di variabile di ambiente.  | 

Per ulteriori informazioni, consulta [Variabili di ambiente e altre impostazioni software](environments-cfg-softwaresettings.md).

## aws:elasticbeanstalk:application:environmentsecrets
<a name="command-options-general-elasticbeanstalk-application-environmentsecrets"></a>

*Configura le variabili di ambiente in modo che fungano da segreti di ambiente per la tua applicazione.* I segreti di ambiente memorizzano Gestione dei segreti AWS segreti o AWS Systems Manager parametri di Parameter Store.


**Spazio dei nomi: `aws:elasticbeanstalk:application:environmentsecrets`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  OptionName  |  Speciifica il nome della variabile di ambiente che contiene il valore dell'archivio segreto o dell'archivio dei parametri.  |  Nessuno  | Qualsiasi nome di variabile di ambiente. | 
|  Valore  |  Specifica l'ARN per il valore memorizzato Gestione dei segreti AWS nel AWS Systems Manager nostro Parameter Store. Durante il bootstrap dell'istanza, Elastic Beanstalk avvia la variabile di ambiente sul valore memorizzato in questa risorsa ARN.  Assicurati che siano disponibili le autorizzazioni necessarie per il ruolo del profilo dell'istanza EC2 del tuo ambiente per accedere al segreto e al parametro. ARNs Per ulteriori informazioni, consulta [Autorizzazioni IAM richieste](AWSHowTo.secrets.IAM-permissions.md).   |  Nessuno  |  Valore ARN valido per un valore del AWS Systems Manager parametro Gestione dei segreti AWS segreto o Parameter Store.  | 

Per ulteriori informazioni, consulta [Configurazione dei segreti come variabili di ambiente](AWSHowTo.secrets.env-vars.md).

## aws:elasticbeanstalk:cloudwatch:logs
<a name="command-options-general-cloudwatchlogs"></a>

Configura lo streaming dei log delle istanze per l'applicazione.


**Spazio dei nomi: `aws:elasticbeanstalk:cloudwatch:logs`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  StreamLogs  |  Speciifica se creare gruppi nei CloudWatch registri per i registri di proxy e distribuzione e i log di streaming da ogni istanza dell'ambiente.  |  `false`  |  `true` `false`  | 
|  DeleteOnTerminate  |  Specifica se eliminare i gruppi di log quando l'ambiente viene terminato. Se l'opzione è impostata su `false`, i log vengono conservati per `RetentionInDays` giorni.  |  `false`  |  `true` `false`  | 
|  RetentionInDays  |  Il numero di giorni durante i quali conservare gli eventi di log prima della scadenza.  |  7  |  1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 3653  | 

## aws:elasticbeanstalk:cloudwatch:logs:health
<a name="command-options-general-cloudwatchlogs-health"></a>

Configura lo streaming dei log sullo stato dell'ambiente per l'applicazione.


**Spazio dei nomi: `aws:elasticbeanstalk:cloudwatch:logs:health`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  HealthStreamingEnabled  |  Per gli ambienti con report sullo stato avanzato abilitati, specifica se creare un gruppo in CloudWatch Logs for environment health e archiviare i dati sullo stato dell'ambiente Elastic Beanstalk. Per informazioni sull'abilitazione di informazioni sullo stato avanzate, consulta [`aws:elasticbeanstalk:healthreporting:system`](#command-options-general-elasticbeanstalkhealthreporting).  |  `false`  |  `true` `false`  | 
|  DeleteOnTerminate  |  Specifica se eliminare il gruppo di log quando viene terminato l'ambiente. Se è `false`, i dati sullo stato vengono conservati per `RetentionInDays` giorni.  |  `false`  |  `true` `false`  | 
|  RetentionInDays  |  Numero di giorni per cui conservare i dati sullo stato archiviati prima che scadano.  |  7  |  1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 3653  | 

## aws:elasticbeanstalk:command
<a name="command-options-general-elasticbeanstalkcommand"></a>

Configura la policy di distribuzione per il codice dell'applicazione. Per ulteriori informazioni, consultare [Impostazioni e policy di distribuzione](using-features.rolling-version-deploy.md).


**Spazio dei nomi: `aws:elasticbeanstalk:command`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  DeploymentPolicy  |  Scegli una [policy di distribuzione](using-features.rolling-version-deploy.md) per le distribuzioni della versione dell'applicazione.  Se utilizzi la console Elastic Beanstalk per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console sostituisce questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  `AllAtOnce`  |  `AllAtOnce` `Rolling` `RollingWithAdditionalBatch` `Immutable` `TrafficSplitting`  | 
|  Timeout  |  Il tempo di attesa, espresso in secondi, per il completamento dell'esecuzione dei comandi da parte di un'istanza. Elastic Beanstalk aggiunge internamente 240 secondi (quattro minuti) al valore `Timeout`. Ad esempio, il timeout effettivo per impostazione predefinita è 840 secondi (600\$1240) o 14 minuti.  |  `600`   |  `1` Da a `3600`  | 
|  BatchSizeType  |  Il tipo di numero specificato in. **BatchSize**  Se utilizzi la console Elastic Beanstalk o la CLI EB per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console e CLI EB sostituiscono questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  `Percentage`   |  `Percentage`  `Fixed`   | 
|  BatchSize  |  La percentuale o il numero fisso di istanze Amazon EC2 nel gruppo Auto Scaling su cui eseguire distribuzioni simultaneamente. I valori validi variano a seconda dell'**BatchSizeType**impostazione utilizzata.  Se utilizzi la console Elastic Beanstalk o la CLI EB per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console e CLI EB sostituiscono questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  `100`   |  Da `1` a `100` (`Percentage`). `1`a [aws:autoscaling:asg](#command-options-general-autoscalingasg):: () MaxSize `Fixed`  | 
|  IgnoreHealthCheck  |  Non annullare una distribuzione non riuscita a causa del mancato superamento dei controlli dello stato.  | false  |  `true`  `false`   | 

## aws:elasticbeanstalk:environment
<a name="command-options-general-elasticbeanstalkenvironment"></a>

Configura il ruolo di servizio e l'architettura dell'ambiente.


**Spazio dei nomi: `aws:elasticbeanstalk:environment`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  EnvironmentType  |  Imposta il valore `SingleInstance` per avviare un'istanza EC2 senza sistema di bilanciamento del carico.  |  `LoadBalanced`   |  `SingleInstance`  `LoadBalanced`   | 
|  ServiceRole  |  Il nome di un ruolo IAM che Elastic Beanstalk utilizza per gestire le risorse per l'ambiente. Specifica il nome di un ruolo (facoltativamente preceduto da un percorso personalizzato) o il suo ARN. Esempi: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html)  Se utilizzi la console Elastic Beanstalk o la CLI EB per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console e CLI EB sostituiscono questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  Nessuna  |  Nome del ruolo IAM, percorso/nome o ARN  | 
|  LoadBalancerType  |  Il tipo di sistema di bilanciamento del carico per l'ambiente. Per ulteriori informazioni, consultare [Sistema di bilanciamento del carico per l'ambiente Elastic Beanstalk](using-features.managing.elb.md).  |  `classic`  |  `classic` `application` `network`  | 
|  LoadBalancerIsShared  |  Specifica se il bilanciamento del carico dell'ambiente è dedicato o condiviso. Questa opzione può essere impostata solo per un sistema Application Load Balancer. Non può essere modificata dopo che l'ambiente è stato creato. Se è `false`, l'ambiente dispone di un proprio sistema di bilanciamento del carico dedicato, creato e gestito da Elastic Beanstalk. Quando `true`, l'ambiente utilizza un sistema di bilanciamento del carico condiviso, creato dall'utente e specificato nell'opzione `SharedLoadBalancer` dello spazio dei nomi [aws:elbv2:loadbalancer](#command-options-general-elbv2).  |   `false`   |   `true`   `false`   | 

## aws:elasticbeanstalk:environment:process:default
<a name="command-options-general-environmentprocess"></a>

Configura il processo di default dell'ambiente.


**Spazio dei nomi: `aws:elasticbeanstalk:environment:process:default`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  DeregistrationDelay  |  Il tempo di attesa, espresso in secondi, necessario al completamento delle richieste attive prima che venga annullata la registrazione di un'istanza.  |  `20`  |  `0` Da a `3600`  | 
|  HealthCheckInterval  |  L'intervallo di tempo, espresso in secondi, nel quale Elastic Load Balancing controllerà lo stato delle istanze Amazon EC2 dell'applicazione.  |  Con Classic Load Balancer o Application Load Balancer: `15` Con Network Load Balancer: `30`  |  Con Classic Load Balancer o Application Load Balancer: da `5` a `300` Con Network Load Balancer: `10`, `30`  | 
|  HealthCheckPath  |  Il percorso al quale vengono inviate le richieste HTTP per i controlli dello stato.  |  `/`   |  Un percorso instradabile.  | 
|  HealthCheckTimeout  |  Il tempo di attesa, in secondi, per una risposta durante un controllo dello stato. Questa opzione è applicabile solo agli ambienti con un Application Load Balancer.  |  `5`  |  `1` Da a `60`  | 
|  HealthyThresholdCount  |  Il numero delle richieste consecutive riuscite prima che Elastic Load Balancing modifichi lo stato dell'istanza.  |  Con Classic Load Balancer o Application Load Balancer: `3` Con Network Load Balancer: `5`  |  `2` Da a `10`  | 
|  MatcherHTTPCode  |  Elenco con valori separati da virgola di codici HTTP che indicano che un'istanza è integra. Questa opzione è applicabile solo agli ambienti con un Application Load Balancer o una rete.  |  `200`  |  Con Application Load Balancer: da `200` a `499` Con Network Load Balancer: da `200` a `399`  | 
|  Port  |  La porta sulla quale il processo è in ascolto.  |  `80`  |  `1` Da a `65535`  | 
|  Protocol  |  Il protocollo utilizzato dal processo. Con un Application Load Balancer, puoi impostare questa opzione solo su `HTTP` o `HTTPS`. Con un Network Load Balancer, puoi impostare questa opzione solo su `TCP`.  |  Con Classic Load Balancer o Application Load Balancer: `HTTP` Con Network Load Balancer: `TCP`  |  `TCP` `HTTP` `HTTPS`  | 
|  StickinessEnabled  |  Imposta il valore true per attivare le sticky session. Questa opzione è applicabile solo agli ambienti con un Application Load Balancer.  |  `'false'`  |  `'false'` `'true'`  | 
|  StickinessLBCookieDuration  |  La durata, in secondi, del cookie delle sticky session. Questa opzione è applicabile solo agli ambienti con un Application Load Balancer.  |  `86400` (un giorno)  |  `1` Da a `604800`  | 
|  StickinessType  |  Imposta il valore `lb_cookie` per utilizzare cookie per le sticky session. Questa opzione è applicabile solo agli ambienti con un Application Load Balancer.  |  `lb_cookie`  |  `lb_cookie`  | 
|  UnhealthyThresholdCount  |  Il numero delle richieste consecutive non riuscite prima che Elastic Load Balancing modifichi lo stato dell'istanza.  |  `5`  |  `2` Da a `10`  | 

## aws:elasticbeanstalk:environment:process:process\$1name
<a name="command-options-general-environmentprocess-process"></a>

Configura ulteriori processi per l'ambiente.


**Spazio dei nomi: `aws:elasticbeanstalk:environment:process:process_name`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  DeregistrationDelay  |  Il tempo di attesa, espresso in secondi, necessario al completamento delle richieste attive prima che venga annullata la registrazione di un'istanza.  |  `20`  |  `0` Da a `3600`  | 
|  HealthCheckInterval  |  L'intervallo, in secondi, in cui Elastic Load Balancing controlla lo stato delle istanze Amazon EC2 per la tua applicazione.  |  Con Classic Load Balancer o Application Load Balancer: `15` Con Network Load Balancer: `30`  |  Con Classic Load Balancer o Application Load Balancer: da `5` a `300` Con Network Load Balancer: `10`, `30`  | 
|  HealthCheckPath  |  Il percorso al quale vengono inviate le richieste HTTP per i controlli dello stato.  |  `/`   |  Un percorso instradabile.  | 
|  HealthCheckTimeout  |  Il tempo di attesa, in secondi, per una risposta durante un controllo dello stato. Questa opzione è applicabile solo agli ambienti con un Application Load Balancer.  |  `5`  |  `1` Da a `60`  | 
|  HealthyThresholdCount  |  Il numero delle richieste consecutive riuscite prima che Elastic Load Balancing modifichi lo stato dell'istanza.  |  Con Classic Load Balancer o Application Load Balancer: `3` Con Network Load Balancer: `5`  |  `2` Da a `10`  | 
|  MatcherHTTPCode  |  Elenco con valori separati da virgola di codici HTTP che indicano che un'istanza è integra. Questa opzione è applicabile solo agli ambienti con un Application Load Balancer o una rete.  |  `200`  |  Con Application Load Balancer: da `200` a `499` Con Network Load Balancer: da `200` a `399`  | 
|  Port  |  La porta su cui il processo è in ascolto.  |  `80`  |  `1` Da a `65535`  | 
|  Protocol  |  Il protocollo utilizzato dal processo. Con un Application Load Balancer, puoi impostare questa opzione solo su `HTTP` o `HTTPS`. Con un Network Load Balancer, puoi impostare questa opzione solo su `TCP`.  |  Con Classic Load Balancer o Application Load Balancer: `HTTP` Con Network Load Balancer: `TCP`  |  `TCP` `HTTP` `HTTPS`  | 
|  StickinessEnabled  |  Imposta il valore true per attivare le sticky session. Questa opzione è applicabile solo agli ambienti con un Application Load Balancer.  |  `'false'`  |  `'false'` `'true'`  | 
|  StickinessLBCookieDuration  |  La durata, in secondi, del cookie delle sticky session. Questa opzione è applicabile solo agli ambienti con un Application Load Balancer.  |  `86400` (un giorno)  |  `1` Da a `604800`  | 
|  StickinessType  |  Imposta il valore `lb_cookie` per utilizzare cookie per le sticky session. Questa opzione è applicabile solo agli ambienti con un Application Load Balancer.  |  `lb_cookie`  |  `lb_cookie`  | 
|  UnhealthyThresholdCount  |  Il numero delle richieste consecutive non riuscite prima che Elastic Load Balancing modifichi lo stato dell'istanza.  |  `5`  |  `2` Da a `10`  | 

## aws:elasticbeanstalk:environment:proxy:staticfiles
<a name="command-options-general-environmentproxystaticfiles"></a>

Puoi utilizzare il namespace seguente per configurare il server proxy per l'elaborazione dei file statici. Quando il server proxy riceve una richiesta da un file nel percorso specificato, questo serve il file direttamente anziché instradare la richiesta all'applicazione. In questo modo viene ridotta la quantità di richieste eseguibili dall'applicazione.

Effettua il mapping di un percorso servito dal server proxy su una cartella nel codice sorgente contenente asset statici. Ciascuna opzione da te definita in questo namespace mappa un percorso differente.

**Nota**  
Questo spazio dei nomi si applica alle ramificazioni della piattaforma basate su Amazon Linux 2 e versioni successive. Se l'ambiente utilizza una versione della piattaforma basata su AMI Amazon Linux (precedente Amazon Linux 2), consulta [Opzioni specifiche della piattaforma](command-options-specific.md)per gli spazi dei nomi dei file statici specifici della piattaforma.


**Spazio dei nomi: `aws:elasticbeanstalk:environment:proxy:staticfiles`**  

| **Nome**  | **Valore**  | 
| --- | --- | 
|  Il percorso in cui il server proxy servirà i file. Iniziare il valore con `/`. Ad esempio, specificare `/images` per servire i file in `subdomain.eleasticbeanstalk.com/images`.  |  Il nome della cartella contenente i file. Ad esempio, specificare `staticimages` per servire i file da una cartella denominata `staticimages` al primo livello del bundle di origine.  | 

## aws:elasticbeanstalk:healthreporting:system
<a name="command-options-general-elasticbeanstalkhealthreporting"></a>

Configura il reporting sullo stato migliorato per l'ambiente.


**Spazio dei nomi: `aws:elasticbeanstalk:healthreporting:system`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  SystemType  |  Il sistema di reporting dello stato ([di base](using-features.healthstatus.md) o [migliorato](health-enhanced.md)). Il reporting sullo stato migliorato richiede un [ruolo di servizio](concepts-roles-service.md) e una [versione della piattaforma](concepts.platforms.md) v2 o successiva.  Se utilizzi la console Elastic Beanstalk o la CLI EB per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console e CLI EB sostituiscono questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  `basic`   |  `basic`  `enhanced`   | 
| ConfigDocument | Un documento JSON che descrive l'ambiente e le metriche dell'istanza su cui pubblicare. CloudWatch | Nessuno |  | 
|  EnhancedHealthAuthEnabled  |  Abilita l'autorizzazione per l'API interna utilizzata da Elastic Beanstalk per comunicare informazioni avanzate sullo stato dalle istanze dell'ambiente al servizio Elastic Beanstalk. Per ulteriori informazioni, consultare [Ruoli dello stato migliorato](health-enhanced.md#health-enhanced-roles).  Questa opzione è applicabile solo alle segnalazioni avanzate sullo stato (ad esempio, quando `SystemType` è impostato su `enhanced`).   |  `true`   |  `true`  `false`   | 
|  HealthCheckSuccessThreshold  |  Abbassa la soglia dei controlli dello stato per le istanze.  Se utilizzi la console Elastic Beanstalk per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console sostituisce questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  `Ok`  |  `Ok` `Warning` `Degraded` `Severe`  | 

## aws:elasticbeanstalk:hostmanager
<a name="command-options-general-elasticbeanstalkhostmanager"></a>

Configura le istanze EC2 nell'ambiente per caricare i log ruotati in Amazon S3.


**Spazio dei nomi: `aws:elasticbeanstalk:hostmanager`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | Valori validi | 
| --- | --- | --- | --- | 
|  LogPublicationControl  |  Copia i file di log delle istanze Amazon EC2 dell'applicazione nel bucket Amazon S3 associato all'applicazione.  |  `false`   |  `true`  `false`   | 

## aws:elasticbeanstalk:managedactions
<a name="command-options-general-elasticbeanstalkmanagedactions"></a>

Configura gli aggiornamenti gestiti della piattaforma per l'ambiente.


**Spazio dei nomi: `aws:elasticbeanstalk:managedactions`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  ManagedActionsEnabled  |  Attiva gli [aggiornamenti gestiti della piattaforma](environment-platform-update-managed.md#environment-platform-update-managed-namespace). Quando imposti il valore `true`, devi anche specificare `PreferredStartTime` e `UpdateLevel`.  |  `false`   |  `true`  `false`   | 
|  PreferredStartTime  |  Configura una finestra di manutenzione per le azioni gestite in UTC. Ad esempio, `"Tue:09:00"`.  |  Nessuna  |  Giorno e ora nel formato  *day*:*hour*:*minute*  .  | 
|  ServiceRoleForManagedUpdates  |  Nome di un ruolo IAM utilizzato da Elastic Beanstalk per eseguire aggiornamenti della piattaforma gestita per l'ambiente in uso. È possibile utilizzare lo stesso ruolo specificato per l'opzione `ServiceRole` dello spazio dei nomi `aws:elasticbeanstalk:environment` oppure il [ruolo collegato al servizio degli aggiornamenti gestiti](using-service-linked-roles-managedupdates.md) dell'account. In quest'ultimo caso, se l'account non dispone ancora di un ruolo collegato al servizio degli aggiornamenti gestiti, Elastic Beanstalk crea tale ruolo.  |  Nessuna  |  Come `ServiceRole`. oppure `AWSServiceRoleForElasticBeanstalkManagedUpdates`  | 

## aws:elasticbeanstalk:managedactions:platformupdate
<a name="command-options-general-elasticbeanstalkmanagedactionsplatformupdate"></a>

Configura gli aggiornamenti gestiti della piattaforma per l'ambiente.


**Spazio dei nomi: `aws:elasticbeanstalk:managedactions:platformupdate`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  UpdateLevel  |  Il livello più elevato di aggiornamento da applicare agli aggiornamenti gestiti della piattaforma. Le piattaforme sono dotate di versioni. *major* *minor*. *patch*. Ad esempio, 2.0.8 ha una versione principale 2, una versione secondaria 0 e una versione patch 8.  |  Nessuna  |  `patch` solo per gli aggiornamenti delle versioni patch. `minor` per gli aggiornamenti delle versioni secondarie e patch.  | 
|  InstanceRefreshEnabled  |  Abilita la sostituzione settimanale delle istanze. Richiede che `ManagedActionsEnabled` sia impostato su `true`.  | false |  `true`  `false`   | 

## aws:elasticbeanstalk:monitoring
<a name="command-options-general-elasticbeanstalkmonitoring"></a>

Configura l'ambiente per terminare le istanze EC2 che non superano i controlli dello stato.


**Spazio dei nomi: `aws:elasticbeanstalk:monitoring`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  Automatically Terminate Unhealthy Instances  |  Termina un'istanza se non supera i controlli dello stato.  Questa opzione era supportata solo in [ambienti legacy](using-features.migration.md). Determinava l'integrità di un'istanza in base alla possibilità di raggiungerla e in base ad altri parametri d'istanza. Elastic Beanstalk non fornisce un modo per terminare automaticamente le istanze in base allo stato dell'applicazione.   |  `true`   |  `true`  `false`   | 

## aws:elasticbeanstalk:sns:topics
<a name="command-options-general-elasticbeanstalksnstopics"></a>

Configura notifiche per l'ambiente.


**Spazio dei nomi: `aws:elasticbeanstalk:sns:topics`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  Notification Endpoint  |  L'endpoint in cui intendi ricevere le notifiche di importanti eventi che riguardano la tua applicazione.  Se utilizzi la console Elastic Beanstalk per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console sostituisce questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  Nessuno  |    | 
|  Notification Protocol  |  Il protocollo utilizzato per inviare notifiche all'endpoint.  |  `email`   |  `http`  `https`  `email`  `email-json`  `sqs`   | 
|  Notification Topic ARN  |  L'Amazon Resource Name (ARN) dell'argomento a cui hai effettuato la sottoscrizione.  |  Nessuna  |    | 
|  Notification Topic Name  |  Il nome dell'argomento a cui hai effettuato la sottoscrizione.  |  Nessuna  |    | 

## aws:elasticbeanstalk:sqsd
<a name="command-options-general-elasticbeanstalksqsd"></a>

Configura la coda Amazon SQS per un ambiente worker.


**Spazio dei nomi: `aws:elasticbeanstalk:sqsd`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  WorkerQueueURL  |  L'URL della coda da cui il daemon nel livello ambiente lavoratore legge i messaggi.  Quando non specifichi un valore, la coda creata automaticamente da Elastic Beanstalk è una coda [standard](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/standard-queues.html) di Amazon SQS. Quando fornisci un valore, puoi fornire l'URL di una coda Amazon SQS [FIFO](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html) o standard. Se si fornisce una coda FIFO, le [ attività periodiche](using-features-managing-env-tiers.md#worker-periodictasks) non sono supportate.   |  generato automaticamente  |  Se non specifichi un valore, Elastic Beanstalk crea automaticamente una coda.  | 
|  HttpPath  |  Il percorso relativo all'applicazione alla quale vengono inviati messaggi HTTP POST.  |  /  |   | 
|  MimeType  |  Il tipo MIME del messaggio inviato nella richiesta HTTP POST.  |  `application/json`   |  `application/json`  `application/x-www-form-urlencoded`  `application/xml`  `text/plain`  Il tipo MIME personalizzato.  | 
|  HttpConnections  |  Il numero massimo di connessioni simultanee a qualsiasi applicazione all'interno di un'istanza Amazon EC2.  Se utilizzi la console Elastic Beanstalk per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console sostituisce questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  `50`   |  `1` Da a `100`  | 
|  ConnectTimeout  |  Il periodo di attesa, in secondi, per connessioni riuscite a un'applicazione.  |  `5`   |  `1` Da a `60`  | 
|  InactivityTimeout  | Il periodo di attesa, in secondi, per una risposta su una connessione esistente a un'applicazione.Il messaggio viene rielaborato fino a che il daemon riceve una risposta 200 (OK) dall'applicazione nel livello ambiente lavoratore o RetentionPeriod scade. |  `299`   |  `1` Da a `36000`  | 
|  VisibilityTimeout  |  Il periodo di tempo, in secondi, durante il quale un messaggio in entrata dalla coda Amazon SQS viene bloccato per l'elaborazione. Trascorso il periodo di tempo impostato, il messaggio è di nuovo visibile nella coda per la lettura con qualsiasi altro daemon.  |  300  |  `0` Da a `43200`  | 
|  ErrorVisibilityTimeout  |  Il periodo di tempo, in secondi, prima che Elastic Beanstalk restituisca un messaggio alla coda Amazon SQS dopo un tentativo di elaborazione non riuscito con errore esplicito.  |  `2` secondi  |  Da `0` a `43200` secondi  | 
|  RetentionPeriod  |  Il periodo di tempo, in secondi, durante il quale un messaggio è valido e viene elaborato attivamente.  |  `345600`   |  `60` Da a `1209600`  | 
|  MaxRetries  |  Il numero massimo di tentativi che Elastic Beanstalk effettua per inviare il messaggio all'applicazione Web che lo elaborerà prima di spostare il messaggio nella coda DLQ.  |   `10`   |  `1` Da a `100`  | 

## aws:elasticbeanstalk:trafficsplitting
<a name="command-options-general-elasticbeanstalktrafficsplitting"></a>

Configura le distribuzioni con suddivisione del traffico per l'ambiente in uso.

Questo spazio dei nomi si applica quando imposti l'opzione `DeploymentPolicy` dello spazio dei nomi [aws:elasticbeanstalk:command](#command-options-general-elasticbeanstalkcommand) su `TrafficSplitting`. Per ulteriori informazioni sulle policy di distribuzione, consulta [Impostazioni e policy di distribuzione](using-features.rolling-version-deploy.md).


**Spazio dei nomi: `aws:elasticbeanstalk:trafficsplitting`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  NewVersionPercent  |  Percentuale iniziale di traffico client in entrata che Elastic Beanstalk passa alle istanze dell'ambiente che eseguono la nuova versione dell'applicazione che stai distribuendo.  |   `10`   |  `1` Da a `100`  | 
|  EvaluationTime  |  Tempo di attesa espresso in minuti per Elastic Beanstalk dopo una distribuzione iniziale integra prima di procedere allo spostamento di tutto il traffico client in entrata alla nuova versione dell'applicazione che stai distribuendo.  |   `5`   |  `3` Da a `600`  | 

## aws:elasticbeanstalk:xray
<a name="command-options-general-elasticbeanstalkxray"></a>

[Esegui il AWS X-Ray daemon per inoltrare le informazioni di traccia dall'applicazione integrata X-Ray.](environment-configuration-debugging.md)


**Spazio dei nomi: `aws:elasticbeanstalk:xray`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  `XRayEnabled`  |  Imposta su `true` per eseguire il daemon X-Ray sulle istanze nell'ambiente.  |  `false`  |  `true` `false`  | 

## aws:elb:healthcheck
<a name="command-options-general-elbhealthcheck"></a>

Configura i controlli dello stato per un sistema Classic Load Balancer.


**Spazio dei nomi: `aws:elb:healthcheck`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  HealthyThreshold  |  Il numero delle richieste consecutive riuscite prima che Elastic Load Balancing modifichi lo stato dell'istanza.  |  `3`   |  `2` Da a `10`  | 
|  Interval  |  L'intervallo in cui Elastic Load Balancing controlla lo stato delle istanze Amazon EC2 dell'applicazione.  |  `10`   |  `5` Da a `300`  | 
|  Timeout  |  Il tempo, in secondi, nel quale Elastic Load Balancing attende una risposta prima di ritenere che l'istanza non risponde.  |  `5`   |  `2` Da a `60`  | 
|  UnhealthyThreshold  |  Il numero delle richieste consecutive non riuscite prima che Elastic Load Balancing modifichi lo stato dell'istanza.  |  `5`   |  `2` Da a `10`  | 
|  (Obsoleta) Target  |  La destinazione su un'istanza back-end alla quale vengono inviati i controlli dello stato. Utilizza piuttosto `Application Healthcheck URL` nel namespace [`aws:elasticbeanstalk:application`](#command-options-general-elasticbeanstalkapplication).  |  `TCP:80`   |  Target nel formato: *PROTOCOL* *PORT* */PATH*  | 

## aws:elb:loadbalancer
<a name="command-options-general-elbloadbalancer"></a>

Configura il sistema Classic Load Balancer dell'ambiente.

Molte delle opzioni in questo spazio dei nomi non sono più supportate e sono state sostituite da opzioni specifiche del listener nello spazio dei nomi [aws:elb:listener](#command-options-general-elblistener). Con queste opzioni che non sono più supportate è possibile configurare solo due listener (uno sicuro e uno non sicuro) sulle porte standard.


**Spazio dei nomi: `aws:elb:loadbalancer`**  

| Nome | Descrizione | Default | Valori validi | 
| --- | --- | --- | --- | 
|  CrossZone  |  Configura il sistema di bilanciamento del carico per instradare il traffico in modo uniforme su tutte le istanze in tutte le zone di disponibilità anziché solo all'interno di ogni zona.  Se utilizzi la console Elastic Beanstalk o la CLI EB per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console e CLI EB sostituiscono questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  `false`   |  `true`  `false`   | 
|  SecurityGroups  |  Assegna uno o più gruppi di sicurezza che hai creato per il sistema di bilanciamento del carico. Obbligatorio se `DisableDefaultEC2SecurityGroup` ([aws:autoscaling:launchconfiguration](#command-options-general-autoscalinglaunchconfiguration)) è impostato su`true`. Gli ambienti con bilanciamento del carico che hanno disattivato il gruppo di sicurezza Elastic Beanstalk EC2 predefinito devono fornire a uno o più gruppi di sicurezza questa opzione. Per ulteriori informazioni, consulta [Gestione dei gruppi di sicurezza EC2](using-features.managing.ec2.instances.sg.md).  |  Nessuno  |  Uno o più gruppi di sicurezza. IDs  | 
| ManagedSecurityGroup |  Assegna un gruppo di sicurezza esistente al sistema di bilanciamento del carico dell'ambiente, anziché crearne uno. Per utilizzare questa impostazione, aggiornare l'impostazione `SecurityGroups` in questo spazio dei nomi di modo che includa l'ID del gruppo di sicurezza e rimuovi l'ID del gruppo di protezione creato automaticamente, se ne è stato creato uno. Per consentire il traffico tra il sistema di bilanciamento del carico e le istanze EC2 dell'ambiente, Elastic Beanstalk aggiunge una regola al gruppo di sicurezza delle istanze che autorizza il traffico in entrata dal gruppo di sicurezza gestito.  | Nessuna | Un ID di gruppo di sicurezza. | 
|  (Obsoleta) LoadBalancerHTTPPort  | La porta sulla quale il listener non protetto è in ascolto.  |  `80`   |  `OFF`  `80`   | 
|  (Obsoleta) LoadBalancerPortProtocol  |  Il protocollo da utilizzare per il listener non protetto.  |  `HTTP`   |  `HTTP`  `TCP`   | 
|  (Obsoleta) LoadBalancerHTTPSPort  | La porta sulla quale il listener protetto è in ascolto. |  `OFF`   |  `OFF`  `443`  `8443`   | 
|  (Obsoleta) LoadBalancerSSLPortProtocol  | Il protocollo da utilizzare per il listener protetto. |  `HTTPS`   |  `HTTPS`  `SSL`   | 
|  (Obsoleta) SSLCertificateId  | L'Amazon Resource Name (ARN) di un certificato SSL da associare al listener protetto. |  Nessuna  |    | 

## aws:elb:listener
<a name="command-options-general-elblistener"></a>

Configura il listener di default (porta 80) su un sistema Classic Load Balancer.


**Spazio dei nomi: `aws:elb:listener`**  

| Nome | Descrizione | Default | Valori validi | 
| --- | --- | --- | --- | 
| ListenerProtocol | Il protocollo utilizzato dal listener. | HTTP  | HTTP TCP  | 
| InstancePort | La porta che questo listener utilizza per comunicare con le istanze EC2. | 80 | 1 Da a 65535 | 
| InstanceProtocol |  Il protocollo che questo listener utilizza per comunicare con le istanze EC2. Deve trovarsi allo stesso livello di protocollo Internet di `ListenerProtocol`. Deve avere anche lo stesso livello di sicurezza di qualsiasi altro listener che usa lo stesso oggetto `InstancePort` di questo listener. Se, ad esempio, `ListenerProtocol` è `HTTPS` (livello applicazione, con l'uso di una connessione sicura), puoi impostare `InstanceProtocol` su `HTTP` (sempre a livello applicazione, con l'uso di una connessione non sicura). Se, inoltre, imposti `InstancePort` su `80`, devi impostare `InstanceProtocol` su `HTTP` in tutti gli altri listener con il valore di `InstancePort` impostato su `80`.  |  `HTTP` quando `ListenerProtocol` è `HTTP` `TCP` quando `ListenerProtocol` è `TCP`  | HTTP o HTTPS quando ListenerProtocol è HTTP o HTTPS `TCP` o `SSL` quando `ListenerProtocol` è `TCP` o `SSL` | 
| PolicyNames | Un elenco di nomi di policy separati da virgole da applicare alla porta per questo listener. Ti consigliamo invece di utilizzare l' LoadBalancerPorts opzione del [aws:elb:policies](#command-options-general-elbpolicies) namespace. | Nessuno |  | 
| ListenerEnabled | Specifica se il listener è abilitato. Se si specifica false, il listener non viene incluso nel servizio di bilanciamento del carico.  | true |  `true` `false`  | 

## aws:elb:listener:listener\$1port
<a name="command-options-general-elblistener-listener"></a>

Configura ulteriori listener su un sistema Classic Load Balancer.


**Spazio dei nomi: `aws:elb:listener:listener_port`**  

| Nome | Descrizione | Default | Valori validi | 
| --- | --- | --- | --- | 
|  ListenerProtocol  | Il protocollo utilizzato dal listener. |  HTTP  |  HTTP HTTPS TCP SSL  | 
|  InstancePort  | La porta che questo listener utilizza per comunicare con le istanze EC2. | Uguale a. listener\$1port | 1 Da a 65535 | 
|  InstanceProtocol  |  Il protocollo che questo listener utilizza per comunicare con le istanze EC2. Deve trovarsi allo stesso livello di protocollo Internet di `ListenerProtocol`. Deve avere anche lo stesso livello di sicurezza di qualsiasi altro listener che usa lo stesso oggetto `InstancePort` di questo listener. Se, ad esempio, `ListenerProtocol` è `HTTPS` (livello applicazione, con l'uso di una connessione sicura), puoi impostare `InstanceProtocol` su `HTTP` (sempre a livello applicazione, con l'uso di una connessione non sicura). Se, inoltre, imposti `InstancePort` su `80`, devi impostare `InstanceProtocol` su `HTTP` in tutti gli altri listener con il valore di `InstancePort` impostato su `80`.  |  `HTTP` quando `ListenerProtocol` è `HTTP` o `HTTPS` `TCP` quando `ListenerProtocol` è `TCP` o `SSL`  | HTTP o HTTPS quando ListenerProtocol è HTTP o HTTPS `TCP` o `SSL` quando `ListenerProtocol` è `TCP` o `SSL` | 
|  PolicyNames  | Un elenco di nomi di policy separati da virgole da applicare alla porta per questo listener. Ti suggeriamo di utilizzare invece l' LoadBalancerPorts opzione del [aws:elb:policies](#command-options-general-elbpolicies) namespace. | Nessuno |  | 
|  SSLCertificateId  | L'Amazon Resource Name (ARN) di un certificato SSL da associare al listener. |  Nessuna  |  | 
|  ListenerEnabled  | Specifica se il listener è abilitato. Se si specifica false, il listener non viene incluso nel servizio di bilanciamento del carico.  | true se è impostata una qualsiasi altra opzione; altrimenti false. |  true false  | 

## aws:elb:policies
<a name="command-options-general-elbpolicies"></a>

Modifica l'adesione di default e le policy globali di sistema di bilanciamento del carico per un sistema Classic Load Balancer.


**Spazio dei nomi: `aws:elb:policies`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  ConnectionDrainingEnabled  |  Specifica se il sistema di bilanciamento del carico mantiene le connessioni esistenti alle istanze che non sono più integre o la cui registrazione è stata annullata per completare le richieste in corso.  Se utilizzi la console Elastic Beanstalk o la CLI EB per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console e CLI EB sostituiscono questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  `false`   |  `true`  `false`   | 
|  ConnectionDrainingTimeout  |  Il periodo di tempo massimo in secondi durante il quale il sistema di bilanciamento del carico mantiene le connessioni esistenti a un'istanza durante il connection draining prima di forzare la chiusura delle connessioni.  Se utilizzi la console Elastic Beanstalk per creare un ambiente, non puoi impostare questa opzione in un [file di configurazione](ebextensions.md). La console sostituisce questa opzione con un [valore consigliato](command-options.md#configuration-options-recommendedvalues).   |  `20`   |  `1` Da a `3600`  | 
|  ConnectionSettingIdleTimeout  |  Il periodo di tempo, espresso in secondi, durante il quale il sistema di bilanciamento del carico attende eventuali dati inviati o ricevuti tramite la connessione. Se non vengono inviati o ricevuti dati allo scadere di questo periodo di tempo, il sistema di bilanciamento del carico chiude la connessione.  |  `60`   |  `1` Da a `3600`  | 
| LoadBalancerPorts |  Un elenco di porte di listener separate da virgole a cui viene applicata la policy di default (`AWSEB-ELB-StickinessPolicy`).  | Nessuna | Puoi utilizzare :all per indicare tutte le porte di listener | 
|  Stickiness Cookie Expiration  |  Il periodo di validità, in secondi, di ogni cookie. Utilizza la policy di default (`AWSEB-ELB-StickinessPolicy`).  |   `0`   |  `0` Da a `1000000`  | 
|  Stickiness Policy  |  Associa una sessione utente a una determinata istanza del server, in modo che tutte le richieste provenienti dall'utente durante la sessione siano inviate alla stessa istanza del server. Utilizza la policy di default (`AWSEB-ELB-StickinessPolicy`).  |   `false`   |  true false  | 

## aws:elb:policies:policy\$1name
<a name="command-options-general-elbpolicies-custom"></a>

Crea ulteriori policy per un sistema di bilanciamento del carico per Classic Load Balancer.


**Spazio dei nomi: `aws:elb:policies:policy_name`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  CookieName  | Il nome del cookie generato dall'applicazione che controlla la durata delle sessioni di una policy AppCookieStickinessPolicyType. Questa politica può essere associata HTTP/HTTPS solo agli ascoltatori.  | Nessuno |  | 
|  InstancePorts  |  Un elenco di porte di istanza separate da virgole a cui questa policy viene applicata.  | Nessuna | Un elenco di porte o :all | 
|  LoadBalancerPorts  |  Un elenco di porte di listener separate da virgole a cui questa policy viene applicata.  | Nessuna | Un elenco di porte o :all | 
|  ProxyProtocol  |  Per una policy `ProxyProtocolPolicyType`, specifica se includere l'indirizzo IP e la porta della richiesta d'origine per i messaggi TCP. Questa politica può essere associata solo agli TCP/SSL ascoltatori.  | Nessuno | true false  | 
|  PublicKey  |  Il contenuto di una chiave pubblica per una policy `PublicKeyPolicyType` da utilizzare durante l'autenticazione di uno o più server di back-end. Questa policy non può essere applicata direttamente ai server di back-end o ai listener. Deve far parte di una policy `BackendServerAuthenticationPolicyType`.  | Nessuno |  | 
|  PublicKeyPolicyNames  |  Un elenco di nomi di policy separati da virgole (a partire dalle policy `PublicKeyPolicyType`) per una policy `BackendServerAuthenticationPolicyType` che controlla l'autenticazione su uno o più server di back-end o un server. Questa policy può essere associata solo a server di back-end che utilizzano HTTPS/SSL.  | Nessuno |  | 
|  SSLProtocols  |  Un elenco di protocolli SSL separati da virgole da attivare per una policy `SSLNegotiationPolicyType` che definisce le crittografie e i protocolli che sono accettati dal sistema di bilanciamento del carico. Questa politica può essere associata solo agli HTTPS/SSL ascoltatori.  | Nessuno |  | 
|  SSLReferencePolicy  |  Il nome di una politica di sicurezza predefinita che aderisce alle migliori pratiche di AWS sicurezza e che si desidera attivare per una `SSLNegotiationPolicyType` politica che definisce i codici e i protocolli accettati dal load balancer. Questa politica può essere associata solo ai listener. HTTPS/SSL   | Nessuno |  | 
|  Stickiness Cookie Expiration  |  Il periodo di validità, in secondi, di ogni cookie.  |  `0`   |  `0` Da a `1000000`  | 
|  Stickiness Policy  |  Associa una sessione utente a una determinata istanza del server, in modo che tutte le richieste provenienti dall'utente durante la sessione siano inviate alla stessa istanza del server.  |  `false`   | true false  | 

## aws:elbv2:listener:default
<a name="command-options-general-elbv2-listener-default"></a>

Configura il listener di default (porta 80) su un sistema Application Load Balancer o un sistema Network Load Balancer.

Questo spazio dei nomi non si applica a un ambiente che utilizza un sistema di bilanciamento del carico condiviso. I sistemi di bilanciamento del carico condivisi non dispongono di un listener predefinito.


**Spazio dei nomi: `aws:elbv2:listener:default`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  DefaultProcess  |  Il nome del [processo](#command-options-general-environmentprocess) a cui inoltrare il traffico quando non vi sono regole corrispondenti.  |  `default`  |  Un nome di processo.  | 
|  ListenerEnabled  |  Imposta il valore `false` per disabilitare il listener. Puoi utilizzare questa opzione per disabilitare il listener di default sulla porta 80.  |  `true`  |  `true` `false`  | 
|  Protocol  |  Il protocollo di traffico da elaborare.  |  Con Application Load Balancer: `HTTP` Con Network Load Balancer: `TCP`  |  Con Application Load Balancer: `HTTP`, `HTTPS` Con Network Load Balancer: `TCP`  | 
|  Rules  |  Un elenco di [regole](#command-options-general-elbv2-listenerrule) da applicare al listener Questa opzione è applicabile solo agli ambienti con un sistema Application Load Balancer.  |  Nessuna  |  Un elenco separato da virgole di nomi di regole.  | 
|  SSLCertificateArns  |  L'Amazon Resource Name (ARN) del certificato SSL da associare al listener. Questa opzione è applicabile solo agli ambienti con un sistema Application Load Balancer.  |  Nessuna  |  L'ARN di un certificato archiviato in IAM o ACM.  | 
|  SSLPolicy  |  Specifica una policy di sicurezza da applicare al listener. Questa opzione è applicabile solo agli ambienti con un sistema Application Load Balancer.  | Nessuno (valore di default ELB) |  Il nome di una policy di sicurezza per sistema di bilanciamento del carico.  | 

## aws:elbv2:listener:listener\$1port
<a name="command-options-general-elbv2-listener"></a>

Configura ulteriori listener su un sistema Application Load Balancer o un sistema Network Load Balancer.

**Nota**  
Per un sistema Application Load Balancer condiviso, puoi specificare solo l'opzione `Rule`. Le altre opzioni non sono applicabili ai sistemi di bilanciamento del carico condivisi.


**Spazio dei nomi: `aws:elbv2:listener:listener_port`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  DefaultProcess  |  Il nome del [processo](#command-options-general-environmentprocess) a cui viene inoltrato il traffico quando non vi sono regole corrispondenti.  |  `default`  |  Un nome di processo.  | 
|  ListenerEnabled  |  Imposta il valore `false` per disabilitare il listener. Puoi utilizzare questa opzione per disabilitare il listener di default sulla porta 80.  |  `true`  |  `true` `false`  | 
|  Protocol  |  Il protocollo di traffico da elaborare.  |  Con Application Load Balancer: `HTTP` Con Network Load Balancer: `TCP`  |  Con Application Load Balancer: `HTTP`, `HTTPS` Con Network Load Balancer: `TCP`  | 
|  Rules  |  Un elenco di [regole](#command-options-general-elbv2-listenerrule) da applicare al listener. Questa opzione è applicabile solo agli ambienti con un sistema Application Load Balancer. Se l'ambiente utilizza un Application Load Balancer condiviso e non specifichi questa opzione per nessun listener, Elastic Beanstalk associa automaticamente la regola `default` a un listener della porta 80.  |  Nessuna  |  Un elenco separato da virgole di nomi di regole.  | 
|  SSLCertificateArns  |  L'Amazon Resource Name (ARN) del certificato SSL da associare al listener. Questa opzione è applicabile solo agli ambienti con un sistema Application Load Balancer.  |  Nessuna  |  L'ARN di un certificato archiviato in IAM o ACM.  | 
|  SSLPolicy  |  Specifica una policy di sicurezza da applicare al listener. Questa opzione è applicabile solo agli ambienti con un sistema Application Load Balancer.  | Nessuno (valore di default ELB) |  Il nome di una policy di sicurezza per sistema di bilanciamento del carico.  | 

## aws:elbv2:listenerrule:rule\$1name
<a name="command-options-general-elbv2-listenerrule"></a>

Definisci le regole del listener per un sistema Application Load Balancer. Se una richiesta corrisponde ai nomi host o ai percorsi in una regola, il sistema di bilanciamento del carico la inoltra al processo specificato. Per usare una regola, aggiungila a un listener con l'opzione `Rules` nel namespace [`aws:elbv2:listener:listener_port`](#command-options-general-elbv2-listener).

**Nota**  
Questo namespace non è applicabile agli ambienti con un Network Load Balancer.


**Spazio dei nomi: `aws:elbv2:listenerrule:rule_name`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  HostHeaders  |  Un elenco di nomi host con cui trovare la corrispondenza. Ad esempio, `my.example.com`.  |  Sistema di bilanciamento del carico dedicato: nessuno Sistema di bilanciamento del carico condiviso: CNAME dell'ambiente  |  Ogni nome può contenere fino a 128 caratteri. Un modello può includere lettere maiuscole e minuscole, numeri, trattini (–) e fino a tre caratteri jolly (`*` corrisponde a zero o più caratteri; `?` corrisponde esattamente a un carattere). È possibile elencare più di un nome, ciascuno separato da una virgola. Un sistema Application Load Balancer supporta fino a cinque regole `PathPattern` e `HostHeader` combinate. Per ulteriori informazioni, consulta [Condizioni host](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#host-conditions) nella *Guida per l'utente dei sistemi Application Load Balancer*.  | 
|  PathPatterns  |  I modelli di percorso da abbinare (ad esempio, `/img/*`). Questa opzione è applicabile solo agli ambienti con un Application Load Balancer.  |  Nessuna  |  Ogni modello può contenere fino a 128 caratteri. Un modello può includere lettere maiuscole e minuscole, numeri, trattini (–) e fino a tre caratteri jolly (`*` corrisponde a zero o più caratteri; `?` corrisponde esattamente a un carattere). È possibile aggiungere più modelli di percorso separati da virgole. Un sistema Application Load Balancer supporta fino a cinque regole `PathPattern` e `HostHeader` combinate. Per ulteriori informazioni, consulta [Condizioni del percorso](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions) nella *Guida per l'utente dei sistemi Application Load Balancer*.  | 
|  Priority  |  La priorità di questa regola quando più regole corrispondono. Il numero più basso ha la priorità. Due regole non possono avere la stessa priorità. Con un sistema di bilanciamento del carico condiviso, Elastic Beanstalk tratta le priorità delle regole come relative tra gli ambienti di condivisione e le mappa alle priorità assolute durante la creazione.  |  `1`  |  `1` Da a `1000`  | 
|  Process  |  Il nome del [processo](#command-options-general-environmentprocess) a cui inoltrare il traffico quando questa regola corrisponde alla richiesta.  |  `default`  |  Un nome di processo.  | 

## aws:elbv2:loadbalancer
<a name="command-options-general-elbv2"></a>

Configura un sistema Application Load Balancer.

Per un sistema di bilanciamento del carico condiviso, sono valide solo le opzioni `SharedLoadBalancer` e `SecurityGroups`.

**Nota**  
Questo spazio dei nomi non è applicabile agli ambienti con un sistema Network Load Balancer.


**Spazio dei nomi: `aws:elbv2:loadbalancer`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  AccessLogsS3Bucket  |  Il bucket Amazon S3 in cui sono memorizzati i log di accesso. Il bucket deve essere nella stessa regione dell'ambiente e consentire l'accesso in scrittura al sistema di bilanciamento del carico.  |  Nessuna  |  Un nome di bucket.  | 
|  AccessLogsS3Enabled  |  Abilita lo storage dei log di accesso.  |  `false`  |  `true` `false`  | 
|  AccessLogsS3Prefix  |  Prefisso da anteporre ai nomi di log di accesso. Per impostazione predefinita, il load balancer carica i log in una directory denominata AWSLogs nel bucket specificato. Specificate un prefisso per inserire la directory all'interno di un'altra directory AWSLogs .  |  Nessuno  |    | 
|  IdleTimeout  |  Il periodo di attesa, in secondi, per il completamento di una richiesta prima della chiusura delle connessioni a client e istanza.  |  Nessuna  |  `1` Da a `3600`  | 
|  IpAddressType  | Specifica la configurazione del formato dell'indirizzo IP per il bilanciamento del carico dell'ambiente. Utilizzate l'opzione *dualstack* per abilitare il protocollo, insieme al IPv6 protocollo. IPv4  *Solo Application Load Balancer e Network Load Balancer supportano l'opzione dualstack.* Gli ambienti a istanza singola e gli ambienti che utilizzano Classic Load Balancer non la supportano. *È necessario associare il VPC dell'ambiente e tutte le sottoreti VPC ai blocchi IPv6 CIDR per supportare l'opzione dualstack.* Per ulteriori informazioni, consulta [Configurazione dei sistemi di bilanciamento del carico Elastic Beanstalk dual-stack](environments-cfg-elbv2-ipv6-dualstack.md).  | ipv4 | ipv4, dualstack | 
|  ManagedSecurityGroup  |  Assegna un gruppo di sicurezza esistente al sistema di bilanciamento del carico dell'ambiente, anziché crearne uno. Per utilizzare questa impostazione, aggiorna l'impostazione `SecurityGroups` in questo namespace di modo che includa l'ID del tuo gruppo di sicurezza e rimuovi l'ID dell'eventuale gruppo di sicurezza creato automaticamente. Per consentire il traffico tra il sistema di bilanciamento del carico e le istanze EC2 dell'ambiente, Elastic Beanstalk aggiunge una regola al gruppo di sicurezza delle istanze che autorizza il traffico in entrata dal gruppo di sicurezza gestito.  |  Il gruppo di sicurezza che Elastic Beanstalks crea per il sistema di bilanciamento del carico.  |  Un ID di gruppo di sicurezza.  | 
|  SecurityGroups  |  Un elenco di gruppi di sicurezza da collegare al sistema di bilanciamento del carico. Obbligatorio se `DisableDefaultEC2SecurityGroup` () [aws:autoscaling:launchconfiguration](#command-options-general-autoscalinglaunchconfiguration) è impostato su. `true` Gli ambienti con bilanciamento del carico che hanno disattivato il gruppo di sicurezza Elastic Beanstalk EC2 predefinito devono fornire a uno o più gruppi di sicurezza questa opzione. Per ulteriori informazioni, consulta [Gestione dei gruppi di sicurezza EC2](using-features.managing.ec2.instances.sg.md). Per un sistema di bilanciamento del carico condiviso, se non si specifica questo valore, Elastic Beanstalk verifica se un gruppo di sicurezza esistente che gestisce è già collegato al sistema di bilanciamento del carico. Se uno non è collegato al sistema di bilanciamento del carico, Elastic Beanstalk crea un gruppo di sicurezza e lo collega al sistema di bilanciamento del carico. Elastic Beanstalk elimina questo gruppo di sicurezza quando termina l'ultimo ambiente che condivide il sistema di bilanciamento del carico. I gruppi di sicurezza del sistema di bilanciamento del carico vengono utilizzati per impostare la regola in ingresso del gruppo di sicurezza dell'istanza Amazon EC2.  |  Il gruppo di sicurezza che Elastic Beanstalk crea per il sistema di bilanciamento del carico.  |  Elenco separato da virgole del gruppo di sicurezza. IDs  | 
|  SharedLoadBalancer  |  L'Amazon Resource Name (ARN) di un sistema di bilanciamento del carico condiviso. Questa opzione è rilevante solo per un sistema Application Load Balancer. È necessaria quando l'opzione `LoadBalancerIsShared` degli spazi dei nomi [aws:elasticbeanstalk:environment](#command-options-general-elasticbeanstalkenvironment) è impostata su `true`. Non è possibile modificare l'ARN del sistema di bilanciamento del carico condiviso dopo la creazione dell'ambiente. Criteri per un valore valido: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/command-options-general.html) Esempio: `arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/FrontEndLB/0dbf78d8ad96abbc`  |  Nessuna  |  ARN di un sistema di bilanciamento del carico valido che soddisfa tutti i criteri descritti di seguito.  | 

## aws:rds:dbinstance
<a name="command-options-general-rdsdbinstance"></a>

Configura un'istanza database Amazon RDS collegata.


**Spazio dei nomi: `aws:rds:dbinstance`**  

| **Nome**  | **Descrizione**  | **Impostazione predefinita**  | **Valori validi**  | 
| --- | --- | --- | --- | 
|  DBAllocatedStorage  |  Le dimensioni di storage di database allocate, in gigabyte.  |  MySQL: `5` Oracle: `10` sqlserver-se: `200` sqlserver-ex: `30` sqlserver-web: `30`  |  MySQL: `5`-`1024` Oracle: `10`-`1024` sqlserver: non modificabile.  | 
|  DBDeletionPolicy  |  Specifica se conservare, eliminare o creare uno snapshot dell'istanza database alla terminazione dell'ambiente. Questa opzione funziona in combinazione con `HasCoupledDatabase`, anche un'opzione di questo spazio dei nomi.  L'eliminazione di un'istanza database comporta una perdita di dati permanente.   |  `Delete`   |  `Delete`  `Retain`  `Snapshot`   | 
|  DBEngine  |  Il nome del motore di database da utilizzare per questa istanza.  |  `mysql`   |  `mysql`  `oracle-se1`  `sqlserver-ex`  `sqlserver-web`  `sqlserver-se`  `postgres`   | 
|  DBEngineVersion  |  Il numero di versione del motore di database.  |  `5.5`   |    | 
|  DBInstanceClass  |  Il tipo di istanza database.  |  `db.t2.micro`  (`db.m1.large` per un ambiente non in esecuzione in Amazon VPC)   |  Per ulteriori informazioni, consulta [Classe di istanza database](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) nella *Guida per l'utente di Amazon Relational Database Service*.  | 
|  DBPassword  |  Il nome della password utente master per l'istanza database.  |  Nessuna  |    | 
|  DBSnapshotIdentifier  |  L'identificatore dello snapshot DB da cui eseguire il ripristino.  |  Nessuna  |    | 
|  DBUser  |  Il nome dell'utente master per l'istanza database.  |  **ebroot**   |    | 
|  HasCoupledDatabase  |  Specifica se un'istanza database è accoppiata all'ambiente. Se è stato attivato `true`, Elastic Beanstalk crea una nuova istanza database accoppiata al tuo ambiente. Se è stato attivato `false`, Elastic Beanstalk inizia a disaccoppiare l'istanza database dall'ambiente. Questa opzione funziona in combinazione con `DBDeletionPolicy`, anche un'opzione di questo spazio dei nomi.  Nota: se si torna nuovamente a questo valore `true` dopo aver disaccoppiato il database precedente, Elastic Beanstalk crea un nuovo database con le impostazioni precedenti delle opzioni del database. Tuttavia, per mantenere la sicurezza dell'ambiente, non mantiene le impostazioni esistenti di `DBUser` e `DBPassword`. È necessario specificare di nuovo `DBUser` e `DBPassword`.   |  `false`   |  `true`  `false`   | 
|  MultiAZDatabase  |  Specifica se è necessario creare un'implementazione Multi-AZ di istanze database. Per ulteriori informazioni sulle implementazioni Multi-AZ con Amazon Relational Database Service (RDS), consulta [Regioni e zone di disponibilità](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html) nella *Guida per l'utente di Amazon Relational Database Service*.  |  `false`   |  `true`  `false`   | 

# Opzioni specifiche della piattaforma
<a name="command-options-specific"></a>

Alcune piattaforme Elastic Beanstalk definiscono gli spazi dei nomi delle opzioni specifici della piattaforma. Questi spazi dei nomi e le relative opzioni sono elencati di seguito per ogni piattaforma.

**Nota**  
In precedenza, nelle versioni della piattaforma basate su AMI Amazon Linux (in precedenza, Amazon Linux 2), le seguenti due funzionalità e i rispettivi spazi dei nomi erano considerati caratteristiche specifiche della piattaforma e sono stati elencati qui per piattaforma:  
**Configurazione proxy per file statici** – `aws:elasticbeanstalk:environment:proxy:staticfiles`
**AWS X-Ray supporto** — `aws:elasticbeanstalk:xray`
Nelle versioni della piattaforma Amazon Linux 2, Elastic Beanstalk implementa queste caratteristiche in modo coerente su tutte le piattaforme di supporto. Lo spazio dei nomi correlato è ora elencato nella pagina [Opzioni generali per tutti gli ambienti](command-options-general.md). Abbiamo tenuto menzione di loro solo in questa pagina per le piattaforme che avevano spazi dei nomi diversi.

**Topics**
+ [Opzioni della piattaforma Docker](#command-options-docker)
+ [Opzioni della piattaforma Go](#command-options-golang)
+ [Opzioni della piattaforma Java SE](#command-options-plain-java)
+ [Java con le opzioni di piattaforma Tomcat](#command-options-java)
+ [Opzioni della piattaforma .NET Core su Linux](#command-options-dotnet-core-linux)
+ [Opzioni della piattaforma .NET](#command-options-net)
+ [Opzioni della piattaforma Node.js](#command-options-nodejs)
+ [Opzioni della piattaforma PHP](#command-options-php)
+ [Opzioni della piattaforma Python](#command-options-python)
+ [Opzioni della piattaforma Ruby](#command-options-ruby)

## Opzioni della piattaforma Docker
<a name="command-options-docker"></a>

Le seguenti opzioni di configurazione specifiche per Docker si applicano a Docker e alle piattaforme Docker preconfigurate.

**Nota**  
Queste opzioni di configurazione non si applicano:  
Piattaforma Docker (Amazon Linux 2) con Docker Compose
Piattaforma Docker Multicontainer (AMI Amazon Linux AL1): questa piattaforma è stata ritirata


**Spazio dei nomi: `aws:elasticbeanstalk:environment:proxy`**  

|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  ProxyServer  |  Specifica il server Web da usare come proxy.  |  `nginx`  |  `nginx` `none`— *Solo Amazon Linux AM* e *Docker w/DC *  | 

## Opzioni della piattaforma Go
<a name="command-options-golang"></a>

### Opzioni della piattaforma AMI Amazon Linux (prima di Amazon Linux 2)
<a name="command-options-golang.alami"></a>

#### Spazio dei nomi: `aws:elasticbeanstalk:container:golang:staticfiles`
<a name="command-options-golang.alami.staticfiles"></a>

Puoi utilizzare il namespace seguente per configurare il server proxy per l'elaborazione dei file statici. Quando il server proxy riceve una richiesta da un file nel percorso specificato, questo serve il file direttamente anziché instradare la richiesta all'applicazione. In questo modo viene ridotta la quantità di richieste eseguibili dall'applicazione.

Effettua il mapping di un percorso servito dal server proxy su una cartella nel codice sorgente contenente asset statici. Ciascuna opzione da te definita in questo namespace mappa un percorso differente.


|  **Nome**  |  **Valore**  | 
| --- | --- | 
|  Percorso in cui il server proxy servirà i file. Esempio: `/images` per servire i file su `subdomain.eleasticbeanstalk.com/images`.  |  Nome della cartella contenente i file. Esempio: `staticimages` per servire i file da una cartella denominata `staticimages` al primo livello del tuo bundle di origine.  | 

## Opzioni della piattaforma Java SE
<a name="command-options-plain-java"></a>

### Opzioni della piattaforma AMI Amazon Linux (prima di Amazon Linux 2)
<a name="command-options-plain-java.alami"></a>

#### Spazio dei nomi: `aws:elasticbeanstalk:container:java:staticfiles`
<a name="command-options-plain-java.alami.staticfiles"></a>

Puoi utilizzare il namespace seguente per configurare il server proxy per l'elaborazione dei file statici. Quando il server proxy riceve una richiesta da un file nel percorso specificato, questo serve il file direttamente anziché instradare la richiesta all'applicazione. In questo modo viene ridotta la quantità di richieste eseguibili dall'applicazione.

Effettua il mapping di un percorso servito dal server proxy su una cartella nel codice sorgente contenente asset statici. Ciascuna opzione da te definita in questo namespace mappa un percorso differente.


|  **Nome**  |  **Valore**  | 
| --- | --- | 
|  Percorso in cui il server proxy servirà i file. Esempio: `/images` per servire i file su `subdomain.eleasticbeanstalk.com/images`.  |  Nome della cartella contenente i file. Esempio: `staticimages` per servire i file da una cartella denominata `staticimages` al primo livello del tuo bundle di origine.  | 

## Java con le opzioni di piattaforma Tomcat
<a name="command-options-java"></a>


**Spazio dei nomi: `aws:elasticbeanstalk:application:environment`**  

|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  JDBC\$1CONNECTION\$1STRING  |  La stringa di connessione a un database esterno.  |  n/d  |  n/a  | 

Per ulteriori informazioni, consulta [Variabili di ambiente e altre impostazioni software](environments-cfg-softwaresettings.md).


**Spazio dei nomi: `aws:elasticbeanstalk:container:tomcat:jvmoptions`**  

|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  JVM Options  |  Passa le opzioni della riga di comando a JVM all'avvio.  |  n/d  |  n/a  | 
|  Xmx  |  Dimensioni heap massime di JVM.  |  `256m`  |  n/d  | 
|  XX:MaxPermSize  |  Sezione dell'heap JVM utilizzata per memorizzare le definizioni di classi e i metadati associati.  Questa opzione si applica solo alle versioni Java precedenti a Java 8 e non è supportata sulle piattaforme Elastic Beanstalk Tomcat basate su Amazon Linux 2 e successive.   |  `64m`  |  N/A  | 
|  Xms  |  Dimensioni heap iniziali di JVM.  |  `256m`  |  N/A  | 
|  *optionName*  |  Specificare le opzioni JVM arbitrarie che andranno ad aggiungersi a quelle definite dalla piattaforma Tomcat.  |  n/d  |  n/a  | 


**Spazio dei nomi: `aws:elasticbeanstalk:environment:proxy`**  

|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  GzipCompression  |  Imposta su `false` per disattivare la compressione di risposta. *Valido solo nelle versioni della piattaforma AMI Amazon Linux (prima di Amazon Linux 2).*  |  `true`  |  `true` `false`  | 
|  ProxyServer  |  Imposta il proxy da usare nelle istanze dell'ambiente. Se imposti questa opzione su `apache`, Elastic Beanstalk utilizza [Apache 2.4](https://httpd.apache.org/docs/2.4/). Imposta l'opzione su `apache/2.2` se l'applicazione non è pronta per la migrazione da [Apache 2.2](https://httpd.apache.org/docs/2.2/) a causa di impostazioni di configurazione del proxy non compatibili. *Questo valore è valido solo nelle versioni della piattaforma AMI Amazon Linux (prima di Amazon Linux 2).* Imposta l'opzione su `nginx` per usare [nginx](https://www.nginx.com/). Questa è l'impostazione predefinita a partire dalle versioni della piattaforma Amazon Linux 2. Per ulteriori informazioni, consultare [Configurazione del server proxy](java-tomcat-proxy.md).  |  `nginx` (Amazon Linux 2) `apache` (AMI Amazon Linux)  |  `apache` `apache/2.2` – *Solo AMI Amazon Linux* `nginx`  | 

## Opzioni della piattaforma .NET Core su Linux
<a name="command-options-dotnet-core-linux"></a>


**Spazio dei nomi: `aws:elasticbeanstalk:environment:proxy`**  

|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  ProxyServer  |  Specifica il server Web da usare come proxy.  |  `nginx`  |  `nginx` `none`  | 

## Opzioni della piattaforma .NET
<a name="command-options-net"></a>


**Spazio dei nomi: `aws:elasticbeanstalk:container:dotnet:apppool`**  

|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  Target Runtime  |  Scegli la versione di .NET Framework per la tua applicazione.  |  `4.0`  |  `2.0` `4.0`  | 
|  Enable 32-bit Applications  |  Imposta su `True` per eseguire applicazioni a 32 bit.  |  `False`  |  `True` `False`  | 

## Opzioni della piattaforma Node.js
<a name="command-options-nodejs"></a>


**Spazio dei nomi: `aws:elasticbeanstalk:environment:proxy`**  

|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  ProxyServer  |  Imposta il proxy da usare nelle istanze dell'ambiente.  |  `nginx`  |  `apache` `nginx`  | 

### Opzioni della piattaforma AMI Amazon Linux (prima di Amazon Linux 2)
<a name="command-options-nodejs.alami"></a>

#### Spazio dei nomi: `aws:elasticbeanstalk:container:nodejs`
<a name="command-options-nodejs.alami.nodejs"></a>


|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  NodeCommand  |  Comando utilizzato per avviare l'applicazione Node.js. Se viene specificata una stringa vuota, viene utilizzato `app.js`, quindi `server.js` e `npm start` in questo ordine.  |  ""  |  n/d  | 
|  NodeVersion  |  Versione di Node.js. Ad esempio, `4.4.6` Le versioni Node.js supportate variano tra le versioni della piattaforma Node.js. Consulta [Node.js](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.nodejs) nel documento relativo alle *piattaforme di AWS Elastic Beanstalk * per ottenere un elenco delle versioni attualmente supportate.  Quando il supporto della versione di Node.js in uso viene rimosso dalla piattaforma, è necessario modificare o rimuovere l'impostazione della versione prima di eseguire un [aggiornamento della piattaforma](using-features.platform.upgrade.md). Questo può verificarsi quando viene rilevata una vulnerabilità di sicurezza per una o più versioni di Node.js Quando ciò accade, il tentativo di aggiornamento a una nuova versione della piattaforma che non supporta quella configurata [NodeVersion](#command-options-nodejs)fallisce. Per evitare di dover creare un nuovo ambiente, modificate l'opzione di *NodeVersion*configurazione impostando una versione di Node.js supportata sia dalla vecchia versione della piattaforma che da quella nuova, oppure [rimuovete l'impostazione dell'opzione](environment-configuration-methods-after.md) e quindi eseguite l'aggiornamento della piattaforma.   | varia | varia | 
|  GzipCompression  |  Specifica se è abilitata la compressione gzip. Se ProxyServer è impostata su`none`, la compressione gzip è disabilitata.   |  `false`  |  `true` `false`  | 
|  ProxyServer  |  Specifica il server Web da utilizzare per le connessioni proxy a Node.js. Se ProxyServer è impostato su`none`, le mappature statiche dei file non hanno effetto e la compressione gzip è disabilitata.  |  `nginx`  |  `apache` `nginx` `none`  | 

#### Spazio dei nomi: `aws:elasticbeanstalk:container:nodejs:staticfiles`
<a name="command-options-nodejs.alami.staticfiles"></a>

Puoi utilizzare il namespace seguente per configurare il server proxy per l'elaborazione dei file statici. Quando il server proxy riceve una richiesta da un file nel percorso specificato, questo serve il file direttamente anziché instradare la richiesta all'applicazione. In questo modo viene ridotta la quantità di richieste eseguibili dall'applicazione.

Effettua il mapping di un percorso servito dal server proxy su una cartella nel codice sorgente contenente asset statici. Ciascuna opzione da te definita in questo namespace mappa un percorso differente.

**Nota**  
Le impostazioni di file statici non si applicano se `aws:elasticbeanstalk:container:nodejs::ProxyFiles` è impostato su `none`.


|  **Nome**  |  **Valore**  | 
| --- | --- | 
|  Percorso in cui il server proxy servirà i file. Esempio: `/images` per servire i file su `subdomain.eleasticbeanstalk.com/images`.  |  Nome della cartella contenente i file. Esempio: `staticimages` per servire i file da una cartella denominata `staticimages` al primo livello del tuo bundle di origine.  | 

## Opzioni della piattaforma PHP
<a name="command-options-php"></a>


**Spazio dei nomi: `aws:elasticbeanstalk:container:php:phpini`**  

|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  document\$1root  |  Specifica la directory figlio del tuo progetto trattata come la radice Web rivolta al pubblico.  |  `/`  |  Una stringa vuota viene trattata come `/`oppure specifica una stringa che inizia con `/`  | 
|  memory\$1limit  |  Quantità di memoria allocata per l'ambiente PHP.  |  `256M`  |  n/d  | 
|  zlib.output\$1compression  |  Specifica se PHP deve utilizzare la compressione per l'output.  |  `Off`  |  `On` `Off` `true` `false`  | 
|  allow\$1url\$1fopen  |  Specifica se alle funzioni file di PHP è consentito recuperare i dati da sedi remote, come siti web o server FTP.  |  `On`  |  `On` `Off` `true` `false`  | 
|  display\$1errors  |  Specifica se i messaggi di errore devono essere parte dell'output.  |  `Off`  |  `On` `Off`  | 
|  max\$1execution\$1time  |  Imposta il tempo massimo, in secondi, durante il quale a uno script è consentita l'esecuzione prima di essere terminato dall'ambiente.  |  `60`  |  `0` a `9223372036854775807` (PHP\$1INT\$1MAX)  | 
|  composer\$1options  |  Imposta le opzioni personalizzate da utilizzare durante l'installazione delle dipendenze utilizzando Composer tramite il comando. **composer.phar install** Per ulteriori informazioni, consulta [install sul sito](https://getcomposer.org/doc/03-cli.md#install-i) *getcomposer.org*.  |  N/A  |  n/a  | 


**Spazio dei nomi: `aws:elasticbeanstalk:environment:proxy`**  

|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  ProxyServer  |  Imposta il proxy da usare nelle istanze dell'ambiente.  |  `nginx`  |  `apache` `nginx`  | 

**Nota**  
Per ulteriori informazioni sulla piattaforma PHP, consulta [Utilizzo della piattaforma PHP di Elastic Beanstalk](create_deploy_PHP.container.md).

## Opzioni della piattaforma Python
<a name="command-options-python"></a>


**Spazio dei nomi: `aws:elasticbeanstalk:application:environment`**  

|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  DJANGO\$1SETTINGS\$1MODULE  |  Specifica il file delle impostazioni da utilizzare.  |  n/d  |  n/a  | 

Per ulteriori informazioni, consulta [Variabili di ambiente e altre impostazioni software](environments-cfg-softwaresettings.md).


**Spazio dei nomi: `aws:elasticbeanstalk:container:python`**  

|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  WSGIPath  |  Il file che contiene l'applicazione WSGI. Questo file deve disporre di una `application` chiamabile.  |  Sulle versioni della piattaforma Python di Amazon Linux 2: `application` Sulle versioni della piattaforma Python di AMI Amazon Linux: `application.py`  |  n/d  | 
|  NumProcesses  |  Il numero di processi daemon che devono essere avviati per il gruppo di processi quando si eseguono le applicazioni WSGI.  |  `1`  |  n/d  | 
|  NumThreads  |  Il numero di thread creati per gestire le richieste in ciascun processo daemon all'interno del gruppo di processi quando si eseguono le applicazioni WSGI.  |  `15`  |  n/d  | 


**Spazio dei nomi: `aws:elasticbeanstalk:environment:proxy`**  

|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  ProxyServer  |  Imposta il proxy da usare nelle istanze dell'ambiente.  |  `nginx`  |  `apache` `nginx`  | 

### Opzioni della piattaforma AMI Amazon Linux (prima di Amazon Linux 2)
<a name="command-options-python.alami"></a>

#### Spazio dei nomi: `aws:elasticbeanstalk:container:python:staticfiles`
<a name="command-options-python.alami.staticfiles"></a>

Puoi utilizzare il namespace seguente per configurare il server proxy per l'elaborazione dei file statici. Quando il server proxy riceve una richiesta da un file nel percorso specificato, questo serve il file direttamente anziché instradare la richiesta all'applicazione. In questo modo viene ridotta la quantità di richieste eseguibili dall'applicazione.

Effettua il mapping di un percorso servito dal server proxy su una cartella nel codice sorgente contenente asset statici. Ciascuna opzione da te definita in questo namespace mappa un percorso differente.

Per impostazione predefinita, il server proxy in un ambiente Python serve qualsiasi file in una cartella denominata `static` nel percorso `/static`.


**Spazio dei nomi: `aws:elasticbeanstalk:container:python:staticfiles`**  

|  **Nome**  |  **Valore**  | 
| --- | --- | 
|  Percorso in cui il server proxy servirà i file. Esempio: `/images` per servire i file su `subdomain.eleasticbeanstalk.com/images`.  |  Nome della cartella contenente i file. Esempio: `staticimages` per servire i file da una cartella denominata `staticimages` al primo livello del tuo bundle di origine.  | 

## Opzioni della piattaforma Ruby
<a name="command-options-ruby"></a>


**Spazio dei nomi: `aws:elasticbeanstalk:application:environment`**  

|  **Nome**  |  **Descrizione**  |  **Impostazione predefinita**  |  **Valori validi**  | 
| --- | --- | --- | --- | 
|  RAILS\$1SKIP\$1MIGRATIONS  |  Specifica se eseguire ``rake db:migrate`` per conto delle applicazioni degli utenti, oppure se deve essere ignorato. Questo è valido solo per le applicazioni Rails 3.  |  `false`  |  `true` `false`  | 
|  RAILS\$1SKIP\$1ASSET\$1COMPILATION  |  Specifica se il container deve eseguire ``rake assets:precompile` `per conto delle applicazioni degli utenti, oppure se deve essere ignorato. Questo è anche valido solo per le applicazioni Rails 3.  |  `false`  |  `true` `false`  | 
|  BUNDLE\$1WITHOUT  |  Un elenco di gruppi separati da due punti (`:`) da ignorare quando si installano dipendenze da Gemfile.  |  `test:development`  |  n/d  | 
|  RACK\$1ENV  |  Specifica quale fase di un ambiente può essere eseguita un'applicazione. Tra gli ambienti comuni figurano lo sviluppo, la produzione e il test.  |  `production`  |  n/d  | 

Per ulteriori informazioni, consulta [Variabili di ambiente e altre impostazioni software](environments-cfg-softwaresettings.md).

# Opzioni personalizzate
<a name="configuration-options-custom"></a>

Utilizza il namespace `aws:elasticbeanstalk:customoption` per definire opzioni e valori che possono essere letti nei blocchi `Resources` in altri file di configurazione. Usa opzioni personalizzate per raccogliere le impostazioni specificate dall'utente in un singolo file di configurazione.

Ad esempio, è possibile avere un file di configurazione complesso per definire una risorsa che può essere configurata dall'utente all'avvio dell'ambiente. Se utilizzi `Fn::GetOptionSetting` per recuperare il valore di un'opzione personalizzata, è possibile inserire la definizione di tale opzione in un file di configurazione differente, dove può essere più facilmente individuata e modificata dall'utente.

Inoltre, poiché si tratta di opzioni di configurazione, le opzioni personalizzate possono essere configurate a livello di API per sostituire i valori definiti in un file di configurazione. Consulta [Priorità](command-options.md#configuration-options-precedence) per ulteriori informazioni.

Le opzioni personalizzate sono definite come qualsiasi altra opzione:

```
option_settings:
  aws:elasticbeanstalk:customoption:
    option name: option value
```

Ad esempio, il seguente file di configurazione crea un'opzione denominata `ELBAlarmEmail` e imposta il valore su `someone@example.com`:

```
option_settings:
  aws:elasticbeanstalk:customoption:
    ELBAlarmEmail: someone@example.com
```

In altre sezioni, un file di configurazione definisce un argomento SNS che legge l'opzione con `Fn::GetOptionSetting` per compilare il valore dell'attributo `Endpoint`:

```
Resources:
  MySNSTopic:
    Type: AWS::SNS::Topic
    Properties:
      Subscription:
        - Endpoint: 
            Fn::GetOptionSetting:
              OptionName: ELBAlarmEmail
              DefaultValue: nobody@example.com
          Protocol: email
```

Puoi trovare ulteriori frammenti di esempio usando `Fn::GetOptionSetting` in [Aggiunta e personalizzazione delle risorse dell'ambiente Elastic Beanstalk](environment-resources.md).

# Personalizzazione avanzata dell'ambiente con i file di configurazione (`.ebextensions`)
<a name="ebextensions"></a>

È possibile aggiungere file di AWS Elastic Beanstalk configurazione (`.ebextensions`) al codice sorgente dell'applicazione Web per configurare l'ambiente e personalizzare le AWS risorse in esso contenute. [I file di configurazione sono documenti in formato YAML o JSON con un'estensione di `.config` file che vengono inseriti in una cartella denominata `.ebextensions` e distribuiti nel bundle dei sorgenti dell'applicazione.](applications-sourcebundle.md)

**Example .ebextensions/ .config network-load-balancer**  
Questo esempio apporta una semplice modifica alla configurazione. Modifica un'opzione di configurazione per impostare il tipo del sistema di bilanciamento del carico dell'ambiente su Network Load Balancer.  

```
option_settings:
  aws:elasticbeanstalk:environment:
    LoadBalancerType: network
```

Ti consigliamo di usare il formato YAML per i file di configurazione, perché è più leggibile rispetto a JSON. YAML supporta commenti, comandi multi-riga, diverse alternative per l'utilizzo di virgolette e molto altro. Puoi comunque effettuare qualsiasi modifica nei file di configurazione Elastic Beanstalk in modo identico utilizzando YAML o JSON.

**Suggerimento**  
Quando sviluppi o esegui il test di nuovi i file di configurazione, avvia un ambiente pulito che esegue l'applicazione predefinita e distribuisci in questo ambiente. I file di configurazione con formattazione insufficiente determinano un errore irreversibile di avvio dell'ambiente.

La sezione `option_settings` di un file di configurazione definisce i valori per le [opzioni di configurazione](command-options.md). Le opzioni di configurazione consentono di configurare l'ambiente Elastic Beanstalk AWS , le risorse in esso contenute e il software che esegue l'applicazione. I file di configurazione sono solo uno dei diversi modi per impostare le opzioni di configurazione.

La [`Resources`sezione](environment-resources.md) consente di personalizzare ulteriormente le risorse nell'ambiente dell'applicazione e definire AWS risorse aggiuntive oltre alle funzionalità fornite dalle opzioni di configurazione. Puoi aggiungere e configurare tutte le risorse supportate da AWS CloudFormation, utilizzate da Elastic Beanstalk per creare ambienti.

Le altre sezioni di un file di configurazione (`packages`,,`sources`,`files`,`users`, `groups` `commands``container_commands`, e`services`) consentono di configurare le EC2 istanze che vengono avviate nel proprio ambiente. Ogni volta che un server viene lanciato nel tuo ambiente, Elastic Beanstalk esegue le operazioni definite in queste sezioni per preparare il sistema operativo e il sistema di storage per la tua applicazione.

Per esempi di .ebextensions uso comune, vedere il [repository dei file di configurazione di Elastic Beanstalk](https://github.com/awsdocs/elastic-beanstalk-samples/tree/master/configuration-files).

**Requisiti**
+ **Posizione**: Elastic Beanstalk `.ebextensions` elaborerà tutte le cartelle presenti nella distribuzione. Tuttavia, ti consigliamo di inserire tutti i file di configurazione in un'unica cartella, denominata`.ebextensions`, nella radice del pacchetto sorgente. Le cartelle che iniziano con un punto possono essere nascoste dai browser di file, pertanto accertati che la cartella venga aggiunta al momento della creazione del bundle di origine. Per ulteriori informazioni, consulta [Crea un bundle di sorgenti dell'applicazione Elastic Beanstalk](applications-sourcebundle.md).
+ **Denominazione**: i file di configurazione devono avere l'estensione file `.config`.
+ **Formattazione**: i file di configurazione devono essere conformi alle specifiche YAML o JSON.

  Con il formato YAML utilizza sempre gli spazi per applicare il rientro alle chiavi a diversi livelli di nidificazione. Per ulteriori informazioni su YAML, vedi [YAML Ain't Markup Language (YAML™) Version 1.1](http://yaml.org/spec/current.html).
+ **Unicità**: utilizza ciascuna chiave solo una volta in ogni file di configurazione.
**Attenzione**  
Se una chiave (ad esempio, `option_settings`) viene utilizzata due volte nello stesso file di configurazione, una delle sezioni verrà cancellata. Combina le sezioni duplicate in un'unica sezione o inseriscile in file di configurazione separati.

Il processo di distribuzione varia leggermente in funzione del client utilizzato per gestire gli ambienti. Per ulteriori informazioni, consulta le sezioni seguenti:
+ [Console Elastic Beanstalk](environment-configuration-methods-during.md#configuration-options-during-console-ebextensions)
+ [CLI EB](environment-configuration-methods-during.md#configuration-options-during-ebcli-ebextensions)
+ [AWS CLI](environment-configuration-methods-during.md#configuration-options-during-awscli-ebextensions)

**Topics**
+ [Impostazioni opzioni](ebextensions-optionsettings.md)
+ [Personalizzazione di software su server Linux](customize-containers-ec2.md)
+ [Personalizzazione di software su server Windows](customize-containers-windows-ec2.md)
+ [Aggiunta e personalizzazione delle risorse dell'ambiente Elastic Beanstalk](environment-resources.md)

# Impostazioni opzioni
<a name="ebextensions-optionsettings"></a>

Puoi utilizzare la chiave `option_settings` per modificare la configurazione Elastic Beanstalk e definire le variabili che possono essere recuperate dalla tua applicazione tramite variabili di ambiente. Alcuni spazi dei nomi consentono di estendere il numero di parametri e di specificare i relativi nomi. Per un elenco di namespace e di opzioni di configurazione, vedi [Opzioni di configurazione](command-options.md).

Le impostazioni delle opzioni possono anche essere applicate direttamente a un ambiente durante la creazione o l'aggiornamento di un ambiente. Le impostazioni applicate direttamente all'ambiente sovrascrivono le impostazioni per le stesse opzioni nei file di configurazione. Se rimuovi le impostazioni dalla configurazione di un ambiente, le impostazioni nei file di configurazione saranno effettive. Per informazioni dettagliate, vedi [Priorità](command-options.md#configuration-options-precedence).

## Sintassi
<a name="ebextensions-optionsettings-syntax"></a>

La sintassi standard per le impostazioni delle opzioni è rappresentata da una gamma di oggetti, ognuno con `namespace`, `option_name` e una chiave `value`.

```
option_settings:
  - namespace:  namespace
    option_name:  option name
    value:  option value
  - namespace:  namespace
    option_name:  option name
    value:  option value
```

La chiave `namespace` è facoltativa. Se non specifichi uno spazio dei nomi, l'impostazione predefinita utilizzata è `aws:elasticbeanstalk:application:environment`:

```
option_settings:
  - option_name:  option name
    value:  option value
  - option_name:  option name
    value:  option value
```

Elastic Beanstalk supporta anche una sintassi abbreviata per le impostazioni di opzioni che consente di specificare le opzioni come coppie chiave-valore sotto lo spazio dei nomi:

```
option_settings:
  namespace:
    option name: option value
    option name: option value
```

## Esempi
<a name="ebextensions-optionsettings-snippet"></a>

I seguenti esempi impostano un'opzione specifica per la piattaforma Tomcat nello spazio dei nomi `aws:elasticbeanstalk:container:tomcat:jvmoptions` e una proprietà dell'ambiente denominata `MYPARAMETER`.

In formato YAML standard:

**Example .ebextensions/options.config**  

```
option_settings:
  - namespace:  aws:elasticbeanstalk:container:tomcat:jvmoptions
    option_name:  Xmx
    value:  256m
  - option_name: MYPARAMETER
    value: parametervalue
```

In formato abbreviato:

**Example .ebextensions/options.config**  

```
option_settings:
  aws:elasticbeanstalk:container:tomcat:jvmoptions:
    Xmx: 256m
  aws:elasticbeanstalk:application:environment:
    MYPARAMETER: parametervalue
```

In JSON:

**Example .ebextensions/options.config**  

```
{
  "option_settings": [
    {
      "namespace": "aws:elasticbeanstalk:container:tomcat:jvmoptions",
      "option_name": "Xmx",
      "value": "256m"
    },
    {
      "option_name": "MYPARAMETER",
      "value": "parametervalue"
    }
  ]
}
```

# Personalizzazione di software su server Linux
<a name="customize-containers-ec2"></a>

Questa sezione descrive il tipo di informazioni che puoi includere in un file di configurazione per personalizzare il software sulle istanze che EC2 eseguono Linux. Per informazioni generali sulla personalizzazione e la configurazione degli ambienti Elastic Beanstalk, consulta [Configurazione degli ambienti Elastic Beanstalk](customize-containers.md). Per informazioni sulla personalizzazione del software sulle EC2 istanze che eseguono Windows, consulta. [Personalizzazione di software su server Windows](customize-containers-windows-ec2.md)

È possibile che tu voglia personalizzare e configurare il software da cui dipende la tua applicazione. È possibile aggiungere comandi da eseguire durante il provisioning delle istanze, definire utenti e gruppi Linux e scaricare o creare direttamente file nelle istanze dell'ambiente. Questi file potrebbero essere dipendenze richieste dall'applicazione (ad esempio, pacchetti aggiuntivi dal repository yum) oppure file di configurazione, ad esempio file di configurazione come la sostituzione di un file di configurazione del proxy per sostituire impostazioni specifiche impostate in modo predefinito da Elastic Beanstalk).

**Note**  
Sulle piattaforme Amazon Linux 2, invece di fornire file e comandi nei file di configurazione con estensione .ebextensions, si consiglia di utilizzare *Buildfile*. *Procfile* e gli *hook di piattaforma* quando possibile per configurare ed eseguire codice personalizzato sulle istanze dell'ambiente durante il provisioning delle istanze. Per i dettagli su questi meccanismi, consulta [Estensione delle piattaforme Elastic Beanstalk Linux](platforms-linux-extend.md).
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

I file di configurazione supportano le seguenti chiavi utilizzabili sul server Linux in cui è in esecuzione l'applicazione.

**Topics**
+ [Pacchetti](#linux-packages)
+ [Gruppi](#linux-groups)
+ [Utenti](#linux-users)
+ [Origini](#linux-sources)
+ [File](#linux-files)
+ [Comandi](#linux-commands)
+ [Servizi](#linux-services)
+ [Comandi del container](#linux-container-commands)
+ [Esempio: utilizzo di CloudWatch parametri Amazon personalizzati](customize-containers-cw.md)

Le chiavi sono elaborate nell'ordine in cui sono elencate qui.

Controlla gli [eventi](using-features.events.md) del tuo ambiente durante lo sviluppo e il test dei file di configurazione. Elastic Beanstalk ignora un file di configurazione contenente errori di convalida, ad esempio una chiave non valida, e non elabora le altre chiavi contenute nello stesso file. In questi casi, Elastic Beanstalk aggiunge un avviso nel log degli eventi.

## Pacchetti
<a name="linux-packages"></a>

Puoi utilizzare la chiave `packages` per scaricare e installare pacchetti di componenti e applicazioni.

### Sintassi
<a name="linux-packages-syntax"></a>

```
packages: 
  name of package manager:
    package name: version
    ...
  name of package manager:
    package name: version
    ...
  ...
```

È possibile specificare più pacchetti in ciascuna chiave del programma di gestione dei pacchetti.

### Formati di pacchetto supportati
<a name="linux-packages-support"></a>

Elastic Beanstalk supporta attualmente i seguenti programmi di gestione dei pacchetti: yum, rubygems, python e rpm. I pacchetti sono elaborati nel seguente ordine: rpm, yum, quindi rubygems e python. Non vi è alcun ordine tra rubygems e Python. All'interno di ogni programma di gestione dei pacchetti, l'ordine di installazione non è garantito. Utilizza un programma di gestione dei pacchetti supportato dal sistema operativo in uso.

**Nota**  
Elastic Beanstalk supporta due programmi di gestione dei pacchetti sottostanti per Python, ovvero pip ed easy\$1install. Tuttavia, nella sintassi del file di configurazione, devi specificare `python` come nome del programma di gestione dei pacchetti. Quando si utilizza un file di configurazione per specificare un pacchetto Python manager, Elastic Beanstalk usa Python 2.7. Se la tua applicazione si basa su un'altra versione di Python, è possibile specificare i pacchetti da installare in un file `requirements.txt`. Per ulteriori informazioni, consulta [Specificazione delle dipendenze utilizzando un file dei requisiti su Elastic Beanstalk](python-configuration-requirements.md).

### Specificazione delle versioni
<a name="linux-packages-versions"></a>

In ogni programma di gestione dei pacchetti, ogni pacchetto è specificato come nome di pacchetto ed elenco di versioni. La versione può essere una stringa, un elenco di versioni oppure una stringa o un elenco vuoto. Una stringa o un elenco vuoto indica che deve essere utilizzata la versione più recente. Per il programma rpm, la versione è specificata come percorso a un file su un disco o a un URL. I percorsi relativi non sono supportati.

Se specifichi una versione di un pacchetto, Elastic Beanstalk tenta di installare tale versione anche se una versione più recente del pacchetto è già installata sull'istanza. Se una versione più recente è già installata, la distribuzione non riesce. Solo alcuni programmi di gestione dei pacchetti supportano più versioni. Per ulteriori informazioni, consulta la documentazione del programma di gestione dei pacchetti utilizzato. Se non specifichi una versione e una versione del pacchetto è già installata, Elastic Beanstalk non installa una nuova versione, in quanto presuppone che intendi continuare a utilizzare la versione esistente.

### Frammento di esempio
<a name="linux-packages-snippet"></a>

Il frammento seguente specifica un URL di versione per rpm, richiede la versione più recente di yum e la versione 0.10.2 di chef da rubygems.

```
packages: 
  yum:
    libmemcached: [] 
    ruby-devel: []
    gcc: []
  rpm:
    epel: http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
  rubygems: 
    chef: '0.10.2'
```

## Gruppi
<a name="linux-groups"></a>

È possibile utilizzare la `groups` chiave per creare Linux/UNIX gruppi e assegnare gruppi IDs. Per creare un gruppo, aggiungi una nuova coppia chiave-valore che esegue la mappatura di un nuovo nome di gruppo a un ID di gruppo facoltativo. La chiave "groups" può contenere uno o più nomi di gruppo. La tabella seguente elenca le chiavi disponibili.

### Sintassi
<a name="linux-groups-syntax"></a>

```
groups:
  name of group: {}
  name of group:
    gid: "group id"
```

### Opzioni
<a name="linux-groups-options"></a>

`gid`  
Un numero di ID di gruppo.  
Se viene specificato un ID di gruppo e il nome di gruppo esiste già, la creazione del gruppo non riuscirà. Se un altro gruppo è associato a l'ID di gruppo specificato, il sistema operativo può rifiutare la creazione del gruppo.

### Frammento di esempio
<a name="linux-groups-snippet"></a>

Il seguente frammento specifica un gruppo denominato groupOne senza assegnare un ID di gruppo e un gruppo denominato groupTwo, il cui ID di gruppo è 45.

```
groups:
  groupOne: {}
  groupTwo:
    gid: "45"
```

## Utenti
<a name="linux-users"></a>

È possibile utilizzare la `users` chiave per creare Linux/UNIX utenti sull' EC2 istanza.

### Sintassi
<a name="linux-users-syntax"></a>

```
users:
  name of user:
    groups:
      - name of group
    uid: "id of the user"
    homeDir: "user's home directory"
```

### Opzioni
<a name="linux-users-options"></a>

`uid`  
Un ID utente. Il processo di creazione non riesce se esiste un nome utente con un ID utente differente. Se l'ID utente è già assegnato a un utente esistente, il sistema operativo può respingere la richiesta di creazione.

`groups`  
Un elenco di nomi di gruppo. L'utente viene aggiunto a ogni gruppo nell'elenco.

`homeDir`  
La home directory dell'utente.

Gli utenti vengono creati come utenti di sistema non interattivo con una shell `/sbin/nologin`. Questa è un'impostazione predefinita e non può essere modificata.

### Frammento di esempio
<a name="linux-users-snippet"></a>

```
users:
  myuser:
    groups:
      - group1
      - group2
    uid: "50"
    homeDir: "/tmp"
```

## Origini
<a name="linux-sources"></a>

È possibile utilizzare la `sources` chiave per scaricare un file di archivio da un URL pubblico e decomprimerlo in una directory di destinazione sull' EC2 istanza.

### Sintassi
<a name="linux-sources-syntax"></a>

```
sources:
  target directory: location of archive file
```

### Formati supportati
<a name="linux-sources-support"></a>

I formati supportati sono tar, tar\$1gzip, tar\$1bz2 e zip. Puoi fare riferimento a posizioni esterne, come Amazon Simple Storage Service (Amazon S3) (ad esempio, `https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject`), a condizione che l'URL sia pubblicamente accessibile.

### Frammento di esempio
<a name="linux-sources-example"></a>

L'esempio seguente scarica un file .zip pubblico da un bucket Amazon S3 e lo decomprime in `/etc/myapp`:

```
sources:  
  /etc/myapp: https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject
```

**Nota**  
Lo stesso percorso di destinazione non può essere riutilizzato da più estrazioni. L'estrazione di un'altra origine per lo stesso percorso di destinazione sostituirà i contenuti invece di accodarli. 

## File
<a name="linux-files"></a>

È possibile utilizzare la `files` chiave per creare file sull' EC2 istanza. Il contenuto può essere inline nel file di configurazione o essere estratto da un URL. I file sono scritti su disco in ordine lessicografico.

Puoi utilizzare la chiave `files` per scaricare file privati da Amazon S3 fornendo un profilo dell'istanza per l'autorizzazione.

Se il percorso del file specificato esiste già nell'istanza, il file esistente viene mantenuto con l'estensione `.bak` aggiunta al suo nome.

### Sintassi
<a name="linux-files-syntax"></a>

```
files:  
  "target file location on disk": 
     mode: "six-digit octal value"
     owner: name of owning user for file
     group: name of owning group for file
     source: URL
     authentication: authentication name:

  "target file location on disk": 
     mode: "six-digit octal value"
     owner: name of owning user for file
     group: name of owning group for file
     content: |
      # this is my
      # file content
     encoding: encoding format
     authentication: authentication name:
```

### Opzioni
<a name="linux-files-options"></a>

`content`  
Contenuto della stringa da aggiungere al file. Specifica `content` o `source`, ma non entrambi.

`source`  
L'URL di un file da scaricare. Specifica `content` o `source`, ma non entrambi.

`encoding`  
Il formato di codifica della stringa specificata con l'opzione `content`.  
Valori validi: `plain` \$1 `base64`

`group`  
Il gruppo Linux proprietario del file.

`owner`  
L'utente Linux proprietario del file.

`mode`  
Valore ottale a sei cifre che rappresenta la modalità per questo file. Questa chiave non è supportata per i sistemi Windows. Usa le prime tre cifre per i collegamenti simbolici e le ultime tre per impostare le autorizzazioni. Per creare un collegamento simbolico, specifica `120xxx`, dove `xxx` definisce le autorizzazioni del file di destinazione. Per specificare le autorizzazioni per un file, usa le ultime tre cifre, ad esempio `000644`.

`authentication`  
Il nome di un [metodo di autenticazione CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-authentication.html) da utilizzare. Puoi aggiungere metodi di autenticazione ai metadati del gruppo Auto Scaling con la chiave Resources. Un esempio è fornito di seguito.

### Frammento di esempio
<a name="linux-files-snippet"></a>

```
files:
  "/home/ec2-user/myfile" :
    mode: "000755"
    owner: root
    group: root
    source: http://foo.bar/myfile
 
  "/home/ec2-user/myfile2" :
    mode: "000755"
    owner: root
    group: root
    content: |
      this is my
      file content
```

Esempio che utilizza un collegamento simbolico. Viene creato un collegamento `/tmp/myfile2.txt` che punta al file esistente `/tmp/myfile1.txt`.

```
files:
  "/tmp/myfile2.txt" :
    mode: "120400"
    content: "/tmp/myfile1.txt"
```

L'esempio seguente utilizza la chiave Resources per aggiungere un metodo di autenticazione denominato S3Auth e utilizzato per scaricare un file privato da un bucket Amazon S3:

```
Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["amzn-s3-demo-bucket2"]
          roleName:
            "Fn::GetOptionSetting":
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"

files:
  "/tmp/data.json" :
    mode: "000755"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://elasticbeanstalk-us-west-2-123456789012.s3-us-west-2.amazonaws.com/data.json
```

## Comandi
<a name="linux-commands"></a>

È possibile utilizzare la `commands` chiave per eseguire comandi sull' EC2 istanza. I comandi vengono eseguiti prima che l'applicazione e il server Web vengano configurati e che il file di versione dell'applicazione venga estratto.

I comandi specificati vengono eseguiti come utente root ed elaborati in ordine alfabetico in base al nome. Per impostazione predefinita, i comandi vengono eseguiti nella directory principale. Per eseguire comandi da un'altra directory, utilizza l'opzione `cwd`.

Per risolvere i problemi emersi con i comandi, è possibile trovare il relativo output nei [log delle istanze](using-features.logging.md).

### Sintassi
<a name="linux-commands-syntax"></a>

```
commands:
  command name: 
    command: command to run
    cwd: working directory
    env: 
      variable name: variable value
    test: conditions for command 
    ignoreErrors: true
```

### Opzioni
<a name="linux-commands-options"></a>

`command`  
Un array ([insieme di sequenze di blocchi](http://yaml.org/spec/1.2/spec.html#id2759963) con sintassi YAML) o una stringa che specifica il comando da eseguire. Alcune note importanti:  
+ Se utilizzi una stringa, non devi racchiuderla tra virgolette. Se utilizzi le virgolette, applica un carattere di escape alle occorrenze dello stesso tipo di virgolette.
+ Se utilizzi una matrice, non è necessario utilizzare un carattere di escape negli spazi o racchiudere i parametri di comando tra virgolette. Ogni elemento della matrice è un singolo argomento del comando. Non utilizzare un array per specificare più comandi.
I seguenti esempi sono tutti equivalenti:  

```
commands:
  command1:
    command: git commit -m "This is a comment."
  command2:
    command: "git commit -m \"This is a comment.\""
  command3:
    command: 'git commit -m "This is a comment."'
  command4:
    command:
      - git
      - commit
      - -m
      - This is a comment.
```
Per specificare più comandi, utilizza un [blocco scalare letterale](http://yaml.org/spec/1.2/spec.html#id2760844), come mostrato nel seguente esempio.  

```
commands:
  command block:
    command: |
      git commit -m "This is a comment."
      git push
```

`env`  
(Facoltativa) Imposta variabili di ambiente per il comando. Questa proprietà non aggiunge l'ambiente esistente ma lo sovrascrive.

`cwd`  
(Facoltativa) La directory di lavoro. Se questa opzione non è specificata, i comandi vengono eseguiti dalla directory principale (/).

`test`  
(Facoltativo) Un comando che deve restituire il valore `true` (codice di uscita 0) per consentire a Elastic Beanstalk di elaborare il comando, ad esempio uno script shell, contenuto nella chiave `command`.

`ignoreErrors`  
(Facoltativa) Un valore booleano che determina se altri comandi devono essere eseguiti nel caso in cui il comando nella chiave `command` non riesca (restituisce un valore diverso da zero). Imposta questo valore su `true` per continuare a eseguire i comandi anche se il comando non riesce. Impostalo su `false` per interrompere l'esecuzione dei comandi se il comando non riesce. Il valore predefinito è `false`.

### Frammento di esempio
<a name="linux-commands-snippet"></a>

L'esempio di frammento seguente esegue uno script python.

```
commands:
  python_install:
    command: myscript.py
    cwd: /home/ec2-user
    env:
      myvarname: myvarvalue
    test: "[ -x /usr/bin/python ]"
```

## Servizi
<a name="linux-services"></a>

Puoi utilizzare la chiave `services` per definire i servizi che devono essere avviati o arrestati all'avvio dell'istanza. La chiave `services` consente inoltre di specificare le dipendenze in origini, pacchetti e file, in modo che, se richiesto a causa del file installati, Elastic Beanstalk esegue il riavvio del servizio.

### Sintassi
<a name="linux-services-syntax"></a>

```
services:
  sysvinit:
    name of service:
      enabled: "true"
      ensureRunning: "true"
      files: 
        - "file name"
      sources: 
        - "directory"	
      packages: 
        name of package manager:
          "package name[: version]"
      commands: 
        - "name of command"
```

### Opzioni
<a name="linux-services-options"></a>

`ensureRunning`  
Imposta su `true` per continuare a eseguire il servizio dopo la chiusura di Elastic Beanstalk.  
Imposta su `false` per continuare a eseguire il servizio dopo la chiusura di Elastic Beanstalk.  
Ometti la chiave per non apportare modifiche allo stato del servizio.

`enabled`  
Imposta su `true` per eseguire automaticamente il servizio all'avvio.  
Imposta su `false` per non eseguire automaticamente il servizio all'avvio.  
Ometti la chiave per non apportare modifiche a questa proprietà.

`files`  
Un elenco di file. Se Elastic Beanstalk ne modifica uno direttamente tramite il blocco di file, il servizio viene riavviato.

`sources`  
Un elenco di directory. Se Elastic Beanstalk espande un archivio in una di queste directory, il servizio viene riavviato.

`packages`  
La mappatura del programma di gestione dei pacchetti a un elenco di nomi di pacchetto. Se Elastic Beanstalk installa o aggiorna uno di questi pacchetti, il servizio viene riavviato.

`commands`  
Un elenco di nomi di comando. Se Elastic Beanstalk esegue il comando specificato, il servizio viene riavviato.

### Frammento di esempio
<a name="linux-services-snippet"></a>

Di seguito viene riportato una esempio di frammento:

```
services: 
  sysvinit:
    myservice:
      enabled: true
      ensureRunning: true
```

## Comandi del container
<a name="linux-container-commands"></a>

Puoi utilizzare la chiave `container_commands` per eseguire comandi che modificano il codice sorgente dell'applicazione. I comandi di contenitore vengono eseguiti dopo la configurazione dell'applicazione e del server Web e l'estrazione dell'archivio delle versioni dell'applicazione, ma prima della distribuzione della versione dell'applicazione. I comandi non di contenitore e altre operazioni di personalizzazione vengono eseguiti prima dell'estrazione del codice sorgente dell'applicazione.

I comandi specificati vengono eseguiti come utente root ed elaborati in ordine alfabetico in base al nome. I comandi di contenitore vengono eseguiti a partire dalla directory di gestione temporanea, dove viene estratto il codice sorgente prima di essere distribuito al server di applicazioni. Qualsiasi modifica apportata al codice sorgente nella directory di gestione temporanea con un comando di contenitore verrà inclusa al momento della distribuzione del codice sorgente nella posizione finale.

**Nota**  
L'output dei comandi del container viene registrato nel log delle istanze `cfn-init-cmd.log`. Per ulteriori informazioni sul recupero e la visualizzazione dei log delle istanze, consulta [Visualizzazione dei log dalle](using-features.logging.md) istanze Amazon. EC2 

Puoi utilizzare `leader_only` per eseguire il comando solo su una singola istanza o puoi configurare un oggetto `test` per eseguire il comando esclusivamente quando un comando di test restituisce `true`. I comandi di contenitore "leader-only" vengono eseguiti solo durante la creazione dell'ambiente e le distribuzioni, mentre altri comandi e operazioni di personalizzazione di server sono eseguiti a ogni provisioning o aggiornamento di un'istanza. I comandi di contenitore "leader-only" non vengono eseguiti a causa di modifiche alla configurazione di avvio, ad esempio nel caso di modifica dell'ID AMI o del tipo di istanza.

### Sintassi
<a name="linux-container-commands-syntax"></a>

```
container_commands:
  name of container_command:
    command: "command to run"
    leader_only: true
  name of container_command:
    command: "command to run"
```

### Opzioni
<a name="linux-container-commands-options"></a>

`command`  
Una stringa o una matrice di stringhe da eseguire.

`env`  
(Facoltativa) Imposta le variabili di ambiente prima di eseguire il comando, ignorando qualsiasi valore esistente.

`cwd`  
(Facoltativa) La directory di lavoro. Per impostazione predefinita, questa è la directory di gestione temporanea dell'applicazione decompressa.

`leader_only`  
(Facoltativa) Esegui il comando solo su una singola istanza scelta da Elastic Beanstalk. I comandi di contenitore "leader-only" vengono eseguiti prima di altri comandi di contenitore. Un comando può essere "leader-only" o avere un oggetto `test`, ma non entrambe le cose (`leader_only` è prioritario).

`test`  
(Facoltativa) Esegui un comando di test che deve restituire `true` per eseguire il comando di contenitore. Un comando può essere "leader-only" o avere un oggetto `test`, ma non entrambe le cose (`leader_only` è prioritario).

`ignoreErrors`  
(Facoltativa) Esegui correttamente le distribuzioni se il comando di container restituisce un valore diverso da 0 (riuscito). Imposta su `true` per attivarla.

### Frammento di esempio
<a name="linux-container-commands-snippet"></a>

Di seguito viene riportato una esempio di frammento.

```
container_commands:
  collectstatic:
    command: "django-admin.py collectstatic --noinput"
  01syncdb:
    command: "django-admin.py syncdb --noinput"
    leader_only: true
  02migrate:
    command: "django-admin.py migrate"
    leader_only: true
  99customize:
    command: "scripts/customize.sh"
```

# Esempio: utilizzo di CloudWatch parametri Amazon personalizzati
<a name="customize-containers-cw"></a>

Questo argomento fornisce un esempio di configurazione che integra i parametri di Elastic Beanstalk CloudWatch con l'agente Amazon per piattaforme basate su Amazon Linux 2 e versioni successive. L'esempio di configurazione utilizza file e comandi in un file di configurazione. `.ebextensions`

Amazon CloudWatch è un servizio web che ti consente di monitorare, gestire e pubblicare diverse metriche, nonché di configurare azioni di allarme in base ai dati delle metriche. Puoi definire metriche personalizzate per uso personale ed Elastic Beanstalk le invierà ad Amazon. CloudWatch Una volta che Amazon CloudWatch contiene le tue metriche personalizzate, puoi visualizzarle nella CloudWatch console Amazon.

**L' CloudWatch agente Amazon**  
L' CloudWatch agente Amazon consente la raccolta di CloudWatch parametri e registri sia dalle EC2 istanze Amazon che dai server locali su tutti i sistemi operativi. L'agente supporta i parametri raccolti a livello di sistema. Supporta anche la raccolta di registri e parametri personalizzati dalle applicazioni o dai servizi. Per ulteriori informazioni sull' CloudWatch agente Amazon, consulta [Collecting metrics and logs with the CloudWatch agent](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) nella *Amazon CloudWatch User* Guide.

**Nota**  
Elastic [Beanstalk Enhanced](health-enhanced.md) Health Reporting offre un supporto nativo per la pubblicazione di un'ampia gamma di metriche di istanze e ambienti su. CloudWatch Per informazioni dettagliate, vedi [Pubblicazione di parametri Amazon CloudWatch personalizzati per un ambiente](health-enhanced-cloudwatch.md).

**Topics**
+ [File di configurazione .Ebextensions](#customize-containers-cw-update-roles)
+ [Permissions](#customize-containers-cw-policy)
+ [Visualizzazione delle metriche nella console CloudWatch](#customize-containers-cw-console)

## File di configurazione .Ebextensions
<a name="customize-containers-cw-update-roles"></a>

Questo esempio utilizza file e comandi in un file di configurazione .ebextensions per configurare ed eseguire CloudWatch l'agente Amazon sulla piattaforma Amazon Linux 2. L'agente è preconfezionato con Amazon Linux 2. Se si utilizza un sistema operativo diverso, potrebbero essere necessari ulteriori passaggi per l'installazione dell'agente. Per ulteriori informazioni, consulta [Installazione dell' CloudWatch agente](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html) nella *Amazon CloudWatch User Guide*.

Per utilizzare questo esempio, salvalo in un file denominato `cloudwatch.config` in una directory denominata `.ebextensions` al livello principale della directory del progetto, quindi distribuisci l'applicazione tramite la console Elastic Beanstalk (includi la directory .ebextensions nel [bundle di origine](applications-sourcebundle.md)) o l'[interfaccia a riga di comando EB](eb-cli3.md).

Per ulteriori informazioni sui file di configurazione, consulta [Personalizzazione avanzata dell'ambiente con i file di configurazione (`.ebextensions`)](ebextensions.md).

In questo file sono presenti due sezioni:
+ `files`: questa sezione aggiunge il file di configurazione dell'agente. Indica quali parametri e registri l'agente deve inviare ad Amazon. CloudWatch In questo esempio, viene inviato solo il parametro *mem\$1used\$1percent*. Per un elenco completo delle metriche a livello di sistema supportate dall' CloudWatch agente Amazon, consulta [Metriche raccolte dall' CloudWatch agente nella](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/metrics-collected-by-CloudWatch-agent.html) *Amazon CloudWatch User* Guide.
+ `container_commands`: questa sezione contiene il comando che avvia l'agente, che passa il file di configurazione come parametro. Per maggiori dettagli su `container_commands`, consultare [Comandi del container](customize-containers-ec2.md#linux-container-commands).

**.ebextensions/cloudwatch.config**

```
files:  
  "/opt/aws/amazon-cloudwatch-agent/bin/config.json": 
    mode: "000600"
    owner: root
    group: root
    content: |
      {
        "agent": {
          "metrics_collection_interval": 60,
          "run_as_user": "root"
        },
        "metrics": {
          "namespace": "System/Linux",
          "append_dimensions": {
            "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
          },
          "metrics_collected": {
            "mem": {
              "measurement": [
                "mem_used_percent"
              ]
            }
          }
        }
      }  
container_commands:
  start_cloudwatch_agent: 
    command: /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
```

## Permissions
<a name="customize-containers-cw-policy"></a>

Le istanze del tuo ambiente necessitano delle autorizzazioni IAM appropriate per pubblicare CloudWatch metriche Amazon personalizzate utilizzando l'agente Amazon. CloudWatch È possibile concedere le autorizzazioni alle istanze dell'ambiente aggiungendole al [profilo dell'istanza](concepts-roles-instance.md) dell'ambiente. Puoi aggiungere le autorizzazioni al profilo dell'istanza prima o dopo la distribuzione dell'applicazione.

**Per concedere le autorizzazioni alla pubblicazione di metriche CloudWatch**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione, seleziona **Ruoli**.

1. Scegliere il ruolo del profilo dell'istanza dell'ambiente. Per impostazione predefinita, al momento della creazione di un ambiente tramite la console Elastic Beanstalk o l'[interfaccia a riga di comando EB](eb-cli3.md), il ruolo è `aws-elasticbeanstalk-ec2-role`.

1. Scegli la scheda **Autorizzazioni**.

1. In **Permissions Policies** (Policy di autorizzazione), nella sezione **Permissions** (Autorizzazioni), scegliere **Attach policies** (Allega policy).

1. In **Allega autorizzazioni**, scegli la politica gestita AWS . **CloudWatchAgentServerPolicy** Quindi fare clic su **Attach policy** (Collega policy).

Per ulteriori informazioni sulla gestione delle policy, consulta l'argomento relativo all'[utilizzo delle policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html) nella *Guida per l'utente di IAM*.

## Visualizzazione delle metriche nella console CloudWatch
<a name="customize-containers-cw-console"></a>

Dopo aver distribuito il file CloudWatch di configurazione nel tuo ambiente, controlla la [ CloudWatchconsole Amazon](https://console.aws.amazon.com/cloudwatch/home) per visualizzare i tuoi parametri. Le metriche personalizzate si troveranno nel namespace. **CWAgent**

Per ulteriori informazioni, consulta [Visualizzazione delle metriche disponibili](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html) nella *Amazon CloudWatch User Guide*.

# Personalizzazione di software su server Windows
<a name="customize-containers-windows-ec2"></a>

È possibile che tu voglia personalizzare e configurare il software da cui dipende la tua applicazione. Questi file potrebbero essere dipendenze richieste dall'applicazione, ad esempio servizi o pacchetti aggiuntivi che devono essere eseguiti. Per informazioni generali sulla personalizzazione e sulla configurazione degli ambienti Elastic Beanstalk, consulta [Configurazione degli ambienti Elastic Beanstalk](customize-containers.md).

**Nota**  
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

I file di configurazione supportano le seguenti chiavi utilizzabili con il server Windows in cui è in esecuzione l'applicazione.

**Topics**
+ [Pacchetti](#windows-packages)
+ [Origini](#windows-sources)
+ [File](#windows-files)
+ [Comandi](#windows-commands)
+ [Servizi](#windows-services)
+ [Comandi del container](#windows-container-commands)

Le chiavi sono elaborate nell'ordine in cui sono elencate qui.

**Nota**  
Le versioni della piattaforma .NET (senza versione) meno recenti non sono in grado di elaborare i file di configurazione nell'ordine corretto. Ulteriori informazioni sono disponibili in [Migrazione tra le versioni principali della piattaforma server Windows di Elastic Beanstalk](dotnet-v2migration.md).

Controlla gli [eventi](using-features.events.md) del tuo ambiente durante lo sviluppo e il test dei file di configurazione. Elastic Beanstalk ignora un file di configurazione contenente errori di convalida, ad esempio una chiave non valida, e non elabora le altre chiavi contenute nello stesso file. In questi casi, Elastic Beanstalk aggiunge un avviso nel log degli eventi.

## Pacchetti
<a name="windows-packages"></a>

Utilizza la chiave `packages` per scaricare e installare pacchetti di componenti e applicazioni.

Negli ambienti Windows, Elastic Beanstalk supporta il download e l'installazione di pacchetti MSI. Gli ambienti Linux supportano programmi di gestione dei pacchetti aggiuntivi. Per maggiori dettagli, consultare [Pacchetti](customize-containers-ec2.md#linux-packages) nella pagina *Personalizzazione di software su server Linux*.

Puoi fare riferimento a qualsiasi posizione esterna, come un oggetto Amazon Simple Storage Service (Amazon S3), a condizione che l'URL sia pubblicamente accessibile.

Se si specificano diversi `msi:` pacchetti, il loro ordine di installazione non è garantito.

### Sintassi
<a name="windows-packages-syntax"></a>

Specifica un nome di tua scelta come nome del pacchetto e un URL per un percorso di file MSI come valore. È possibile specificare più pacchetti nella chiave `msi:`.

```
packages: 
  msi:
    package name: package url
    ...
```

### Esempi
<a name="windows-packages-snippet"></a>

L'esempio seguente specifica un URL per scaricare **mysql** da `https://dev.mysql.com/`.

```
packages:
  msi:
    mysql: https://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-8.0.11.msi
```

L'esempio seguente specifica un oggetto Amazon S3 come posizione del file MSI.

```
packages:
  msi:
    mymsi: https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject.msi
```

## Origini
<a name="windows-sources"></a>

Utilizza la chiave `sources` per scaricare un file di archivio da un URL pubblico e decomprimerlo in una directory di destinazione sull'istanza EC2.

### Sintassi
<a name="windows-sources-syntax"></a>

```
sources:  
  target directory: location of archive file
```

### Formati supportati
<a name="windows-sources-support"></a>

In ambienti Windows, Elastic Beanstalk supporta il formato ZIP. Gli ambienti Linux supportano formati aggiuntivi. Per maggiori dettagli, consultare [Origini](customize-containers-ec2.md#linux-sources) nella pagina *Personalizzazione di software su server Linux*.

Puoi fare riferimento a qualsiasi posizione esterna, come un oggetto Amazon Simple Storage Service (Amazon S3), a condizione che l'URL sia pubblicamente accessibile.

### Esempio
<a name="windows-sources-example"></a>

L'esempio seguente scarica un file.zip pubblico da Amazon S3 e lo decomprime. `c:/myproject/myapp`

```
sources:  
  "c:/myproject/myapp": https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject.zip
```

## File
<a name="windows-files"></a>

Utilizza la chiave `files` per creare file sull'istanza EC2. Il contenuto può essere inline nel file di configurazione o essere estratto da un URL. I file sono scritti su disco in ordine lessicografico. Per scaricare file privati da Amazon S3, fornisci un profilo dell'istanza per l'autorizzazione.

### Sintassi
<a name="windows-files-syntax"></a>

```
files:  
  "target file location on disk":
    source: URL
    authentication: authentication name:

  "target file location on disk":
    content: |
      this is my content
    encoding: encoding format
```

### Opzioni
<a name="windows-files-options"></a>

`content`  
(Facoltativa) Una stringa. 

`source`  
(Facoltativa) L'URL da cui il file è caricato. Questa opzione non può essere specificata con la chiave contenuto.

`encoding`  
(Facoltativa) Il formato di codifica. Questa opzione è utilizzata solo per un valore di chiave contenuto fornito. Il valore predefinito è `plain`.  
Valori validi: `plain` \$1 `base64`

`authentication`  
(Facoltativo) Il nome di un [metodo di autenticazione CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-authentication.html) da utilizzare. Puoi aggiungere metodi di autenticazione ai metadati del gruppo Auto Scaling con la chiave Resources.

### Esempi
<a name="windows-files-snippet"></a>

L'esempio seguente mostra due modi per fornire i contenuti di un file: da un URL o inline nel file di configurazione.

```
files:
  "c:\\targetdirectory\\targetfile.txt":
    source: http://foo.bar/myfile
 
  "c:/targetdirectory/targetfile.txt":
    content: |
      # this is my file
      # with content
```

**Nota**  
Se utilizzi una barra rovesciata (\$1) nel percorso di file, devi anteporvi un'altra barra rovesciata (il carattere escape) come mostrato nell'esempio precedente.

L'esempio seguente utilizza la chiave Resources per aggiungere un metodo di autenticazione denominato S3Auth e lo utilizza per scaricare un file privato da Amazon S3:

```
files:
  "c:\\targetdirectory\\targetfile.zip":
    source: https://elasticbeanstalk-us-east-2-123456789012.s3.amazonaws.com/prefix/myfile.zip
    authentication: S3Auth

Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          s: ["amzn-s3-demo-bucket"]
          roleName:
            "Fn::GetOptionSetting":
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"
```

## Comandi
<a name="windows-commands"></a>

Utilizza la chiave `commands` per eseguire comandi sull'istanza EC2. I comandi vengono elaborati in ordine alfabetico per nome e vengono eseguiti prima della configurazione dell'applicazione e del server Web e prima che il file della versione dell'applicazione venga estratto.

I comandi specificati sono eseguiti come utente amministratore.

Per risolvere i problemi emersi con i comandi, è possibile trovare il relativo output nei [log delle istanze](using-features.logging.md).

### Sintassi
<a name="windows-commands-syntax"></a>

```
commands:
  command name: 
    command: command to run
```

### Opzioni
<a name="windows-commands-options"></a>

`command`  
Una matrice o una stringa che specifica il comando da eseguire. Se utilizzi una matrice, non è necessario utilizzare un carattere di escape negli spazi o racchiudere i parametri di comando tra virgolette.

`cwd`  
(Facoltativa) La directory di lavoro. Per impostazione predefinita, Elastic Beanstalk tenta di trovare la posizione della directory del tuo progetto. Se non la trova, utilizza `c:\Windows\System32` come percorso di default.

`env`  
(Facoltativa) Imposta variabili di ambiente per il comando. Questa proprietà non aggiunge l'ambiente esistente ma lo sovrascrive.

`ignoreErrors`  
(Facoltativa) Un valore booleano che determina se altri comandi devono essere eseguiti nel caso in cui il comando nella chiave `command` non riesca (restituisce un valore diverso da zero). Imposta questo valore su `true` per continuare a eseguire i comandi anche se il comando non riesce. Impostalo su `false` per interrompere l'esecuzione dei comandi se il comando non riesce. Il valore predefinito è `false`.

`test`  
(Facoltativo) Un comando che deve restituire il valore `true` (codice di uscita 0) per consentire a Elastic Beanstalk di elaborare il comando contenuto nella chiave `command`.

`waitAfterCompletion`  
(Facoltativa) L'intervallo in secondi tra il completamento del comando e l'esecuzione del comando successivo. Il valore predefinito è **60** secondi. Puoi anche specificare. **forever**  
I riavvii del sistema durante la distribuzione non sono supportati. Se il sistema si riavvia a seguito di un comando, l'inizializzazione dell'istanza avrà esito negativo, causando il fallimento della distribuzione.  
Come soluzione alternativa, è possibile utilizzarla [https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/windows-configuration/scheduled-restart.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/windows-configuration/scheduled-restart.config)per pianificare i riavvii dopo il completamento della distribuzione.

### Esempio
<a name="windows-commands-snippet"></a>

L'esempio seguente salva l'output del comando `set` nel file specificato. Se c'è un comando successivo, viene eseguito da Elastic Beanstalk subito dopo il completamento di questo comando. Se tale comando richiede un riavvio, Elastic Beanstalk riavvia l'istanza subito dopo il completamento del comando.

```
commands:
  test: 
    command: set > c:\\myapp\\set.txt
    waitAfterCompletion: 0
```

## Servizi
<a name="windows-services"></a>

Utilizza la chiave `services` per definire i servizi che devono essere avviati o arrestati all'avvio dell'istanza. La chiave `services` consente inoltre di specificare le dipendenze in origini, pacchetti e file, di modo che se è necessario un riavvio a seguito dell'installazione dei file, Elastic Beanstalk esegue il riavvio del servizio.

### Sintassi
<a name="windows-services-syntax"></a>

```
services: 
  windows:
    name of service:
      files:
        - "file name"
      sources: 
        - "directory"	
      packages: 
        name of package manager:
            "package name[: version]"
      commands: 
        - "name of command"
```

### Opzioni
<a name="windows-services-options"></a>

`ensureRunning`  
(Facoltativo) Imposta su `true` per continuare a eseguire il servizio dopo la chiusura di Elastic Beanstalk.  
Imposta su `false` per continuare a eseguire il servizio dopo la chiusura di Elastic Beanstalk.  
Ometti la chiave per non apportare modifiche allo stato del servizio.

`enabled`  
(Facoltativa) Imposta su `true` per eseguire automaticamente il servizio all'avvio.  
Imposta su `false` per non eseguire automaticamente il servizio all'avvio.  
Ometti la chiave per non apportare modifiche a questa proprietà.

`files`  
Un elenco di file. Se Elastic Beanstalk ne modifica uno direttamente tramite il blocco di file, il servizio viene riavviato.

`sources`  
Un elenco di directory. Se Elastic Beanstalk espande un archivio in una di queste directory, il servizio viene riavviato.

`packages`  
La mappatura del programma di gestione dei pacchetti a un elenco di nomi di pacchetto. Se Elastic Beanstalk installa o aggiorna uno di questi pacchetti, il servizio viene riavviato.

`commands`  
Un elenco di nomi di comando. Se Elastic Beanstalk esegue il comando specificato, il servizio viene riavviato.

### Esempio
<a name="windows-services-snippet"></a>

```
services: 
  windows:
    myservice:
      enabled: true
      ensureRunning: true
```

## Comandi del container
<a name="windows-container-commands"></a>

Utilizza la chiave `container_commands` per eseguire comandi che modificano il codice sorgente dell'applicazione. I comandi di contenitore vengono eseguiti dopo la configurazione dell'applicazione e del server Web e l'estrazione dell'archivio delle versioni dell'applicazione, ma prima della distribuzione della versione dell'applicazione. I comandi non di contenitore e altre operazioni di personalizzazione vengono eseguiti prima dell'estrazione del codice sorgente dell'applicazione.

I comandi di contenitore vengono eseguiti a partire dalla directory di gestione temporanea, dove viene estratto il codice sorgente prima di essere distribuito al server di applicazioni. Qualsiasi modifica apportata al codice sorgente nella directory di gestione temporanea con un comando di contenitore verrà inclusa al momento della distribuzione del codice sorgente nella posizione finale.

Per risolvere i problemi emersi con i comandi del container, è possibile trovare il relativo output nei [log delle istanze](using-features.logging.md).

Utilizza l'opzione `leader_only` per eseguire il comando solo su una singola istanza oppure configura un oggetto `test` per eseguire il comando esclusivamente quando un comando di test restituisce `true`. I comandi di contenitore "leader-only" vengono eseguiti solo durante la creazione dell'ambiente e le distribuzioni, mentre altri comandi e operazioni di personalizzazione di server sono eseguiti a ogni provisioning o aggiornamento di un'istanza. I comandi di contenitore "leader-only" non vengono eseguiti a causa di modifiche alla configurazione di avvio, ad esempio nel caso di modifica dell'ID AMI o del tipo di istanza.

### Sintassi
<a name="windows-container-commands-syntax"></a>

```
container_commands:
  name of container_command:
    command: command to run
```

### Opzioni
<a name="windows-container-commands-options"></a>

`command`  
Una stringa o una matrice di stringhe da eseguire.

`env`  
(Facoltativa) Imposta le variabili di ambiente prima di eseguire il comando, ignorando qualsiasi valore esistente.

`cwd`  
(Facoltativa) La directory di lavoro. Per impostazione predefinita, questa è la directory di gestione temporanea dell'applicazione decompressa.

`leader_only`  
(Facoltativa) Esegui il comando solo su una singola istanza scelta da Elastic Beanstalk. I comandi di contenitore "leader-only" vengono eseguiti prima di altri comandi di contenitore. Un comando può essere "leader-only" o avere un oggetto `test`, ma non entrambe le cose (`leader_only` è prioritario).

`test`  
(Facoltativa) Esegui un comando di test che deve restituire `true` per eseguire il comando di contenitore. Un comando può essere "leader-only" o avere un oggetto `test`, ma non entrambe le cose (`leader_only` è prioritario).

`ignoreErrors`  
(Facoltativa) Esegui correttamente le distribuzioni se il comando di container restituisce un valore diverso da 0 (riuscito). Imposta su `true` per attivarla.

`waitAfterCompletion`  
(Facoltativa) L'intervallo in secondi tra il completamento del comando e l'esecuzione del comando successivo. Il valore predefinito è **60** secondi. È inoltre possibile specificare. **forever**  
I riavvii del sistema durante la distribuzione non sono supportati. Se il sistema si riavvia a seguito di un comando, l'inizializzazione dell'istanza avrà esito negativo, causando il fallimento della distribuzione.  
Come soluzione alternativa, è possibile utilizzarla [https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/windows-configuration/scheduled-restart.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/windows-configuration/scheduled-restart.config)per pianificare i riavvii dopo il completamento della distribuzione.

### Esempio
<a name="windows-container-commands-snippet"></a>

L'esempio seguente salva l'output del comando `set` nel file specificato. Elastic Beanstalk esegue il comando su un'istanza e riavvia l'istanza subito dopo il completamento del comando.

```
container_commands:
  foo:
    command: set > c:\\myapp\\set.txt
    leader_only: true
    waitAfterCompletion: 0
```

# Aggiunta e personalizzazione delle risorse dell'ambiente Elastic Beanstalk
<a name="environment-resources"></a>

Potresti voler personalizzare le risorse dell'ambiente che fanno parte del tuo ambiente Elastic Beanstalk. Ad esempio, potresti voler aggiungere una coda Amazon SQS e un allarme sulla profondità della coda oppure potresti voler aggiungere un cluster Amazon. ElastiCache Includendo un file di configurazione nel bundle di origine, puoi personalizzare agevolmente il tuo ambiente in contemporanea con la distribuzione della versione dell'applicazione.

Puoi usare la `Resources` chiave in un [file di configurazione](ebextensions.md) per creare e personalizzare AWS le risorse nel tuo ambiente. Le risorse definite nei file di configurazione vengono aggiunte al CloudFormation modello utilizzato per avviare l'ambiente. Sono supportati tutti [i tipi di CloudFormation risorse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).

**Nota**  
Ogni volta che aggiungi una risorsa non gestita da Elastic Beanstalk, assicurati di aggiungere una policy utente con le autorizzazioni AWS Identity and Access Management appropriate per i tuoi utenti (IAM). Le [policy utente gestite](AWSHowTo.iam.managed-policies.md) fornite da Elastic Beanstalk coprono solo le autorizzazioni per le risorse gestite da Elastic Beanstalk.

Ad esempio, il file di configurazione riportato di seguito consente di aggiungere un hook del ciclo di vita di Auto Scaling al gruppo Auto Scaling predefinito creato da Elastic Beanstalk:

**`~/my-app/.ebextensions/as-hook.config`**

```
Resources:
  hookrole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument: {
               "Version": "2012-10-17",		 	 	 
               "Statement": [ {
                  "Effect": "Allow",
                  "Principal": {
                     "Service": [ "autoscaling.amazonaws.com" ]
                  },
                  "Action": [ "sts:AssumeRole" ]
               } ]
            }
      Policies: [ {
               "PolicyName": "SNS",
               "PolicyDocument": {
                      "Version": "2012-10-17",		 	 	 
                      "Statement": [{
                          "Effect": "Allow",
                          "Resource": "*",
                          "Action": [
                              "sqs:SendMessage",
                              "sqs:GetQueueUrl",
                              "sns:Publish"
                          ]
                        }
                      ]
                  }
               } ]
  hooktopic:
    Type: AWS::SNS::Topic
    Properties:
      Subscription:
        - Endpoint: "my-email@example.com"
          Protocol: email
  lifecyclehook:
    Type: AWS::AutoScaling::LifecycleHook
    Properties:
      AutoScalingGroupName: { "Ref" : "AWSEBAutoScalingGroup" }
      LifecycleTransition: autoscaling:EC2_INSTANCE_TERMINATING
      NotificationTargetARN: { "Ref" : "hooktopic" }
      RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] }
```

In questo esempio vengono definite tre risorse: `hookrole`, `hooktopic` e `lifecyclehook`. Le prime due risorse sono un ruolo IAM, che concede ad Amazon EC2 Auto Scaling l'autorizzazione a pubblicare messaggi su Amazon SNS, e un argomento SNS, che inoltra i messaggi del gruppo Auto Scaling a un indirizzo e-mail. Elastic Beanstalk crea queste risorse con le proprietà e i tipi specificati.

L'ultima risorsa, `lifecyclehook`, è l'hook del ciclo di vita stesso:

```
  lifecyclehook:
    Type: AWS::AutoScaling::LifecycleHook
    Properties:
      AutoScalingGroupName: { "Ref" : "AWSEBAutoScalingGroup" }
      LifecycleTransition: autoscaling:EC2_INSTANCE_TERMINATING
      NotificationTargetARN: { "Ref" : "hooktopic" }
      RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] }
```

La definizione dell'hook del ciclo di vita utilizza due [funzioni](ebextensions-functions.md) per compilare i valori per le proprietà dell'hook. `{ "Ref" : "AWSEBAutoScalingGroup" }` recupera il nome del gruppo Auto Scaling creato da Elastic Beanstalk per l'ambiente. `AWSEBAutoScalingGroup` è uno dei [nomi di risorsa](customize-containers-format-resources-eb.md) standard fornito da Elastic Beanstalk.

Per `[AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#d0e48356)`, la risorsa `Ref` restituisce soltanto il nome del ruolo, non l'ARN. Per ottenere l'ARN del parametro `RoleARN`, puoi utilizzare invece un'altra funzione intrinseca, `Fn::GetAtt`, in grado di ottenere attributi da una risorsa. `RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] }` ottiene l'attributo `Arn` dalla risorsa `hookrole`.

`{ "Ref" : "hooktopic" }` ottiene l'ARN dell'argomento Amazon SNS creato in precedenza nel file di configurazione. [Il valore restituito da `Ref` varia in base al tipo di risorsa e può essere trovato nell'argomento della Guida per l' CloudFormation utente relativo al tipo di risorsa. AWS::SNS::Topic ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#d0e62250)

# Modifica delle risorse create da Elastic Beanstalk per l'ambiente
<a name="customize-containers-format-resources-eb"></a>

Le risorse create da Elastic Beanstalk per l'ambiente hanno dei nomi. È possibile utilizzare questi nomi per ottenere informazioni sulle risorse con una [funzione](ebextensions-functions.md) o modificare le proprietà sulle risorse per personalizzarne il comportamento. Questo argomento descrive le AWS risorse utilizzate da Elastic Beanstalk nei diversi tipi di ambienti.

**Nota**  
L'argomento precedente [Risorse personalizzate](environment-resources.md) fornisce alcuni casi d'uso ed esempi per la personalizzazione delle risorse dell'ambiente. È inoltre possibile trovare ulteriori esempi di file di configurazione nell'argomento successivo [Esempi di risorse personalizzate](customize-environment-resources-examples.md). 

Gli ambienti di server Web hanno le risorse seguenti.

**Ambienti del server Web**
+ `AWSEBAutoScalingGroup`([AWS::AutoScaling::AutoScalingGruppo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html)): il gruppo Auto Scaling collegato all'ambiente.
+ Una delle due risorse seguenti.
  + `AWSEBAutoScalingLaunchConfiguration`([AWS::AutoScaling::LaunchConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html)) — La configurazione di avvio collegata al gruppo Auto Scaling dell'ambiente.
  + `AWSEBEC2LaunchTemplate`([AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)) — Il modello di lancio di Amazon EC2 utilizzato dal gruppo Auto Scaling del tuo ambiente.
**Nota**  
Se l'ambiente utilizza funzionalità che richiedono modelli di avvio di Amazon EC2 e la policy utente non dispone delle autorizzazioni richieste, la creazione o l'aggiornamento dell'ambiente potrebbe non riuscire. [Utilizza la [policy utente gestita da **AdministratorAccess- AWSElastic Beanstalk** o aggiungi le autorizzazioni richieste alla tua politica](AWSHowTo.iam.managed-policies.md) personalizzata.](AWSHowTo.iam.managed-policies.md#AWSHowTo.iam.policies)
+ `AWSEBEnvironmentName`([AWS::ElasticBeanstalk::Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html)) — Il tuo ambiente.
+ `AWSEBSecurityGroup`([AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html)) — Il gruppo di sicurezza collegato al gruppo Auto Scaling.
+ `AWSEBRDSDatabase`([AWS: :RDS:: DBInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html)) — L'istanza database di Amazon RDS collegata al tuo ambiente (se applicabile).

In un ambiente con carico bilanciato, è possibile accedere a risorse aggiuntive correlate al load balancer. I Classic Load Balancer hanno una risorsa per il load balancer e una per il gruppo di sicurezza collegato. Application e Network Load Balancer dispongono di risorse aggiuntive per il listener di default, per le regole del listener e per il gruppo di destinazione del load balancer.

**Ambienti con bilanciamento del carico**
+ `AWSEBLoadBalancer`([AWS::ElasticLoadBalancing::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html)) — Il sistema di bilanciamento del carico classico del tuo ambiente.
+ `AWSEBV2LoadBalancer`([AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html)) — L'applicazione o il sistema di bilanciamento del carico di rete dell'ambiente.
+ `AWSEBLoadBalancerSecurityGroup`([AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html)) — Solo in un [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) personalizzato, il nome del gruppo di sicurezza creato da Elastic Beanstalk per il bilanciamento del carico. In un VPC predefinito o EC2 classico, Elastic Load Balancing assegna un gruppo di sicurezza predefinito al load balancer.
+ `AWSEBV2LoadBalancerListener`([AWS::ElasticLoadBalancingV2::Listener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html)) — Un listener che consente al sistema di bilanciamento del carico di verificare le richieste di connessione e di inoltrarle a uno o più gruppi target.
+ `AWSEBV2LoadBalancerListenerRule`([AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html)) — Definisce su quali richieste interviene un listener Elastic Load Balancing e l'azione che esegue.
+ `AWSEBV2LoadBalancerTargetGroup`([AWS::ElasticLoadBalancingV2::TargetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html)) — Un gruppo target Elastic Load Balancing che indirizza le richieste verso una o più destinazioni registrate, come le istanze Amazon EC2.

Gli ambienti worker (operatore) dispongono di risorse per la coda SQS che memorizza nel buffer le richieste in entrata e una tabella Amazon DynamoDB che le istanze utilizzano per la scelta del leader.

**Ambienti lavoratore**
+ `AWSEBWorkerQueue`([AWS::SQS::Queue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html)) — La coda Amazon SQS da cui il demone estrae le richieste che devono essere elaborate.
+ `AWSEBWorkerDeadLetterQueue`([AWS::SQS::Queue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html)) — La coda Amazon SQS che memorizza i messaggi che non possono essere recapitati o che altrimenti non sono stati elaborati correttamente dal demone.
+ `AWSEBWorkerCronLeaderRegistry`([AWS::DynamoDB::Table](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html)) — La tabella Amazon DynamoDB che è il registro interno utilizzato dal demone per le attività periodiche.

# Altre chiavi CloudFormation del modello
<a name="ebextensions-otherkeys"></a>

Abbiamo già introdotto le chiavi dei file di configurazione CloudFormation come `Resources``files`, e`packages`. Elastic Beanstalk aggiunge il contenuto dei file di configurazione CloudFormation al modello che supporta l'ambiente, in modo da poter CloudFormation utilizzare altre sezioni per eseguire attività avanzate nei file di configurazione.

**Topics**
+ [Parameters](#ebextensions-otherkeys-parameters)
+ [Output](#ebextensions-otherkeys-outputs)
+ [Mappature](#ebextensions-otherkeys-mappings)

## Parameters
<a name="ebextensions-otherkeys-parameters"></a>

I parametri sono un'alternativa alle [opzioni personalizzate](configuration-options-custom.md) di Elastic Beanstalk che puoi utilizzare per definire i valori che utilizzi in altre posizioni nei file di configurazione. Come le opzioni personalizzate, puoi utilizzare i parametri per raccogliere i valori configurabili dall'utente in un unico posto. A differenza delle opzioni personalizzate, non è possibile utilizzare l'API di Elastic Beanstalk per impostare i valori dei parametri e il numero di parametri che è possibile definire in un modello è limitato da. CloudFormation

Uno dei motivi per cui potresti voler utilizzare i parametri è fare in modo che i tuoi file di configurazione fungano anche da modelli. CloudFormation Se si utilizzano parametri anziché opzioni personalizzate, è possibile utilizzare il file di configurazione per creare la stessa risorsa in CloudFormation un proprio stack. Ad esempio, puoi avere un file di configurazione che aggiunge un file system Amazon EFS al tuo ambiente per il testing, quindi puoi utilizzare lo stesso file per creare un file system indipendente, non collegato al ciclo di vita del tuo ambiente, per l'uso in produzione.

Il seguente esempio mostra l'uso di parametri per la raccolta di valori configurabili dall'utente all'inizio di un file di configurazione.

**Example [L oadbalancer-accesslogs-existingbucket .config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/resource-configuration/loadbalancer-accesslogs-existingbucket.config) — Parametri**  

```
Parameters:
  bucket:
    Type: String
    Description: "Name of the Amazon S3 bucket in which to store load balancer logs"
    Default: "amzn-s3-demo-bucket"
  bucketprefix:
    Type: String
    Description: "Optional prefix. Can't start or end with a /, or contain the word AWSLogs"
    Default: ""
```

## Output
<a name="ebextensions-otherkeys-outputs"></a>

Puoi utilizzare un blocco `Outputs` per esportare informazioni sulle risorse create in CloudFormation. È quindi possibile utilizzare la `Fn::ImportValue` funzione per inserire il valore in un CloudFormation modello esterno a Elastic Beanstalk.

L'esempio seguente crea un argomento Amazon SNS e ne esporta l'ARN in con il nome. CloudFormation `NotificationTopicArn`

**Example [sns-topic.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/resource-configuration/sns-topic.config)**  

```
Resources:
  NotificationTopic:
    Type: AWS::SNS::Topic

Outputs:
  NotificationTopicArn:
    Description: Notification topic ARN
    Value: { "Ref" : "NotificationTopic" }
    Export:
      Name: NotificationTopicArn
```

In un file di configurazione per un ambiente diverso o in un CloudFormation modello esterno a Elastic Beanstalk, puoi `Fn::ImportValue` usare la funzione per ottenere l'ARN esportato. Questo esempio assegna il valore esportato a una proprietà dell'ambiente denominata `TOPIC_ARN`.

**Example env.config**  

```
option_settings:
  aws:elasticbeanstalk:application:environment:
    TOPIC_ARN: '`{ "Fn::ImportValue" : "NotificationTopicArn" }`'
```

## Mappature
<a name="ebextensions-otherkeys-mappings"></a>

Puoi usare una mappatura per archiviare coppie chiave-valore organizzate per spazio dei nomi. Una mappatura può aiutarti a organizzare i valori che utilizzi in tutte le configurazioni o a modificare il valore di un parametro in base a un altro valore. Ad esempio, la seguente configurazione imposta il valore di un parametro ID dell'account in base alla regione corrente.

**Example [L .config — Mappature oadbalancer-accesslogs-newbucket](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/resource-configuration/loadbalancer-accesslogs-newbucket.config)**  

```
Mappings: 
  Region2ELBAccountId: 
    us-east-1: 
      AccountId: "111122223333"
    us-west-2: 
      AccountId: "444455556666"
    us-west-1: 
      AccountId: "123456789012"
    eu-west-1: 
      AccountId: "777788889999"
...
            Principal: 
              AWS: 
                ? "Fn::FindInMap"
                : 
                  - Region2ELBAccountId
                  - 
                    Ref: "AWS::Region"
                  - AccountId
```

# Funzioni
<a name="ebextensions-functions"></a>

È possibile utilizzare le funzioni nei file di configurazione per inserire i valori per le proprietà delle risorse con informazioni provenienti da altre risorse o dalle impostazioni delle opzioni di configurazione di Elastic Beanstalk. Elastic CloudFormation Beanstalk supporta `Ref` le funzioni `Fn::GetAtt` (`Fn::Join`,,) e una funzione specifica di Elastic Beanstalk,. `Fn::GetOptionSetting`

**Topics**
+ [Ref](#ebextensions-functions-ref)
+ [Fn:: GetAtt](#ebextensions-functions-getatt)
+ [Fn::Join](#ebextensions-functions-join)
+ [Fn:: GetOptionSetting](#ebextensions-functions-getoptionsetting)

## Ref
<a name="ebextensions-functions-ref"></a>

`Ref`Da utilizzare per recuperare la rappresentazione di stringa predefinita di una risorsa. AWS Il valore restituito da `Ref`dipende dal tipo di risorsa e talvolta dipende anche da altri fattori. Ad esempio, un gruppo di sicurezza ([AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html)) restituisce il nome o l'ID del gruppo di sicurezza, a seconda che il gruppo di sicurezza si trovi in un VPC [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) predefinito, EC2 classico o personalizzato.

```
{ "Ref" : "resource name" }
```

**Nota**  
Per dettagli su ciascun tipo di risorsa, inclusi i valori restituiti di `Ref`, consultare [Informazioni di riferimento dei tipi di risorse AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) nella *Guida per l'utente di CloudFormation *.

Dall'[Hook del ciclo di vita Auto Scaling](environment-resources.md) di esempio:

```
Resources:
  lifecyclehook:
    Type: AWS::AutoScaling::LifecycleHook
    Properties:
      AutoScalingGroupName: { "Ref" : "AWSEBAutoScalingGroup" }
```

Puoi anche usarlo `Ref` per recuperare il valore di un CloudFormation parametro definito altrove nello stesso file o in un file di configurazione diverso.

## Fn:: GetAtt
<a name="ebextensions-functions-getatt"></a>

Si usa `Fn::GetAtt` per recuperare il valore di un attributo su una AWS risorsa.

```
{ "Fn::GetAtt" : [ "resource name", "attribute name"] }
```

Dall'[Hook del ciclo di vita Auto Scaling](environment-resources.md) di esempio:

```
Resources:
  lifecyclehook:
    Type: AWS::AutoScaling::LifecycleHook
    Properties:
      RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] }
```

Vedi [Fn:: GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) per ulteriori informazioni.

## Fn::Join
<a name="ebextensions-functions-join"></a>

Utilizza `Fn::Join` per abbinare le stringhe a un delimitatore. Le stringhe possono essere hardcoded oppure utilizzare l'output da `Fn::GetAtt` o `Ref`.

```
{ "Fn::Join" : [ "delimiter", [ "string1", "string2" ] ] }
```

Per ulteriori informazioni, consulta [Fn::Join](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html).

## Fn:: GetOptionSetting
<a name="ebextensions-functions-getoptionsetting"></a>

Usa `Fn::GetOptionSetting` per recuperare il valore di un'impostazione di un'[opzione di configurazione](command-options.md) applicata all'ambiente. 

```
"Fn::GetOptionSetting":
  Namespace: "namespace"
  OptionName: "option name"
  DefaultValue: "default value"
```

Dall'esempio [archiviazione delle chiavi private](https-storingprivatekeys.md):

```
Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["elasticbeanstalk-us-west-2-123456789012"]
          roleName: 
            "Fn::GetOptionSetting": 
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"
```

# Esempi di risorse personalizzate
<a name="customize-environment-resources-examples"></a>

Di seguito viene riportato un elenco di file di configurazione di esempio che puoi utilizzare per personalizzare il tuo ambiente Elastic Beanstalk.
+ [DynamoDB e CloudWatch SNS](https://elasticbeanstalk.s3.amazonaws.com/extensions/DynamoDB-with-CloudWatch-Alarms.config)
+ [Elastic Load Balancing e CloudWatch](https://elasticbeanstalk.s3.amazonaws.com/extensions/ELB-Alarms.config)
+ [ElastiCache](https://elasticbeanstalk.s3.amazonaws.com/extensions/ElastiCache.config)
+ [RDS e CloudWatch](https://elasticbeanstalk.s3.amazonaws.com/extensions/RDS-Alarms.config)
+ [SQS, SNS e CloudWatch](https://elasticbeanstalk.s3.amazonaws.com/extensions/SNS.config)

I sottoargomenti di questa pagina forniscono alcuni esempi estesi per l'aggiunta e la configurazione di risorse personalizzate in un ambiente Elastic Beanstalk.

**Topics**
+ [Esempio: ElastiCache](customize-environment-resources-elasticache.md)
+ [Esempio: SQS e CloudWatch SNS](customize-environment-resources-sqs.md)
+ [Esempio: DynamoDB e CloudWatch SNS](customize-environment-resources-dynamodb.md)

# Esempio: ElastiCache
<a name="customize-environment-resources-elasticache"></a>

I seguenti esempi aggiungono un ElastiCache cluster Amazon alle piattaforme EC2-Classic ed EC2-VPC (entrambe predefinite e personalizzate Amazon Virtual [Private Cloud (Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/) VPC)). Per ulteriori informazioni su queste piattaforme e su come determinare quali sono supportate da EC2 per la tua regione e il tuo account, consulta. AWS [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html) Quindi, consulta la sezione di questo argomento che si applica alla tua piattaforma.
+ [Piattaforme EC2-Classic](#customize-environment-resources-elasticache-classic)
+ [EC2-VPC (predefinito)](#customize-environment-resources-elasticache-defaultvpc)
+ [EC2-VPC (personalizzato)](#customize-environment-resources-elasticache-targetedvpc)

## Piattaforme EC2-Classic
<a name="customize-environment-resources-elasticache-classic"></a>

Questo esempio aggiunge un ElastiCache cluster Amazon a un ambiente con istanze lanciate nella piattaforma EC2-Classic. Tutte le proprietà elencate in questo esempio sono le proprietà minime richieste che devono essere impostate per ogni tipo di risorsa. [Puoi scaricare l'esempio alla pagina example. ElastiCache](https://elasticbeanstalk.s3.amazonaws.com/extensions/ElastiCache.config) 

**Nota**  
Questo esempio crea AWS risorse che potrebbero essere addebitate all'utente. Per ulteriori informazioni sui AWS prezzi, consulta[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Alcuni servizi fanno parte del piano di utilizzo AWS gratuito. Se sei un nuovo cliente, puoi provare questi servizi gratuitamente. Per ulteriori informazioni, consultare [https://aws.amazon.com/free/](https://aws.amazon.com/free/).

Per utilizzare questo esempio, esegui le operazioni indicate di seguito:

1. Crea una directory `[.ebextensions](ebextensions.md)` nella directory di primo livello del bundle di origine. 

1. Crea due file di configurazione con estensione `.config`, posizionandoli nella directory `.ebextensions`. Un file di configurazione definisce le risorse, l'altro file di configurazione definisce le opzioni.

1. Distribuzione dell'applicazione in Elastic Beanstalk.

   YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

Crea un file di configurazione (ad esempio, `elasticache.config`) che definisca le risorse. In questo esempio, creiamo il ElastiCache cluster specificando il nome della risorsa del ElastiCache cluster (`MyElastiCache`), dichiarandone il tipo e quindi configurando le proprietà del cluster. L'esempio fa riferimento al nome della risorsa del gruppo di ElastiCache sicurezza che viene creata e definita in questo file di configurazione. Successivamente, creiamo un gruppo ElastiCache di sicurezza. Definiamo il nome di questa risorsa, dichiariamo il tipo e aggiungiamo una descrizione per il gruppo di sicurezza. Infine, abbiamo impostato le regole di ingresso per il gruppo di ElastiCache sicurezza per consentire l'accesso solo dalle istanze all'interno del gruppo di ElastiCache sicurezza (`MyCacheSecurityGroup`) e del gruppo di sicurezza Elastic Beanstalk (). `AWSEBSecurityGroup` Il nome del parametro, `AWSEBSecurityGroup`, è un nome di risorsa fisso fornito da Elastic Beanstalk. È necessario aggiungere regole di ingresso `AWSEBSecurityGroup` al gruppo di ElastiCache sicurezza per consentire all'applicazione Elastic Beanstalk di connettersi alle istanze del cluster. ElastiCache 

```
#This sample requires you to create a separate configuration file that defines the custom option settings for CacheCluster properties.
          
Resources:
  MyElastiCache:
    Type: AWS::ElastiCache::CacheCluster
    Properties:
      CacheNodeType: 
         Fn::GetOptionSetting:
             OptionName : CacheNodeType
             DefaultValue: cache.m1.small
      NumCacheNodes: 
           Fn::GetOptionSetting:
             OptionName : NumCacheNodes
             DefaultValue: 1
      Engine: 
           Fn::GetOptionSetting:
             OptionName : Engine
             DefaultValue: memcached
      CacheSecurityGroupNames:
        - Ref: MyCacheSecurityGroup
  MyCacheSecurityGroup:
    Type: AWS::ElastiCache::SecurityGroup
    Properties:
      Description: "Lock cache down to webserver access only"
  MyCacheSecurityGroupIngress:
    Type: AWS::ElastiCache::SecurityGroupIngress
    Properties:
      CacheSecurityGroupName: 
        Ref: MyCacheSecurityGroup
      EC2SecurityGroupName:
        Ref: AWSEBSecurityGroup
```

Per ulteriori informazioni sulle risorse utilizzate in questo file di configurazione di esempio, consulta i seguenti riferimenti: 
+ [AWS::ElastiCache::CacheCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html)
+ [AWS::ElastiCache::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group.html)
+ [AWS::ElastiCache: SecurityGroupIngress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html)

Crea un file di configurazione separato denominato `options.config` e definisci le impostazioni delle opzioni personalizzate. 

```
option_settings:
  "aws:elasticbeanstalk:customoption":
     CacheNodeType : cache.m1.small
     NumCacheNodes : 1
     Engine : memcached
```

Queste righe indicano a Elastic Beanstalk di ottenere i valori **CacheNodeTypeper NumCacheNodes le proprietà, ed Engine **CacheNodeTypedai NumCacheNodes** valori,** ed Engine in un file di configurazione (options.config nel nostro esempio) che contiene una sezione option\$1settings **con** una sezione aws:elasticbeanstalk:customoption che contiene una coppia nome-valore che contiene il valore effettivo da utilizzare. Nell'esempio precedente, questo significa che cache.m1.small, 1 e memcached verrebbero utilizzati per i valori. Per ulteriori informazioni su `Fn::GetOptionSetting`, consultare [Funzioni](ebextensions-functions.md).

## EC2-VPC (predefinito)
<a name="customize-environment-resources-elasticache-defaultvpc"></a>

Questo esempio aggiunge un ElastiCache cluster Amazon a un ambiente con istanze lanciate nella piattaforma EC2-VPC. Nello specifico, le informazioni contenute in questa sezione si applicano a uno scenario in cui EC2 avvia le istanze nel VPC predefinito. Tutte le proprietà elencate in questo esempio sono le proprietà minime richieste che devono essere impostate per ogni tipo di risorsa. Per ulteriori informazioni sull'impostazione predefinita VPCs, consulta [VPC e sottoreti](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html) predefiniti.

**Nota**  
Questo esempio crea AWS risorse che potrebbero essere addebitate all'utente. Per ulteriori informazioni sui AWS prezzi, consulta[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Alcuni servizi fanno parte del piano di utilizzo AWS gratuito. Se sei un nuovo cliente, puoi provare questi servizi gratuitamente. Per ulteriori informazioni, consultare [https://aws.amazon.com/free/](https://aws.amazon.com/free/).

Per utilizzare questo esempio, esegui le operazioni indicate di seguito:

1. Crea una directory `[.ebextensions](ebextensions.md)` nella directory di primo livello del bundle di origine. 

1. Crea due file di configurazione con estensione `.config`, posizionandoli nella directory `.ebextensions`. Un file di configurazione definisce le risorse, l'altro file di configurazione definisce le opzioni.

1. Distribuzione dell'applicazione in Elastic Beanstalk.

   YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

Ora dai un nome al file di configurazione delle risorse `elasticache.config`. Per creare il ElastiCache cluster, questo esempio specifica il nome della risorsa ElastiCache cluster (`MyElastiCache`), ne dichiara il tipo e quindi configura le proprietà del cluster. L'esempio fa riferimento all'ID della risorsa del gruppo di sicurezza creata e definita in questo file di configurazione.

Successivamente, creiamo un gruppo di sicurezza EC2. Definiamo il nome per questa risorsa, dichiariamo il tipo, aggiungiamo una descrizione e impostiamo le regole in ingresso per il gruppo di sicurezza per consentire l'accesso solo dalle istanze all'interno del gruppo di sicurezza Elastic Beanstalk (`AWSEBSecurityGroup`). (Il nome del parametro,`AWSEBSecurityGroup`, è un nome di risorsa fisso fornito da Elastic Beanstalk. È necessario aggiungere regole di ingresso `AWSEBSecurityGroup` al gruppo di ElastiCache sicurezza per consentire all'applicazione Elastic Beanstalk di connettersi alle istanze del cluster.) ElastiCache 

Le regole in ingresso per il gruppo di sicurezza EC2 definiscono inoltre il protocollo IP e i numeri di porta su cui i nodi di cache possono accettare le connessioni. Per Redis, il numero predefinito della porta è `6379`.

```
#This sample requires you to create a separate configuration file that defines the custom option settings for CacheCluster properties.

Resources:
  MyCacheSecurityGroup:
    Type: "AWS::EC2::SecurityGroup"
    Properties:
      GroupDescription: "Lock cache down to webserver access only"
      SecurityGroupIngress :
        - IpProtocol : "tcp"
          FromPort :
            Fn::GetOptionSetting:
              OptionName : "CachePort"
              DefaultValue: "6379"
          ToPort :
            Fn::GetOptionSetting:
              OptionName : "CachePort"
              DefaultValue: "6379"
          SourceSecurityGroupName:
            Ref: "AWSEBSecurityGroup"
  MyElastiCache:
    Type: "AWS::ElastiCache::CacheCluster"
    Properties:
      CacheNodeType:
        Fn::GetOptionSetting:
          OptionName : "CacheNodeType"
          DefaultValue : "cache.t2.micro"
      NumCacheNodes:
        Fn::GetOptionSetting:
          OptionName : "NumCacheNodes"
          DefaultValue : "1"
      Engine:
        Fn::GetOptionSetting:
          OptionName : "Engine"
          DefaultValue : "redis"
      VpcSecurityGroupIds:
        -
          Fn::GetAtt:
            - MyCacheSecurityGroup
            - GroupId

Outputs:
  ElastiCache:
    Description : "ID of ElastiCache Cache Cluster with Redis Engine"
    Value :
      Ref : "MyElastiCache"
```

Per ulteriori informazioni sulle risorse utilizzate in questo file di configurazione di esempio, consulta i seguenti riferimenti: 
+ [AWS::ElastiCache::CacheCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html)
+ [AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html)

Successivamente, dai un nome al file di configurazione delle opzioni `options.config` e definisci le impostazioni delle opzioni personalizzate. 

```
option_settings:
  "aws:elasticbeanstalk:customoption":
    CacheNodeType : cache.t2.micro
    NumCacheNodes : 1
    Engine : redis
    CachePort : 6379
```

Queste righe dicono a Elastic Beanstalk di ottenere i valori per le proprietà `CacheNodeType`, `NumCacheNodes`, `Engine`, `CachePort`, `CacheNodeType`, `NumCacheNodes`, `Engine` e dai valori `CachePort` in un file config (`options.config` nel nostro esempio). Questo file include una sezione `aws:elasticbeanstalk:customoption` (in `option_settings`) che contiene coppie nome-valore con i valori effettivi da utilizzare. Nell'esempio precedente, `cache.t2.micro`, `1`, `redis` e `6379` verranno utilizzati per i valori. Per ulteriori informazioni su `Fn::GetOptionSetting`, consultare [Funzioni](ebextensions-functions.md).

## EC2-VPC (personalizzato)
<a name="customize-environment-resources-elasticache-targetedvpc"></a>

Se crei un VPC personalizzato sulla piattaforma EC2-VPC e lo specifichi come VPC in cui EC2 lancia le istanze, il processo di aggiunta di un ElastiCache cluster Amazon al tuo ambiente è diverso da quello di un VPC predefinito. La differenza principale è che è necessario creare un gruppo di sottoreti per il cluster. ElastiCache Tutte le proprietà elencate in questo esempio sono le proprietà minime richieste che devono essere impostate per ogni tipo di risorsa.

**Nota**  
Questo esempio crea AWS risorse che potrebbero essere addebitate all'utente. Per ulteriori informazioni sui AWS prezzi, consulta[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Alcuni servizi fanno parte del piano di utilizzo AWS gratuito. Se sei un nuovo cliente, puoi provare questi servizi gratuitamente. Per ulteriori informazioni, consultare [https://aws.amazon.com/free/](https://aws.amazon.com/free/).

Per utilizzare questo esempio, esegui le operazioni indicate di seguito:

1. Crea una directory `[.ebextensions](ebextensions.md)` nella directory di primo livello del bundle di origine. 

1. Crea due file di configurazione con estensione `.config`, posizionandoli nella directory `.ebextensions`. Un file di configurazione definisce le risorse, l'altro file di configurazione definisce le opzioni.

1. Distribuzione dell'applicazione in Elastic Beanstalk.

   YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

Ora dai un nome al file di configurazione delle risorse `elasticache.config`. Per creare il ElastiCache cluster, questo esempio specifica il nome della risorsa ElastiCache cluster (`MyElastiCache`), ne dichiara il tipo e quindi configura le proprietà del cluster. Le proprietà dell'esempio fanno riferimento al nome del gruppo di sottoreti per il ElastiCache cluster e all'ID della risorsa del gruppo di sicurezza che creiamo e definiamo in questo file di configurazione.

Successivamente, creiamo un gruppo di sicurezza EC2. Definiamo il nome per questa risorsa, dichiariamo il tipo, aggiungiamo una descrizione, l'ID VPC, e impostiamo le regole in ingresso per il gruppo di sicurezza per consentire l'accesso solo dalle istanze all'interno del gruppo di sicurezza Elastic Beanstalk (`AWSEBSecurityGroup`). (Il nome del parametro,`AWSEBSecurityGroup`, è un nome di risorsa fisso fornito da Elastic Beanstalk. È necessario aggiungere regole di ingresso `AWSEBSecurityGroup` al gruppo di ElastiCache sicurezza per consentire all'applicazione Elastic Beanstalk di connettersi alle istanze del cluster.) ElastiCache 

Le regole in ingresso per il gruppo di sicurezza EC2 definiscono inoltre il protocollo IP e i numeri di porta su cui i nodi di cache possono accettare le connessioni. Per Redis, il numero predefinito della porta è `6379`. Infine, questo esempio crea un gruppo di sottoreti per il cluster. ElastiCache Definiamo il nome di questa risorsa, dichiariamo il tipo e aggiungiamo una descrizione e l'ID della sottorete nel gruppo di sottoreti.

**Nota**  
Si consiglia di utilizzare sottoreti private per il cluster. ElastiCache Per ulteriori informazioni su un VPC con una sottorete privata, consulta [https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html).

```
#This sample requires you to create a separate configuration file that defines the custom option settings for CacheCluster properties.

Resources:
  MyElastiCache:
    Type: "AWS::ElastiCache::CacheCluster"
    Properties:
      CacheNodeType:
        Fn::GetOptionSetting:
          OptionName : "CacheNodeType"
          DefaultValue : "cache.t2.micro"
      NumCacheNodes:
        Fn::GetOptionSetting:
          OptionName : "NumCacheNodes"
          DefaultValue : "1"
      Engine:
        Fn::GetOptionSetting:
          OptionName : "Engine"
          DefaultValue : "redis"
      CacheSubnetGroupName:
        Ref: "MyCacheSubnets"
      VpcSecurityGroupIds:
        - Ref: "MyCacheSecurityGroup"
  MyCacheSecurityGroup:
    Type: "AWS::EC2::SecurityGroup"
    Properties:
      GroupDescription: "Lock cache down to webserver access only"
      VpcId:
        Fn::GetOptionSetting:
          OptionName : "VpcId"
      SecurityGroupIngress :
        - IpProtocol : "tcp"
          FromPort :
            Fn::GetOptionSetting:
              OptionName : "CachePort"
              DefaultValue: "6379"
          ToPort :
            Fn::GetOptionSetting:
              OptionName : "CachePort"
              DefaultValue: "6379"
          SourceSecurityGroupId:
            Ref: "AWSEBSecurityGroup"
  MyCacheSubnets:
    Type: "AWS::ElastiCache::SubnetGroup"
    Properties:
      Description: "Subnets for ElastiCache"
      SubnetIds:
        Fn::GetOptionSetting:
          OptionName : "CacheSubnets"
Outputs:
  ElastiCache:
    Description : "ID of ElastiCache Cache Cluster with Redis Engine"
    Value :
      Ref : "MyElastiCache"
```

Per ulteriori informazioni sulle risorse utilizzate in questo file di configurazione di esempio, consulta i seguenti riferimenti: 
+ [AWS::ElastiCache::CacheCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html)
+ [AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html)
+ [AWS::ElastiCache::SubnetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html)

Successivamente, dai un nome al file di configurazione delle opzioni `options.config` e definisci le impostazioni delle opzioni personalizzate.

**Nota**  
In questo esempio, sostituisci i valori di esempio `CacheSubnets` e `VpcId` con il tuo VPC e le tue sottoreti.

```
option_settings:
  "aws:elasticbeanstalk:customoption":
    CacheNodeType : cache.t2.micro
    NumCacheNodes : 1
    Engine : redis
    CachePort : 6379
    CacheSubnets:
      - subnet-1a1a1a1a
      - subnet-2b2b2b2b
      - subnet-3c3c3c3c
    VpcId: vpc-4d4d4d4d
```

Queste righe dicono a Elastic Beanstalk di ottenere i valori per le proprietà `CacheNodeType`, `NumCacheNodes`, `Engine`, `CachePort`, `CacheSubnets`, `VpcId`, `CacheNodeType`, `NumCacheNodes`, `Engine`, `CachePort`, `CacheSubnets` e dai valori `VpcId` in un file config (`options.config` nel nostro esempio). Questo file include una sezione `aws:elasticbeanstalk:customoption` (in `option_settings`) che contiene coppie nome-valore con valori di esempio. Nell'esempio precedente, `cache.t2.micro`, `1`, `redis`, `6379`, `subnet-1a1a1a1a`, `subnet-2b2b2b2b`, `subnet-3c3c3c3c` e `vpc-4d4d4d4d` verranno utilizzati per i valori. Per ulteriori informazioni su `Fn::GetOptionSetting`, consultare [Funzioni](ebextensions-functions.md).

# Esempio: SQS e CloudWatch SNS
<a name="customize-environment-resources-sqs"></a>

In questo esempio viene aggiunta una coda Amazon SQS e un allarme sulla profondità della coda all'ambiente. Le proprietà elencate in questo esempio sono le proprietà minime richieste che devono essere impostate per ciascuna di queste risorse. [Puoi scaricare l'esempio da SQS, SNS e. CloudWatch](https://elasticbeanstalk.s3.amazonaws.com/extensions/SNS.config) 

**Nota**  
Questo esempio crea AWS risorse che potrebbero essere addebitate all'utente. Per ulteriori informazioni sui AWS prezzi, consulta[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Alcuni servizi fanno parte del piano di utilizzo AWS gratuito. Se sei un nuovo cliente, puoi provare questi servizi gratuitamente. Per ulteriori informazioni, consultare [https://aws.amazon.com/free/](https://aws.amazon.com/free/).

Per utilizzare questo esempio, esegui le operazioni indicate di seguito:

1. Crea una directory `[.ebextensions](ebextensions.md)` nella directory di primo livello del bundle di origine. 

1. Crea due file di configurazione con estensione `.config`, posizionandoli nella directory `.ebextensions`. Un file di configurazione definisce le risorse, l'altro file di configurazione definisce le opzioni.

1. Distribuzione dell'applicazione in Elastic Beanstalk.

   YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

Crea un file di configurazione (ad esempio, sqs.config) che definisca le risorse. In questo esempio creiamo un coda SQS e definiamo la proprietà `VisbilityTimeout` nella risorsa `MySQSQueue`. Successivamente creiamo un `Topic` SNS e specifichiamo che le e-mail vengano inviate a `someone@example.com` quando viene generato l'allarme. Infine, creiamo un CloudWatch allarme se la coda supera i 10 messaggi. Nella proprietà `Dimensions` specifichiamo il nome della dimensione e il valore che rappresenta la misurazione della dimensione. Utilizziamo `Fn::GetAtt` per restituire il valore di `QueueName` da `MySQSQueue`.

```
#This sample requires you to create a separate configuration file to define the custom options for the SNS topic and SQS queue.
Resources:
  MySQSQueue:
    Type: AWS::SQS::Queue
    Properties: 
      VisibilityTimeout:
        Fn::GetOptionSetting:
          OptionName: VisibilityTimeout
          DefaultValue: 30
  AlarmTopic:
    Type: AWS::SNS::Topic
    Properties: 
      Subscription:
        - Endpoint:
            Fn::GetOptionSetting:
              OptionName: AlarmEmail
              DefaultValue: "nobody@amazon.com"
          Protocol: email
  QueueDepthAlarm:
    Type: AWS::CloudWatch::Alarm
    Properties:
      AlarmDescription: "Alarm if queue depth grows beyond 10 messages"
      Namespace: "AWS/SQS"
      MetricName: ApproximateNumberOfMessagesVisible
      Dimensions:
        - Name: QueueName
          Value : { "Fn::GetAtt" : [ "MySQSQueue", "QueueName"] }
      Statistic: Sum
      Period: 300
      EvaluationPeriods: 1
      Threshold: 10
      ComparisonOperator: GreaterThanThreshold
      AlarmActions:
        - Ref: AlarmTopic
      InsufficientDataActions:
        - Ref: AlarmTopic

Outputs :
  QueueURL: 
    Description : "URL of newly created SQS Queue"
    Value : { Ref : "MySQSQueue" }
  QueueARN :
    Description : "ARN of newly created SQS Queue"
    Value : { "Fn::GetAtt" : [ "MySQSQueue", "Arn"]}
  QueueName :
    Description : "Name newly created SQS Queue"
    Value : { "Fn::GetAtt" : [ "MySQSQueue", "QueueName"]}
```

Per ulteriori informazioni sulle risorse utilizzate in questo file di configurazione di esempio, consulta i seguenti riferimenti: 
+ [AWS::SQS::Queue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html)
+ [AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html)
+ [AWS::CloudWatch::Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)

Crea un file di configurazione separato denominato `options.config` e definisci le impostazioni delle opzioni personalizzate.

```
option_settings:
  "aws:elasticbeanstalk:customoption":
     VisibilityTimeout : 30
     AlarmEmail : "nobody@example.com"
```

Queste righe indicano a Elastic Beanstalk di ottenere i valori **VisibilityTimeout per le proprietà e Subscription Endpoint **VisibilityTimeout dai** valori e** Subscription Endpoint in un file di configurazione (options.config nel nostro esempio) che contiene una sezione option\$1settings **con** una sezione aws:elasticbeanstalk:customoption che contiene una coppia nome-valore che contiene il valore effettivo da utilizzare. Nell'esempio precedente questo significa che per i valori verrebbero utilizzati 30 e "nobody@amazon.com". Per ulteriori informazioni su `Fn::GetOptionSetting`, consultare [Funzioni](ebextensions-functions.md).

# Esempio: DynamoDB e CloudWatch SNS
<a name="customize-environment-resources-dynamodb"></a>

Questo file di configurazione imposta la tabella DynamoDB come gestore di sessione per un'applicazione basata su PHP utilizzando l'SDK for PHP 2. AWS Per utilizzare questo esempio, è necessario disporre di un profilo dell'istanza IAM, che viene aggiunto alle istanze nell'ambiente e utilizzato per accedere alla tabella DynamoDB.

 Puoi scaricare l'esempio che utilizzeremo in questa fase facendo clic su [DynamoDB session Support example](https://elasticbeanstalk.s3.amazonaws.com/extensions/PHP-DynamoDB-Session-Support.zip). L'esempio contiene i file seguenti:
+ L'applicazione d'esempio, `index.php`.
+ Un file di configurazione`dynamodb.config`, per creare e configurare una tabella DynamoDB e AWS altre risorse e installare il software sulle istanze EC2 che ospitano l'applicazione in un ambiente Elastic Beanstalk
+ Un file di configurazione, `options.config`, che sovrascrive le impostazioni di default in `dynamodb.config` con impostazioni specifiche per questa particolare installazione.

**`index.php`**

```
<?php

// Include the SDK using the Composer autoloader
require '../vendor/autoload.php';

use Aws\DynamoDb\DynamoDbClient;

// Grab the session table name and region from the configuration file
list($tableName, $region) = file(__DIR__ . '/../sessiontable');
$tableName = rtrim($tableName);
$region = rtrim($region);

// Create a DynamoDB client and register the table as the session handler
$dynamodb = DynamoDbClient::factory(array('region' => $region));
$handler = $dynamodb->registerSessionHandler(array('table_name' => $tableName, 'hash_key' => 'username'));

// Grab the instance ID so we can display the EC2 instance that services the request
$instanceId = file_get_contents("http://169.254.169.254/latest/meta-data/instance-id");
?>
<h1>Elastic Beanstalk PHP Sessions Sample</h1>
<p>This sample application shows the integration of the Elastic Beanstalk PHP
container and the session support for DynamoDB from the AWS SDK for PHP 2.
Using DynamoDB session support, the application can be scaled out across
multiple web servers. For more details, see the
<a href="https://aws.amazon.com/php/">PHP Developer Center</a>.</p>

<form id="SimpleForm" name="SimpleForm" method="post" action="index.php">
<?php
echo 'Request serviced from instance ' . $instanceId . '<br/>';
echo '<br/>';

if (isset($_POST['continue'])) {
  session_start();
  $_SESSION['visits'] = $_SESSION['visits'] + 1;
  echo 'Welcome back ' . $_SESSION['username'] . '<br/>';
  echo 'This is visit number ' . $_SESSION['visits'] . '<br/>';
  session_write_close();
  echo '<br/>';
  echo '<input type="Submit" value="Refresh" name="continue" id="continue"/>';
  echo '<input type="Submit" value="Delete Session" name="killsession" id="killsession"/>';
} elseif (isset($_POST['killsession'])) {
  session_start();
  echo 'Goodbye ' . $_SESSION['username'] . '<br/>';
  session_destroy();
  echo 'Username: <input type="text" name="username" id="username" size="30"/><br/>';
  echo '<br/>';
  echo '<input type="Submit" value="New Session" name="newsession" id="newsession"/>';
} elseif (isset($_POST['newsession'])) {
  session_start();
  $_SESSION['username'] = $_POST['username'];
  $_SESSION['visits'] = 1;
  echo 'Welcome to a new session ' . $_SESSION['username'] . '<br/>';
  session_write_close();
  echo '<br/>';
  echo '<input type="Submit" value="Refresh" name="continue" id="continue"/>';
  echo '<input type="Submit" value="Delete Session" name="killsession" id="killsession"/>';
} else {
  echo 'To get started, enter a username.<br/>';
  echo '<br/>';
  echo 'Username: <input type="text" name="username" id="username" size="30"/><br/>';
  echo '<input type="Submit" value="New Session" name="newsession" id="newsession"/>';
}
?>
</form>
```

**`.ebextensions/dynamodb.config`**

```
Resources:
  SessionTable:
    Type: AWS::DynamoDB::Table
    Properties:
      KeySchema: 
        HashKeyElement:
          AttributeName:
            Fn::GetOptionSetting:
              OptionName : SessionHashKeyName
              DefaultValue: "username"
          AttributeType:
            Fn::GetOptionSetting:
              OptionName : SessionHashKeyType
              DefaultValue: "S"
      ProvisionedThroughput:
        ReadCapacityUnits:
          Fn::GetOptionSetting:
            OptionName : SessionReadCapacityUnits
            DefaultValue: 1
        WriteCapacityUnits:
          Fn::GetOptionSetting:
            OptionName : SessionWriteCapacityUnits
            DefaultValue: 1

  SessionWriteCapacityUnitsLimit:
    Type: AWS::CloudWatch::Alarm
    Properties:
      AlarmDescription: { "Fn::Join" : ["", [{ "Ref" : "AWSEBEnvironmentName" }, " write capacity limit on the session table." ]]}
      Namespace: "AWS/DynamoDB"
      MetricName: ConsumedWriteCapacityUnits
      Dimensions:
        - Name: TableName
          Value: { "Ref" : "SessionTable" }
      Statistic: Sum
      Period: 300
      EvaluationPeriods: 12
      Threshold:
          Fn::GetOptionSetting:
            OptionName : SessionWriteCapacityUnitsAlarmThreshold
            DefaultValue: 240
      ComparisonOperator: GreaterThanThreshold
      AlarmActions:
        - Ref: SessionAlarmTopic
      InsufficientDataActions:
        - Ref: SessionAlarmTopic

  SessionReadCapacityUnitsLimit:
    Type: AWS::CloudWatch::Alarm
    Properties:
      AlarmDescription: { "Fn::Join" : ["", [{ "Ref" : "AWSEBEnvironmentName" }, " read capacity limit on the session table." ]]}
      Namespace: "AWS/DynamoDB"
      MetricName: ConsumedReadCapacityUnits
      Dimensions:
        - Name: TableName
          Value: { "Ref" : "SessionTable" }
      Statistic: Sum
      Period: 300
      EvaluationPeriods: 12
      Threshold:
          Fn::GetOptionSetting:
            OptionName : SessionReadCapacityUnitsAlarmThreshold
            DefaultValue: 240
      ComparisonOperator: GreaterThanThreshold
      AlarmActions:
        - Ref: SessionAlarmTopic
      InsufficientDataActions:
        - Ref: SessionAlarmTopic

  SessionThrottledRequestsAlarm:
    Type: AWS::CloudWatch::Alarm
    Properties:
      AlarmDescription: { "Fn::Join" : ["", [{ "Ref" : "AWSEBEnvironmentName" }, ": requests are being throttled." ]]}
      Namespace: AWS/DynamoDB
      MetricName: ThrottledRequests
      Dimensions:
        - Name: TableName
          Value: { "Ref" : "SessionTable" }
      Statistic: Sum
      Period: 300
      EvaluationPeriods: 1
      Threshold: 
        Fn::GetOptionSetting:
          OptionName: SessionThrottledRequestsThreshold
          DefaultValue: 1
      ComparisonOperator: GreaterThanThreshold
      AlarmActions:
        - Ref: SessionAlarmTopic
      InsufficientDataActions:
        - Ref: SessionAlarmTopic

  SessionAlarmTopic:
    Type: AWS::SNS::Topic
    Properties:
      Subscription:
        - Endpoint:
            Fn::GetOptionSetting:
              OptionName: SessionAlarmEmail
              DefaultValue: "nobody@amazon.com"
          Protocol: email

files:
  "/var/app/sessiontable":
    mode: "000444"
    content: |
      `{"Ref" : "SessionTable"}`
      `{"Ref" : "AWS::Region"}`

  "/var/app/composer.json":
    mode: "000744"
    content:
      {
        "require": {
           "aws/aws-sdk-php": "*"
        }
      }

container_commands:
 "1-install-composer":
   command: "cd /var/app; curl -s http://getcomposer.org/installer | php"
 "2-install-dependencies":
   command: "cd /var/app; php composer.phar install"
 "3-cleanup-composer":
   command: "rm -Rf /var/app/composer.*"
```

Nel file di configurazione di esempio, creiamo dapprima la tabella DynamoDB e configuriamo la struttura della chiave primaria per la tabella e le unità di capacità per allocare risorse sufficienti e fornire il throughput richiesto. Successivamente, creiamo allarmi per e. CloudWatch `WriteCapacity` `ReadCapacity` e quindi un argomento SNS che invia e-mail a "nobody@amazon.com" se le soglie di allarme vengono superate. 

Dopo aver creato e configurato AWS le risorse per il nostro ambiente, dobbiamo personalizzare le istanze EC2. Utilizziamo la `files` chiave per passare i dettagli della tabella DynamoDB alle istanze EC2 nel nostro ambiente e per aggiungere un «require» nel file per `composer.json` l'SDK for PHP 2. AWS Eseguiamo, infine, i comandi contenitore per installare Composer, le dipendenze necessarie e quindi rimuovere il programma di installazione.

**`.ebextensions/options.config`**

```
option_settings:
  "aws:elasticbeanstalk:customoption":
     SessionHashKeyName                      : username
     SessionHashKeyType                      : S
     SessionReadCapacityUnits                : 1
     SessionReadCapacityUnitsAlarmThreshold  : 240
     SessionWriteCapacityUnits               : 1 
     SessionWriteCapacityUnitsAlarmThreshold : 240
     SessionThrottledRequestsThreshold       : 1
     SessionAlarmEmail                       : me@example.com
```

Sostituisci il SessionAlarmEmail valore con l'e-mail a cui desideri inviare le notifiche di allarme. Il file `options.config` contiene i valori utilizzati per alcune delle variabili definite in `dynamodb.config`. Ad esempio, `dynamodb.config` contiene le seguenti righe:

```
Subscription:
  - Endpoint:
      Fn::GetOptionSetting:
        OptionName: SessionAlarmEmail
        DefaultValue: "nobody@amazon.com"
```

Queste righe indicano a Elastic Beanstalk di ottenere il valore **per** la proprietà Endpoint **SessionAlarmEmail**dal valore in un `options.config` file di configurazione (nella nostra applicazione di esempio) che contiene una sezione option\$1settings **con** una sezione aws:elasticbeanstalk:customoption che contiene una coppia nome-valore che contiene il valore effettivo da utilizzare. Nell'esempio `nobody@amazon.com` precedente, ciò significa che verrebbe assegnato il valore. **SessionAlarmEmail**

Per ulteriori informazioni sulle CloudFormation risorse utilizzate in questo esempio, consulta i seguenti riferimenti:
+ [AWS::DynamoDB::Table](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html)
+ [AWS::CloudWatch::Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)
+ [AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html)

# Utilizzo delle configurazioni salvate di Elastic Beanstalk
<a name="environment-configuration-savedconfig"></a>

Puoi salvare la configurazione dell'ambiente come un oggetto in Amazon Simple Storage Service (Amazon S3) e puoi applicarla ad altri ambienti durante la creazione dell'ambiente o a un ambiente in esecuzione. Le *configurazioni salvate* sono modelli in formato YAML che definiscono le impostazioni [versione della piattaforma](concepts.platforms.md), [livello](concepts.md#concepts-tier), [opzioni di configurazione](command-options.md) di un ambiente e i tag.

Puoi applicare tag a una configurazione salvata al momento della sua creazione e modificare i tag di configurazioni salvate esistenti. I tag applicati a una configurazione salvata non sono correlati ai tag specificati in una configurazione salvata utilizzando la chiave `Tags:`. Quest'ultima viene applicata a un ambiente quando la configurazione salvata viene applicata all'ambiente. Per informazioni dettagliate, vedi [Tagging delle configurazioni salvate](environment-configuration-savedconfig-tagging.md).

**Nota**  
È possibile creare e applicare le configurazioni salvate agli ambienti Elastic Beanstalk utilizzando diversi metodi. Questi includono la console Elastic Beanstalk, l'interfaccia a riga di comando EB e AWS CLI.  
Vedi i seguenti argomenti per esempi di metodi alternativi per la creazione e l'applicazione di configurazioni salvate:  
[Impostazione delle opzioni di configurazione prima della creazione di un ambiente](environment-configuration-methods-before.md)
[Impostazione delle opzioni di configurazione durante la creazione di un ambiente](environment-configuration-methods-during.md)
[Impostazione delle opzioni di configurazione dopo la creazione di un ambiente](environment-configuration-methods-after.md)

Crea una configurazione salvata dallo stato attuale dell'ambiente nella console di gestione Elastic Beanstalk.

**Per salvare la configurazione di un ambiente**

1. Apri la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) e, **nell'elenco Regioni, seleziona la tua**. Regione AWS

1. Nel pannello di navigazione selezionare **Environments** (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

1. Scegli **Actions** (Operazioni), quindi **Save configuration** (Salva configurazione).

1. Utilizzare il modulo sullo schermo per assegnare un nome alla configurazione salvata. Facoltativamente, fornire una breve descrizione e aggiungere chiavi e valori dei tag.

1. Scegli **Save** (Salva).  
![\[Pagina Save Configuration (Salva configurazione) nella console Elastic Beanstalk\]](http://docs.aws.amazon.com/it_it/elasticbeanstalk/latest/dg/images/environment-cfg-saveconfiguration-dialog.png)

La configurazione salvata include le impostazioni applicate all'ambiente con la console o con qualsiasi altro client che utilizza l'API Elastic Beanstalk. Puoi quindi applicare la configurazione salvata all'ambiente in un secondo momento per ripristinare lo stato precedente, oppure applicarla a un nuovo ambiente durante la [creazione dell'ambiente](environments-create-wizard.md).

È possibile scaricare una configurazione utilizzando il [**eb config**](eb3-config.md) comando EB CLI, come illustrato nell'esempio seguente. *NAME*è il nome della configurazione salvata. 

```
eb config get NAME
```

**Per applicare una configurazione salvata durante la creazione dell'ambiente (console Elastic Beanstalk)**

1. Apri la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) e, **nell'elenco Regioni, seleziona la tua**. Regione AWS

1. Nel riquadro di navigazione, scegliere **Applicazioni**, quindi selezionare il nome dell'applicazione dall'elenco.

1. Nel riquadro di spostamento individuare il nome dell'applicazione e scegliere **Saved configurations (Configurazioni salvate)**.

1. Selezionare la configurazione salvata che si desidera applicare, quindi scegliere **Launch environment (Avvia ambiente)**.

1. Procedi seguendo la procedura guidata per creare l'ambiente.

Le configurazioni salvate non includono le impostazioni applicate con i [file di configurazione](ebextensions.md) nel codice sorgente della tua applicazione. Se la stessa impostazione viene applicata in un file di configurazione e in una configurazione salvata, l'impostazione nella configurazione salvata prevale. Analogamente, le opzioni specificate nella console Elastic Beanstalk sovrascrivono le opzioni presenti nelle configurazioni salvate. Per ulteriori informazioni, consulta [Priorità](command-options.md#configuration-options-precedence).

Le configurazioni salvate sono memorizzate nel bucket S3 di Elastic Beanstalk in una cartella che ha lo stesso nome dell'applicazione. Ad esempio, le configurazioni per un'applicazione denominata `my-app` nella regione us-west-2 per l'account numero 123456789012 sono disponibili in `s3://elasticbeanstalk-us-west-2-123456789012/resources/templates/my-app/`.

Visualizza i contenuti di una configurazione salvata aprendola in un editor di testo. La seguente configurazione di esempio mostra la configurazione di un ambiente di server Web avviata con la console di gestione Elastic Beanstalk.

```
EnvironmentConfigurationMetadata:
  Description: Saved configuration from a multicontainer Docker environment created with the Elastic Beanstalk Management Console
  DateCreated: '1520633151000'
  DateModified: '1520633151000'
Platform:
  PlatformArn: arn:aws:elasticbeanstalk:us-east-2::platform/Java 8 running on 64bit Amazon Linux/2.5.0
OptionSettings:
  aws:elasticbeanstalk:command:
    BatchSize: '30'
    BatchSizeType: Percentage
  aws:elasticbeanstalk:sns:topics:
    Notification Endpoint: me@example.com
  aws:elb:policies:
    ConnectionDrainingEnabled: true
    ConnectionDrainingTimeout: '20'
  aws:elb:loadbalancer:
    CrossZone: true
  aws:elasticbeanstalk:environment:
    ServiceRole: aws-elasticbeanstalk-service-role
  aws:elasticbeanstalk:application:
    Application Healthcheck URL: /
  aws:elasticbeanstalk:healthreporting:system:
    SystemType: enhanced
  aws:autoscaling:launchconfiguration:
    IamInstanceProfile: aws-elasticbeanstalk-ec2-role
    InstanceType: t2.micro
    EC2KeyName: workstation-uswest2
  aws:autoscaling:updatepolicy:rollingupdate:
    RollingUpdateType: Health
    RollingUpdateEnabled: true
EnvironmentTier:
  Type: Standard
  Name: WebServer
AWSConfigurationTemplateVersion: 1.1.0.0
Tags:
  Cost Center: WebApp Dev
```

È possibile modificare i contenuti di una configurazione salvata e salvarla nella stessa posizione in Amazon S3. Qualsiasi configurazione salvata formattata correttamente memorizzata nel percorso corretto può essere applicata a un ambiente utilizzando la console di gestione Elastic Beanstalk.

Sono supportate le seguenti chiavi.
+ **AWSConfigurationTemplateVersion**(obbligatorio) — La versione del modello di configurazione (1.1.0.0).

  ```
  AWSConfigurationTemplateVersion: 1.1.0.0
  ```
+ **Platform**: Amazon Resource Name (ARN) della versione della piattaforma dell'ambiente. Puoi specificare una piattaforma in base all'ARN oppure il nome dello stack di soluzioni.

  ```
  Platform:
    PlatformArn: arn:aws:elasticbeanstalk:us-east-2::platform/Java 8 running on 64bit Amazon Linux/2.5.0
  ```
+ **SolutionStack**— Il nome completo dello [stack di soluzioni](concepts.platforms.md) utilizzato per creare l'ambiente.

  ```
  SolutionStack: 64bit Amazon Linux 2017.03 v2.5.0 running Java 8
  ```
+ **OptionSettings**— Impostazioni delle [opzioni di configurazione](command-options.md) da applicare all'ambiente. Ad esempio, la seguente voce imposta il tipo di istanza su t2.micro.

  ```
  OptionSettings:
    aws:autoscaling:launchconfiguration:
      InstanceType: t2.micro
  ```
+ **Tags**: fino a 47 tag da applicare alle risorse create all'interno dell'ambiente.

  ```
  Tags:
    Cost Center: WebApp Dev
  ```
+ **EnvironmentTier**— Il tipo di ambiente da creare. Per un ambiente server Web, è possibile escludere questa sezione (il server Web è l'impostazione predefinita). Per un ambiente lavoratore, utilizza le seguenti indicazioni.

  ```
  EnvironmentTier:
    Name: Worker
    Type: SQS/HTTP
  ```

**Nota**  
È possibile creare e applicare le configurazioni salvate agli ambienti Elastic Beanstalk utilizzando diversi metodi. Questi includono la console Elastic Beanstalk, l'interfaccia a riga di comando EB e AWS CLI.  
Vedi i seguenti argomenti per esempi di metodi alternativi per la creazione e l'applicazione di configurazioni salvate:  
[Impostazione delle opzioni di configurazione prima della creazione di un ambiente](environment-configuration-methods-before.md)
[Impostazione delle opzioni di configurazione durante la creazione di un ambiente](environment-configuration-methods-during.md)
[Impostazione delle opzioni di configurazione dopo la creazione di un ambiente](environment-configuration-methods-after.md)

# Tagging delle configurazioni salvate
<a name="environment-configuration-savedconfig-tagging"></a>

Puoi applicare tag alle configurazioni AWS Elastic Beanstalk salvate. I tag sono coppie chiave-valore associate alle risorse. AWS 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 durante la creazione di una configurazione salvata. In una configurazione salvata esistente, puoi aggiungere o rimuovere i tag e aggiornare i valori di tag esistenti. Puoi aggiungere fino a 50 tag per ogni configurazione salvata.

## Aggiunta di tag durante la creazione della configurazione salvata
<a name="environment-configuration-savedconfig-tagging.create"></a>

Quando utilizzi la console Elastic Beanstalk per [salvare una configurazione](environment-configuration-savedconfig.md), puoi specificare chiavi e valori dei tag nella pagina **Save Configuration (Salva configurazione)**.

Se utilizzi la CLI EB per salvare un'applicazione, utilizza l'opzione `--tags` con **[eb config](eb3-config.md)** per aggiungere i tag.

```
~/workspace/my-app$ eb config --tags mytag1=value1,mytag2=value2
```

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

```
$ aws elasticbeanstalk create-configuration-template \
      --tags Key=mytag1,Value=value1 Key=mytag2,Value=value2 \
      --application-name my-app --template-name my-template --solution-stack-name solution-stack
```

## Gestione dei tag di una configurazione salvata esistente
<a name="environment-configuration-savedconfig-tagging.manage"></a>

Puoi aggiungere, aggiornare ed eliminare i tag in una configurazione salvata di Elastic Beanstalk esistente.

**Per gestire i tag di una configurazione salvata utilizzando la console Elastic Beanstalk**

1. Apri la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) e, **nell'elenco Regioni, seleziona la tua**. Regione AWS

1. Nel riquadro di navigazione, scegliere **Applicazioni**, quindi selezionare il nome dell'applicazione dall'elenco.

1. Nel riquadro di spostamento individuare il nome dell'applicazione e scegliere **Saved configurations (Configurazioni salvate)**.

1. Selezionare la configurazione salvata che si desidera gestire.

1. Scegliere **Actions (Operazioni)**, quindi **Manage tags (Gestisci tag)**.

1. Utilizzare il modulo su schermo per aggiungere, aggiornare o eliminare tag.

1. Per salvare le modifiche scegli **Apply** (Applica) nella parte inferiore della pagina.

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

Ad esempio, il comando seguente consente di elencare i tag in una configurazione salvata.

```
~/workspace/my-app$ eb tags --list --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:configurationtemplate/my-app/my-template"
```

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:configurationtemplate/my-app/my-template"
```

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

Con il AWS CLI o altri client basati su API, usa 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 configurazione salvata.

```
$ aws elasticbeanstalk list-tags-for-resource --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:configurationtemplate/my-app/my-template"
```

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 configurazione salvata.

```
$ 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:configurationtemplate/my-app/my-template"
```

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 configurazione salvata di Elastic Beanstalk, è necessario l'ARN della configurazione salvata. Per costruire l'ARN, utilizza innanzitutto il comando seguente per recuperare il nome della configurazione salvata.  

```
$ aws elasticbeanstalk describe-applications --application-names my-app
```
Cerca la chiave `ConfigurationTemplates` nell'output di comando. Questo elemento mostra il nome della configurazione salvata. Utilizza questo nome dove `my-template` viene specificato nei comandi citati in questa pagina.

# Manifest di ambiente (`env.yaml`)
<a name="environment-cfg-manifest"></a>

Puoi includere un manifest di ambiente in formato YAML nella radice del bundle di origine della tua applicazione per configurare il nome dell'ambiente, lo stack di soluzioni e [collegamenti tra ambienti](environment-cfg-links.md) da utilizzare durante la creazione dell'ambiente.

Questo formato di file include supporto per gruppi di ambiente. Per utilizzare i gruppi, specifica il nome dell'ambiente nel manifest con un simbolo \$1 alla fine. Quando crei o aggiorni l'ambiente, specifica il nome del gruppo con `--group-name` (AWS CLI) o `--env-group-suffix` (CLI EB). Per ulteriori informazioni sui gruppi, consulta [Creazione e aggiornamento di gruppi di ambienti Elastic Beanstalk](environment-mgmt-compose.md).

L'esempio di manifest seguente definisce un ambiente server Web con un collegamento a un componente di ambiente lavoratore da cui dipende. Il manifest utilizza i gruppi per consentire la creazione di più ambienti con lo stesso bundle di origine:

**`~/myapp/frontend/env.yaml`**

```
AWSConfigurationTemplateVersion: 1.1.0.0
SolutionStack: 64bit Amazon Linux 2015.09 v2.0.6 running Multi-container Docker 1.7.1 (Generic)
OptionSettings:
  aws:elasticbeanstalk:command:
    BatchSize: '30'
    BatchSizeType: Percentage
  aws:elasticbeanstalk:sns:topics:
    Notification Endpoint: me@example.com
  aws:elb:policies:
    ConnectionDrainingEnabled: true
    ConnectionDrainingTimeout: '20'
  aws:elb:loadbalancer:
    CrossZone: true
  aws:elasticbeanstalk:environment:
    ServiceRole: aws-elasticbeanstalk-service-role
  aws:elasticbeanstalk:application:
    Application Healthcheck URL: /
  aws:elasticbeanstalk:healthreporting:system:
    SystemType: enhanced
  aws:autoscaling:launchconfiguration:
    IamInstanceProfile: aws-elasticbeanstalk-ec2-role
    InstanceType: t2.micro
    EC2KeyName: workstation-uswest2
  aws:autoscaling:updatepolicy:rollingupdate:
    RollingUpdateType: Health
    RollingUpdateEnabled: true
Tags:
  Cost Center: WebApp Dev
CName: front-A08G28LG+
EnvironmentName: front+
EnvironmentLinks:
  "WORKERQUEUE" : "worker+"
```

Sono supportate le seguenti chiavi.
+ **AWSConfigurationTemplateVersion**(obbligatorio) — La versione del modello di configurazione (1.1.0.0).

  ```
  AWSConfigurationTemplateVersion: 1.1.0.0
  ```
+ **Platform**: Amazon Resource Name (ARN) della versione della piattaforma dell'ambiente. Puoi specificare una piattaforma in base all'ARN oppure il nome dello stack di soluzioni.

  ```
  Platform:
    PlatformArn: arn:aws:elasticbeanstalk:us-east-2::platform/Java 8 running on 64bit Amazon Linux/2.5.0
  ```
+ **SolutionStack**— Il nome completo dello [stack di soluzioni](concepts.platforms.md) utilizzato per creare l'ambiente.

  ```
  SolutionStack: 64bit Amazon Linux 2017.03 v2.5.0 running Java 8
  ```
+ **OptionSettings**— Impostazioni delle [opzioni di configurazione](command-options.md) da applicare all'ambiente. Ad esempio, la seguente voce imposta il tipo di istanza su t2.micro.

  ```
  OptionSettings:
    aws:autoscaling:launchconfiguration:
      InstanceType: t2.micro
  ```
+ **Tags**: fino a 47 tag da applicare alle risorse create all'interno dell'ambiente.

  ```
  Tags:
    Cost Center: WebApp Dev
  ```
+ **EnvironmentTier**— Il tipo di ambiente da creare. Per un ambiente server Web, è possibile escludere questa sezione (il server Web è l'impostazione predefinita). Per un ambiente lavoratore, utilizza le seguenti indicazioni.

  ```
  EnvironmentTier:
    Name: Worker
    Type: SQS/HTTP
  ```
+ **CName**— Il CNAME per l'ambiente. Includi un carattere \$1 alla fine del nome per abilitare i gruppi.

  ```
  CName: front-A08G28LG+
  ```
+ **EnvironmentName**— Il nome dell'ambiente da creare. Includi un carattere \$1 alla fine del nome per abilitare i gruppi.

  ```
  EnvironmentName: front+
  ```

  Con i gruppi abilitati, devi specificare un nome del gruppo quando crei gli ambienti. Elastic Beanstalk aggiunge il nome del gruppo al nome dell'ambiente con un trattino. Ad esempio, con il nome dell'ambiente `front+` e il nome del gruppo `dev`, Elastic Beanstalk creerà l'ambiente con il nome `front-dev`.
+ **EnvironmentLinks**— Una mappa dei nomi delle variabili e dei nomi di ambiente delle dipendenze. L'esempio seguente rende l'ambiente `worker+` una dipendenza e indica a Elastic Beanstalk di salvare le informazioni di collegamento su una variabile denominata `WORKERQUEUE`.

  ```
  EnvironmentLinks:
    "WORKERQUEUE" : "worker+"
  ```

  Il valore della variabile di collegamento varia a seconda del tipo di ambiente collegato. Per un ambiente server Web, il link è il CNAME dell'ambiente. Per un ambiente worker, il collegamento è il nome della coda Amazon Simple Queue Service (Amazon SQS) dell'ambiente.

Le **CName**EnvironmentLinks****chiavi **EnvironmentName**e possono essere utilizzate per creare [gruppi di ambienti](environment-mgmt-compose.md) e [collegamenti ad altri ambienti](environment-cfg-links.md). Queste funzionalità sono attualmente supportate quando si utilizza l'EB CLI AWS CLI o un SDK.

# Utilizzo di un'immagine Amazon Machine Image (AMI) personalizzata nell'ambiente Elastic Beanstalk
<a name="using-features.customenv"></a>

Questa sezione spiega quando prendere in considerazione l'utilizzo di un'AMI personalizzata e fornisce le procedure per configurare e gestire l'AMI personalizzata nel proprio ambiente. Quando crei un AWS Elastic Beanstalk ambiente, puoi specificare un'Amazon Machine Image (AMI) da utilizzare al posto dell'AMI Elastic Beanstalk standard inclusa nella versione della tua piattaforma. Un'AMI personalizzata può migliorare i tempi di provisioning quando le istanze vengono lanciate nell'ambiente se è necessario installare molto software non incluso nello standard. AMIs

L'uso dei [file di configurazione](ebextensions.md) è efficace per personalizzare l'ambiente in modo rapido e coerente. Tuttavia, l'applicazione delle configurazioni può iniziare a richiedere molto tempo durante la creazione e gli aggiornamenti dell'ambiente. Se la configurazione del server occupa una posizione preminente nei file di configurazione, puoi ridurre tale tempo effettuando un'AMI personalizzata che include già il software e la configurazione di cui hai bisogno.

Un'AMI personalizzata, inoltre, consente di apportare modifiche ai componenti di basso livello, ad esempio il kernel Linux, difficili da implementare o che richiedono tempi lunghi di applicazione nei file di configurazione. Per creare un'AMI personalizzata, avvia un'AMI della piattaforma Elastic Beanstalk in Amazon EC2, personalizza il software e la configurazione in base alle tue esigenze, quindi arresta l'istanza e salva l'AMI.

## Creazione di un'AMI personalizzata
<a name="using-features.customenv.create"></a>

È possibile utilizzare [EC2 Image](https://aws.amazon.com/image-builder) Builder per creare e AMIs gestire soluzioni personalizzate in alternativa a queste procedure. Per ulteriori informazioni, consultare la Guida per l'[utente di Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html).

**Per identificare la AMI Elastic Beanstalk di base**

1. In una finestra di comando, eseguire un comando come il seguente. Per ulteriori informazioni, consulta [describe-platform-version](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-platform-version.html) nella *documentazione di riferimento dei comandi della AWS CLI *. 

   Specificate la AWS regione in cui desiderate utilizzare l'AMI personalizzata e sostituite l'ARN e il numero di versione della piattaforma con la piattaforma Elastic Beanstalk su cui è basata l'applicazione.

     
**Example - Mac OS/Linux**  

   ```
   $ aws elasticbeanstalk describe-platform-version --region us-east-2 \
         --platform-arn "arn:aws:elasticbeanstalk:us-east-2::platform/Node.js 20 running on 64bit Amazon Linux 2023/6.1.7" \
         --query PlatformDescription.CustomAmiList
   [
       {
           "VirtualizationType": "pv",
           "ImageId": ""
       },
       {
           "VirtualizationType": "hvm",
           "ImageId": "ami-020ae06fdda6a0f66"
       }
   ]
   ```  
**Example - Sistema operativo Windows**  

   ```
   C:\> aws elasticbeanstalk describe-platform-version --region us-east-2 --platform-arn"arn:aws:elasticbeanstalk:us-east-2::platform/
   IIS 10.0 running on 64bit Windows Server 2022/2.15.3" --query PlatformDescription.CustomAmiList
   [
       {
           "VirtualizationType": "pv",
           "ImageId": ""
       },
       {
           "VirtualizationType": "hvm",
           "ImageId": "ami-020ae06fdda6a0f66"
       }
   ]
   ```

1. Annotare il `ImageId` valore simile `ami-020ae06fdda6a0f66` nel risultato.

Il valore è l'AMI Elastic Beanstalk di serie per la versione della piattaforma, l'architettura AWS dell'istanza EC2 e la regione pertinenti per l'applicazione. Se devi creare AMIs per più piattaforme, architetture o AWS regioni, ripeti questo processo per identificare l'AMI di base corretta per ogni combinazione.

**Nota**  
Non creare un'AMI da un'istanza avviata in un ambiente Elastic Beanstalk. Durante il provisioning Elastic Beanstalk apporta modifiche alle istanze che possono causare problemi nell'AMI salvata. Il salvataggio di un'immagine da un'istanza in un ambiente Elastic Beanstalk consoliderà inoltre nell'immagine la versione dell'applicazione distribuita sull'istanza.

Per Linux, è anche possibile creare un'AMI personalizzata da un'AMI della community che non è stata pubblicata da Elastic Beanstalk. Puoi usare l'AMI più recente di [Amazon Linux](https://aws.amazon.com/amazon-linux-ami/) come punto di partenza. Quando si avvia un ambiente con un'AMI Linux che non è ancora gestita da Elastic Beanstalk, Elastic Beanstalk tenta di installare i software della piattaforma (lingua, framework, server proxy, ecc.) e i componenti aggiuntivi per supportare le caratteristiche avanzate, come il [reporting sullo stato migliorato](health-enhanced.md). 

**Nota**  
La personalizzazione AMIs basata su Windows Server richiede l'AMI Elastic Beanstalk di serie da cui `describe-platform-version` viene restituita, come illustrato in precedenza nel passaggio 1.

Sebbene Elastic Beanstalk possa utilizzare un'AMI non gestita da Elastic Beanstalk, l'aumento del tempo di provisioning risultante dall'installazione di componenti mancanti da parte di Elastic Beanstalk può ridurre o eliminare i vantaggi della creazione di un'AMI personalizzata. Altre distribuzioni Linux possono funzionare con alcune risoluzioni dei problemi, ma non sono ufficialmente supportate. Se l'applicazione richiede una distribuzione Linux specifica, un'alternativa è creare un'immagine Docker ed eseguirla sulla [piattaforma Docker](docker.md) o sulla [piattaforma multicontainer Docker](create_deploy_docker_ecs.md) di Elastic Beanstalk.

**Per creare un'AMI personalizzata**

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

1. Scegliere **Launch Instance (Avvia istanza)**.

1. Se hai identificato un'AMI Elastic Beanstalk di base (utilizzando `describe-platform-version`) o un'AMI Amazon Linux, inserisci il suo ID AMI nella casella di ricerca. Quindi, premere **Enter (Invio)**.

   È inoltre possibile eseguire una ricerca nell'elenco per un'altra AMI della community che meglio si adatta alle tue esigenze.
**Nota**  
Consigliamo di scegliere un'AMI che utilizza la virtualizzazione HVM. Questi AMIs mostrano il **tipo di virtualizzazione: hvm** nella loro descrizione.  
Per ulteriori informazioni, consulta i [tipi di virtualizzazione](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#virtualization_types) nella Guida per l'utente di *Amazon EC2*.

1. Scegli **Select (Seleziona)** per selezionare l'AMI.

1. Seleziona un tipo di istanza, quindi scegli **Next: Configure Instance Details (Successivo: configura dettagli dell'istanza)**.

1. **(Per le piattaforme Amazon Linux AMI (AL1) dismesse)** Salta questo passaggio se il tuo ambiente funziona su una piattaforma basata su Linux supportata o su una piattaforma Windows.

   **Espandi la sezione **Dettagli avanzati** e incolla il testo seguente nel campo Dati utente.**

   ```
   #cloud-config
     repo_releasever: repository version number
     repo_upgrade: none
   ```

   Il *numero di versione dell'archivio* è l'anno e il mese della versione nel nome dell'AMI. Ad esempio, AMIs in base alla versione di marzo 2015 di Amazon Linux, disponi di un numero `2015.03` di versione del repository. Per un'immagine Elastic Beanstalk, questo valore corrisponde alla data indicata nel nome dello stack di soluzioni per la [versione della piattaforma](concepts.platforms.md) basata su AMI Amazon Linux (precedente ad Amazon Linux 2).
**Nota**  
L'`repo_releasever`impostazione configura la lock-on-launch funzionalità per un'AMI Amazon Linux. Questo fa sì che l'AMI utilizzi una versione fissa e specifica del repository all'avvio. Questa funzionalità non è supportata su Amazon Linux 2. Non specificarla se l'ambiente utilizza un ramo di piattaforma Amazon Linux 2 corrente. L'impostazione è obbligatoria se usi una AMI personalizzata con Elastic Beanstalk solo sui rami della piattaforma AMI Amazon Linux (precedente ad Amazon Linux 2).  
L'impostazione `repo_upgrade` disattiva l'installazione automatica degli aggiornamenti di sicurezza. È richiesto l'uso di un'AMI personalizzata con Elastic Beanstalk.

1. Prosegui con la procedura guidata fino ad [avviare l'istanza EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-an-instance.html). Quando richiesto, seleziona una coppia di chiavi a cui hai accesso, in modo da connetterti all'istanza per le fasi successive.

1.  [Connettiti all'istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) con SSH o RDP.

1. Esegui eventuali personalizzazioni desiderate.

1. **(Piattaforme Windows)** Eseguire il servizio EC2 Config Sysprep. Per informazioni su EC2 Config, vedere [Configurazione di un'istanza di Windows utilizzando il servizio EC2 Config](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html). Verifica che Sysprep sia configurato per generare una password casuale che può essere recuperata dalla Console di gestione AWS.

1. Nella console Amazon EC2 arresta l'istanza EC2. Nel menu **Instance Actions (Operazioni istanza)** scegli quindi **Create Image (EBS AMI) (Crea immagine – AMI EBS)**.

1. [Per evitare di incorrere in AWS costi aggiuntivi, interrompi l'istanza EC2.](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html)

**Per utilizzare l'AMI personalizzata in un ambiente Elastic Beanstalk**

1. Apri la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) e, **nell'elenco Regioni, seleziona la tua**. Regione AWS

1. Nel pannello di navigazione selezionare **Environments** (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

1. Nel riquadro di navigazione, selezionare **Configuration (Configurazione)**.

1. Nella categoria di configurazione **Capacity (Capacità)**, scegliere **Edit (Modifica)**.

1. Per **AMI ID (ID AMI)**, inserisci il tuo ID AMI personalizzato.

1. Per salvare le modifiche scegli **Apply** (Applica) nella parte inferiore della pagina.

Quando crei un nuovo ambiente con l'AMI personalizzata, è consigliabile utilizzare la stessa versione della piattaforma che hai utilizzato come base per creare l'AMI. 

## Gestione di un ambiente con un'AMI personalizzata
<a name="using-features.customenv.managing"></a>

### Aggiornamenti della piattaforma
<a name="using-features.customenv.platform-updates."></a>

Quando si utilizza un'AMI personalizzata, Elastic Beanstalk continuerà a utilizzare la stessa AMI personalizzata in un ambiente quando la versione della piattaforma viene aggiornata, indipendentemente dal fatto che l'aggiornamento venga applicato manualmente o tramite aggiornamenti gestiti della piattaforma. L'ambiente **non** verrà ripristinato per utilizzare l'AMI stock della nuova versione della piattaforma.

Ti consigliamo di creare una nuova AMI personalizzata basata sull'AMI di serie della nuova versione della piattaforma. In questo modo verranno applicate le patch disponibili nella nuova versione della piattaforma e si ridurranno al minimo gli errori di distribuzione dovuti a versioni incompatibili di pacchetti o librerie.

Per ulteriori informazioni sulla creazione di una nuova AMI personalizzata, consulta la sezione [Creazione di un'AMI personalizzata](#using-features.customenv.create) precedente di questo argomento.

### Rimozione di un'AMI personalizzata
<a name="using-features.customenv.platform-updates."></a>

Se desideri rimuovere un'AMI personalizzata da un ambiente e reimpostarla per utilizzare l'AMI di serie per la versione della piattaforma dell'ambiente, usa il seguente comando CLI.

```
aws elasticbeanstalk update-environment \
  --application-name my-application \
  --environment-name my-environment \
  --region us-east-1 \
  --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=ImageId
```

**Nota**  
Per evitare interruzioni del servizio, testate l'applicazione con un'AMI di serie prima di applicare questa modifica al vostro ambiente di produzione.

## Pulizia di un'AMI personalizzata
<a name="using-features.customenv.cleanup"></a>

Dopo aver usato un'AMI personalizzata e quando questa non è più necessaria per avviare ambienti Elastic Beanstalk, puoi scegliere di eliminarla per ridurre al minimo i costi di storage. L'eliminazione di un'AMI personalizzata comporta l'annullamento della registrazione da Amazon EC2 e l'eliminazione di altre risorse associate. Per informazioni dettagliate, consulta [Annullamento della registrazione dell'AMI Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/deregister-ami.html) o [Annullamento della registrazione dell'AMI Windows](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/deregister-ami.html).

# Preservare l'accesso a una Amazon Machine Image (AMI) per una piattaforma ritirata
<a name="using-features.customenv-env-copy"></a>

Elastic Beanstalk imposta *lo stato* di una ramificazione della piattaforma come ritirato quando il sistema operativo o il componente principale utilizzato dalla ramificazione raggiunge lo stato End of Life. L'AMI Elastic Beanstalk di *base* per il ramo della piattaforma può anche essere resa privata per impedire l'uso di questa AMI. out-of-date Gli ambienti AMIs che utilizzano quelle che sono state rese private non saranno più in grado di avviare istanze.

Se non riesci a migrare l'applicazione in un ambiente supportato prima che venga ritirata, l'ambiente potrebbe trovarsi in questa situazione. Potrebbe sorgere la necessità di aggiornare un ambiente per una ramificazione della piattaforma Beanstalk, in cui la sua AMI Elastic Beanstalk di base è stata resa privata. È disponibile un approccio alternativo. Puoi aggiornare un ambiente esistente in base a una *copia* dell'AMI Elastic Beanstalk di base utilizzata dall'ambiente. 

Questo argomento offre alcuni passaggi e uno script autonomo per aggiornare un ambiente esistente basato su una *copia* dell'AMI Elastic Beanstalk di base utilizzata dall'ambiente. Una volta che sarai in grado di migrare l'applicazione su una piattaforma supportata, potrai continuare a utilizzare le procedure standard per la manutenzione dell'applicazione e degli ambienti supportati.

## Procedura manuale
<a name="using-features.customenv-env-copy.manual-steps"></a>

**Per aggiornare un ambiente basato su una copia AMI dell'AMI Elastic Beanstalk di base**

1. **Determina quale AMI sta utilizzando il tuo ambiente.** Questo comando restituisce l'AMI usato dall'ambiente Elastic Beanstalk fornito nei parametri. Il valore restituito viene utilizzato come *source-ami-id*nel passaggio successivo.

   In una finestra di comando, eseguire un comando come il seguente. Per ulteriori informazioni, consulta [describe-configuration-settings](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-configuration-settings.html) nella *documentazione di riferimento dei comandi della AWS CLI *.

   Specificare la AWS regione che memorizza l'AMI di origine che si desidera copiare. Sostituisci il nome dell'applicazione e il nome dell'ambiente con quelli basati sull'AMI di origine. Inserisci il testo per il parametro di interrogazione come mostrato.  
**Example**  

   ```
   >aws elasticbeanstalk describe-configuration-settings \
     --application-name my-application \
     --environment-name my-environment \
     --region us-east-2 \
     --query "ConfigurationSettings[0].OptionSettings[?OptionName=='ImageId'] | [0].Value"
   ```

1. **Copia l'AMI nell'account.** Questo comando restituisce la nuova AMI risultante dalla copia di *source-ami-id*quella restituita nel passaggio precedente. 
**Nota**  
Assicurati di prendere nota del nuovo ID AMI emesso da questo comando. Dovrai inserirlo nel passaggio successivo, sostituendolo *copied-ami-id*nel comando di esempio.

   In una finestra di comando, eseguire un comando come il seguente. Per ulteriori informazioni, consulta [copy-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/copy-image.html) nella *Guida di riferimento dei comandi AWS CLI *.

   **Specificare la AWS regione dell'AMI di origine che si desidera copiare (**--source-region) e la regione** in cui si desidera utilizzare la nuova AMI personalizzata (--region).** Sostituisci *source-ami-id *con l'AMI dell'immagine che stai copiando. *source-ami-id*È stato restituito dal comando nel passaggio precedente. Sostituiscilo *new-ami-name*con un nome per descrivere la nuova AMI nella regione di destinazione. *Lo script che segue questa procedura genera il nuovo nome AMI aggiungendo la stringa "*Copia di*" all'inizio del nome di. source-ami-id*

   ```
   >aws ec2 copy-image \
       --region us-east-2 \
       --source-image-id source-ami-id \
       --source-region us-east-2 \
       --name new-ami-name
   ```

1. **Aggiornare un ambiente per utilizzare l'AMI copiata.** Dopo l'esecuzione, il comando restituisce lo stato dell'ambiente.

   In una finestra di comando, eseguire un comando come il seguente. Per ulteriori informazioni, consulta [update-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html) nella *Guida di riferimento dei comandi AWS CLI *.

   Specificate la AWS regione dell'ambiente e dell'applicazione da aggiornare. Sostituisci il nome dell'applicazione e il nome dell'ambiente con quelli che devi associare *copied-ami-id*al passaggio precedente. Per il parametro **--option-setttings**, sostituiscilo con *copied-ami-id* l'ID AMI che hai annotato dall'output del comando precedente.

   ```
   >aws elasticbeanstalk update-environment \
     --application-name my-application \
     --environment-name my-environment \
     --region us-east-2 \
     --option-settings "Namespace=aws:autoscaling:launchconfiguration,OptionName=ImageId,Value=copied-ami-id"
   ```

**Nota**  
Per ridurre al minimo i costi di archiviazione, si consiglia di ripulire l'AMI personalizzata quando non è più necessaria per avviare gli ambienti Elastic Beanstalk. Per ulteriori informazioni, consulta [Pulizia di un'AMI personalizzata](using-features.customenv.md#using-features.customenv.cleanup).

## Script standalone
<a name="using-features.customenv-env-copy.script"></a>

Lo script seguente fornisce gli stessi risultati dei passaggi manuali precedenti. Scarica lo script selezionando questo link: [copy\$1ami\$1and\$1update\$1env.zip](samples/copy_ami_and_update_env.zip).

### Fonte dello script: copy\$1ami\$1and\$1update\$1env.sh
<a name="abc"></a>

```
#!/bin/bash

set -ue

USAGE="This script is used to copy an AMI used by your Elastic Beanstalk environment into your account to use in your environment.\n\n" 
USAGE+="Usage:\n\n"
USAGE+="./$(basename $0) [OPTIONS]\n"
USAGE+="OPTIONS:\n"
USAGE+="\t--application-name <application-name>\tThe name of your Elastic Beanstalk application.\n"
USAGE+="\t--environment-name <environment-name>\tThe name of your Elastic Beanstalk environment.\n"
USAGE+="\t--region <region> \t\t\tThe AWS region your Elastic Beanstalk environment is deployed to.\n"
USAGE+="\n\n"
USAGE+="Script Usage Example(s):\n"
USAGE+="./$(basename $0) --application-name my-application --environment-name my-environment --region us-east-1\n"

if [ $# -eq 0 ]; then
  echo -e $USAGE
  exit
fi

while [[ $# -gt 0 ]]; do
  case $1 in
    --application-name)       APPLICATION_NAME="$2"; shift ;;
    --environment-name)       ENVIRONMENT_NAME="$2"; shift ;;
    --region)                 REGION="$2"; shift ;;
    *)                        echo "Unknown option $1" ; echo -e $USAGE ; exit ;;
  esac
  shift
done

aws_cli_version="$(aws --version)"
if [ $? -ne 0 ]; then
  echo "aws CLI not found. Please install it: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html. Exiting."
  exit 1
fi
echo "Using aws CLI version: ${aws_cli_version}"

account=$(aws sts get-caller-identity --query "Account" --output text)
echo "Using account ${account}"

environment_ami_id=$(aws elasticbeanstalk describe-configuration-settings \
  --application-name "$APPLICATION_NAME" \
  --environment-name "$ENVIRONMENT_NAME" \
  --region "$REGION" \
  --query "ConfigurationSettings[0].OptionSettings[?OptionName=='ImageId'] | [0].Value" \
  --output text)
echo "Image associated with environment ${ENVIRONMENT_NAME} is ${environment_ami_id}"

owned_image=$(aws ec2 describe-images \
  --owners self \
  --image-ids "$environment_ami_id" \
  --region "$REGION" \
  --query "Images[0]" \
  --output text)
if [ "$owned_image" != "None" ]; then
  echo "${environment_ami_id} is already owned by account ${account}. Exiting."
  exit
fi

source_image_name=$(aws ec2 describe-images \
  --image-ids "$environment_ami_id" \
  --region "$REGION" \
  --query "Images[0].Name" \
  --output text)
if [ "$source_image_name" = "None" ]; then
  echo "Cannot find ${environment_ami_id}. Please contact AWS support if you need additional help: https://aws.amazon.com/support."
  exit 1
fi

copied_image_name="Copy of ${source_image_name}"
copied_ami_id=$(aws ec2 describe-images \
  --owners self \
  --filters Name=name,Values="${copied_image_name}" \
  --region "$REGION" \
  --query "Images[0].ImageId" \
  --output text)
if [ "$copied_ami_id" != "None" ]; then
  echo "Detected that ${environment_ami_id} has already been copied by account ${account}. Skipping image copy."
else
  echo "Copying ${environment_ami_id} to account ${account} with name ${copied_image_name}"
  copied_ami_id=$(aws ec2 copy-image \
    --source-image-id "$environment_ami_id" \
    --source-region "$REGION" \
    --name "$copied_image_name" \
    --region "$REGION" \
    --query "ImageId" \
    --output text)
  echo "New AMI ID is ${copied_ami_id}"

  echo "Waiting for ${copied_ami_id} to become available"
  aws ec2 wait image-available \
    --image-ids "$copied_ami_id" \
    --region "$REGION"
  echo "${copied_ami_id} is now available"
fi

echo "Updating environment ${ENVIRONMENT_NAME} to use ${copied_ami_id}"
environment_status=$(aws elasticbeanstalk update-environment \
  --application-name "$APPLICATION_NAME" \
  --environment-name "$ENVIRONMENT_NAME" \
  --option-settings "Namespace=aws:autoscaling:launchconfiguration,OptionName=ImageId,Value=${copied_ami_id}" \
  --region "$REGION" \
  --query "Status" \
  --output text)
echo "Environment ${ENVIRONMENT_NAME} is now ${environment_status}"

echo "Waiting for environment ${ENVIRONMENT_NAME} update to complete"
aws elasticbeanstalk wait environment-updated \
  --application-name "$APPLICATION_NAME" \
  --environment-names "$ENVIRONMENT_NAME" \
  --region "$REGION"
echo "Environment ${ENVIRONMENT_NAME} update complete"
```

**Nota**  
È necessario averlo AWS CLI installato per eseguire lo script. Per le istruzioni di installazione, consulta [ Installa o aggiorna l'ultima versione della AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) nella *Guida per l'utente di AWS Command Line Interface *.  
Dopo aver installato AWS CLI, è inoltre necessario configurarlo per utilizzare l' AWS account proprietario dell'ambiente. Per ulteriori informazioni, consulta [Configura la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) nella *Guida per l'utente di AWS Command Line Interface *. L'account deve inoltre disporre delle autorizzazioni per creare un'AMI e aggiornare l'ambiente Elastic Beanstalk. 

 Questi passaggi descrivono il processo seguito dallo script. 

1. Stampa l'account in uso. 

1. Determina quale AMI viene utilizzata dall'ambiente (AMI di origine).

1. Verifica se l'AMI di origine è già di proprietà dell'account. Se sì, esci. 

1. Determina il nome dell'AMI di origine in modo che possa essere utilizzato nel nuovo nome AMI. Questo serve anche a confermare l'accesso all'AMI di origine.

1. Controlla se l'AMI di origine è già stato copiato nell'account. Questa operazione viene eseguita mediante la ricerca AMIs con il nome dell'AMI copiata di proprietà dell'account. Se il nome AMI è stato modificato tra le esecuzioni dello script, copierà nuovamente l'immagine.

1. Se l'AMI di origine non è già stato copiato, copia l'AMI di origine sull'account e attendi che la nuova AMI sia disponibile.

1. Aggiorna la configurazione dell'ambiente per utilizzare la nuova AMI.

1. Attendi il completamento dell'aggiornamento dell'ambiente.

Dopo aver estratto lo script dal file [copy\$1ami\$1and\$1update\$1env.zip](samples/copy_ami_and_update_env.zip), eseguilo procedendo come nell'esempio proposto. Sostituisci il nome dell'applicazione e il nome dell'ambiente nell'esempio con i propri valori.

```
>sh copy_ami_and_update_env.sh \
  --application-name my-application \
  --environment-name my-environment \
  --region us-east-1
```

**Nota**  
Per ridurre al minimo i costi di archiviazione, si consiglia di ripulire l'AMI personalizzata quando non è più necessaria per avviare gli ambienti Elastic Beanstalk. Per ulteriori informazioni, consulta [Pulizia di un'AMI personalizzata](using-features.customenv.md#using-features.customenv.cleanup).

# Fornire i file statici
<a name="environment-cfg-staticfiles"></a>

Per migliorare le prestazioni puoi configurare il server proxy affinché fornisca file statici (ad esempio, HTML o immagini) da un set di directory all'interno dell'applicazione Web. Quando il server proxy riceve una richiesta da un file nel percorso specificato, questo serve il file direttamente anziché instradare la richiesta all'applicazione.

Elastic Beanstalk supporta la configurazione del proxy per servire file statici sulla maggior parte dei rami della piattaforma basati su Amazon Linux 2. L'unica eccezione è Docker.

**Nota**  
Sulle piattaforme Python e Ruby, Elastic Beanstalk configura alcune cartelle di file statici per impostazione predefinita. Per i dettagli, consulta le sezioni di configurazione dei file statici per [Python](create-deploy-python-container.md#python-platform-staticfiles) e [Ruby](create_deploy_Ruby.container.md#create_deploy_Ruby.container.console.staticfiles). È possibile configurare cartelle aggiuntive come spiegato in questa pagina.

## Configurare i file statici utilizzando la console
<a name="environment-cfg-staticfiles.console"></a>

**Per configurare il server proxy per fornire file statici**

1. Apri la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) e, **nell'elenco Regioni, seleziona la tua**. Regione AWS

1. Nel pannello di navigazione selezionare **Environments** (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

1. Nel riquadro di navigazione, seleziona **Configuration** (Configurazione).

1. Nella categoria di configurazione **Updates, monitoring, and logging** (Aggiornamenti, monitoraggio e registrazione), scegli **Edit** (Modifica).

1. Scorri fino alla sezione **Platform software** (Software della piattaforma) e individua il gruppo di **file statici**.

    

   1. Per aggiungere una mappatura statica dei file, seleziona **Add static files** (Aggiungi file statici). Nella riga aggiuntiva che appare inserirai un *percorso* per la pubblicazione dei file statici e la *directory* che contiene i file statici da servire. 
      + Nel campo **Percorso**, inizia il nome del percorso con una barra (`/`) (ad esempio, "*/images*").
      + Nel campo **Directory**, specificate un nome di directory situato nella radice del codice sorgente dell'applicazione. Non iniziarlo con una barra (ad esempio, "*static/image-files*").
**Nota**  
Se non trovi la sezione **File statici**, devi aggiungere almeno una mappatura utilizzando un [file di configurazione](ebextensions.md). Per i dettagli, vedere [Configurare i file statici utilizzando le opzioni di configurazione](#environment-cfg-staticfiles.namespace) in questa pagina.

   1. Per rimuovere una mappatura, seleziona **Remove** (Rimuovi).

1. Per salvare le modifiche scegli **Apply** (Applica) nella parte inferiore della pagina.

## Configurare i file statici utilizzando le opzioni di configurazione
<a name="environment-cfg-staticfiles.namespace"></a>

È possibile utilizzare un [file di configurazione](ebextensions.md) per configurare percorsi di file statici e percorsi di directory utilizzando le opzioni di configurazione. È possibile aggiungere un file di configurazione al bundle di origine dell'applicazione e distribuirlo durante la creazione dell'ambiente o una distribuzione successiva.

Se l'ambiente utilizza un ramo di piattaforma basato su Amazon Linux 2, utilizza lo spazio dei nomi `aws:elasticbeanstalk:environment:proxy:staticfiles`.

Il seguente file di configurazione di esempio indica al server proxy di servire i file nella cartella `statichtml` nel percorso `/html` e i file nella cartella `staticimages` nel percorso `/images`.

**Example .ebextensions/static-files.config**  

```
option_settings:
  aws:elasticbeanstalk:environment:proxy:staticfiles:
    /html: statichtml
    /images: staticimages
```

Se il tuo ambiente Elastic Beanstalk utilizza una versione della piattaforma AMI Amazon Linux (precedente ad Amazon Linux 2), leggi le seguenti informazioni aggiuntive:

### Spazi dei nomi specifici della piattaforma AMI Amazon Linux
<a name="environment-cfg-staticfiles.namespace.specific"></a>

Sui rami della piattaforma AMI Amazon Linux gli spazi dei nomi di configurazione dei file statici variano in base alla piattaforma. Per i dettagli, consulta le seguenti pagine:
+ [Spazi dei nomi per la configurazione di Go](go-environment.md#go-namespaces)
+ [Spazio dei nomi per la configurazione di Java SE](java-se-platform.md#java-se-namespaces)
+ [Spazio dei nomi della configurazione Tomcat](java-tomcat-platform.md#java-tomcat-namespaces)
+ [Spazi dei nomi per la configurazione di Node.js](create_deploy_nodejs.container.md#nodejs-namespaces)
+ [Spazio dei nomi di configurazione di Python](create-deploy-python-container.md#python-namespaces)

# Configurazione del protocollo HTTPS per l'ambiente Elastic Beanstalk
<a name="configuring-https"></a>

Gli argomenti di questa sezione spiegano come configurare HTTPS per l'ambiente Elastic Beanstalk. Il protocollo HTTPS è obbligatorio per tutte le applicazioni che trasmettono i dati utente o le informazioni di accesso.

Se hai acquistato e configurato un [nome di dominio personalizzato](customdomains.md) per l'ambiente Elastic Beanstalk, puoi utilizzare il protocollo HTTPS per permettere agli utenti di collegarsi al tuo sito Web in modo sicuro.

Se non possiedi un nome di dominio, puoi comunque utilizzare il protocollo HTTPS con un certificato autofirmato a scopo di sviluppo e test. Per ulteriori informazioni, consulta [Certificati server](configuring-https.certificate.md).

**Configurazione della terminazione HTTPS sul sistema di bilanciamento del carico**  
Un load balancer distribuisce le richieste alle istanze EC2 che eseguono l'applicazione. Un sistema di bilanciamento del carico inoltre elimina la necessità di esporre le proprie istanze direttamente in Internet. Il modo più semplice per utilizzare HTTPS con un ambiente multiistanza Elastic Beanstalk consiste nel configurare un listener sicuro per il load balancer. La connessione tra il client e il sistema di bilanciamento del carico rimane sicura, quindi puoi configurare il load balancer per terminare HTTPS. Le connessioni back-end tra il load balancer e le istanze EC2 utilizzano HTTP, quindi non è richiesta alcuna configurazione aggiuntiva delle istanze. Per istruzioni dettagliate su come configurare un listenter sicuro, consulta. [Configurazione della terminazione HTTPS sul sistema di bilanciamento del carico](configuring-https-elb.md)

**Configurazione della terminazione HTTPS sull'istanza EC2**  
Se esegui l'applicazione in un ambiente a istanza singola o se intendi proteggere l'intera connessione alle istanze EC2 che usano il sistema di bilanciamento del carico, puoi configurare il server proxy in esecuzione nell'istanza per terminare il protocollo HTTPS. La configurazione delle istanze per terminare le connessioni HTTPS richiede l'uso di [file di configurazione](ebextensions.md) per modificare il software in esecuzione nelle istanze e i gruppi di sicurezza al fine di permettere le connessioni sicure. Per ulteriori informazioni, consulta [Configurazione della terminazione HTTPS sull'istanza](https-singleinstance.md).

**Configurazione di HTTPS end-to-end**  
Per end-to-end HTTPS in un ambiente con bilanciamento del carico, puoi combinare la terminazione dell'istanza e del load balancer per crittografare entrambe le connessioni. Per impostazione predefinita, se configuri il sistema di bilanciamento del carico per inoltrare il traffico tramite HTTPS, quest'ultimo considererà attendibile qualsiasi certificato presentato dalle istanze back-end. Per la massima sicurezza, puoi collegare policy al sistema di bilanciamento del carico per impedire la connessione alle istanze che non dispongono di un certificato pubblico considerato attendibile. Per ulteriori informazioni, consulta [Configurazione della end-to-end crittografia in un ambiente Elastic Beanstalk con carico bilanciato](configuring-https-endtoend.md).

**Configurazione di HTTPS con TCP Passthrough**  
 È inoltre possibile configurare il sistema di bilanciamento del carico per l'inoltro del traffico HTTPS senza decrittografarlo. Per ulteriori informazioni, consulta [Configurazione del sistema di bilanciamento del carico dell'ambiente per il passthrough TCP](https-tcp-passthrough.md). 

**Nota**  
Il [Ha serpenti](https://github.com/awslabs/eb-tomcat-snakes)? l'applicazione di esempio GitHub include file di configurazione e istruzioni per ogni metodo di configurazione HTTPS con un'applicazione web Tomcat. Consulta il [file readme](https://github.com/awslabs/eb-tomcat-snakes/blob/master/README.md) e le [istruzioni relative ad HTTPS](https://github.com/awslabs/eb-tomcat-snakes/blob/master/src/.ebextensions/inactive/HTTPS.md) per i dettagli.

**Topics**
+ [Certificati server](configuring-https.certificate.md)
+ [Configurazione della terminazione HTTPS sul sistema di bilanciamento del carico](configuring-https-elb.md)
+ [Configurazione della terminazione HTTPS sull'istanza](https-singleinstance.md)
+ [Configurazione della end-to-end crittografia in un ambiente Elastic Beanstalk con carico bilanciato](configuring-https-endtoend.md)
+ [Configurazione del sistema di bilanciamento del carico dell'ambiente per il passthrough TCP](https-tcp-passthrough.md)
+ [Configurazione del reindirizzamento da HTTP a HTTPS](configuring-https-httpredirect.md)

# Certificati server
<a name="configuring-https.certificate"></a>

Questo argomento descrive i diversi tipi di certificati che è possibile utilizzare per configurare HTTPS e quando applicarli. Gli argomenti secondari di questa sezione forniscono istruzioni per creare il proprio certificato e come caricarlo.

**AWS Certificate Manager (ACM)**  
ACM è lo strumento preferito per il provisioning, la gestione e la distribuzione dei certificati del server. È possibile farlo a livello di codice o utilizzando. AWS CLI Con ACM puoi creare gratuitamente un certificato affidabile per i tuoi nomi di dominio.

 I certificati ACM possono essere utilizzati solo con sistemi di bilanciamento del AWS carico e CloudFront distribuzioni Amazon e ACM è disponibile solo in alcune regioni. AWS Per utilizzare un certificato ACM con Elastic Beanstalk, consulta [Configurazione della terminazione HTTPS sul sistema di bilanciamento del carico](configuring-https-elb.md). [https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) 

**Nota**  
 Per un elenco delle regioni in cui è disponibile ACM, consulta [Endpoint e quote ACM](https://docs.aws.amazon.com/general/latest/gr/acm.html) nel. *Riferimenti generali di Amazon Web Services* 

Se ACM non è disponibile nella tua AWS regione, puoi caricare un certificato di terze parti o autofirmato e una chiave privata su (IAM). AWS Identity and Access Management Puoi utilizzare il AWS CLI per caricare il certificato. I certificati archiviati in IAM possono essere utilizzati con sistemi di bilanciamento del carico e CloudFront distribuzioni. Per ulteriori informazioni, consulta [Caricamento di un certificato in IAM](configuring-https-ssl-upload.md).

**Certificato di terze parti**  
Se ACM non è disponibile nella tua regione, puoi acquistare un certificato attendibile da una terza parte. Puoi utilizzare un certificato di terze parti per decrittografare il traffico HTTPS a livello di sistema di bilanciamento del carico e/o delle istanze back-end.

**Certificato autofirmato**  
Per i processi di sviluppo e test, puoi [creare e firmare un certificato](configuring-https-ssl.md) utilizzando strumenti open source. I certificati autofirmati sono gratuiti e semplici da creare, ma non possono essere utilizzati per la decrittografia front-end nei siti pubblici. Se tenti di utilizzare un certificato autofirmato per una connessione HTTPS a un client, il browser dell'utente mostra un messaggio di errore che indica che il sito Web non è sicuro. Puoi, tuttavia, utilizzare un certificato autofirmato per proteggere le connessioni back-end senza alcun problema.

# Creazione e firma di un certificato X509
<a name="configuring-https-ssl"></a>

Puoi creare un certificato X509 per la tua applicazione con `OpenSSL`. OpenSSL è una libreria open source standard che supporta un'ampia gamma di funzioni di crittografia, tra cui la creazione e la firma di certificati X509. Per ulteriori informazioni su OpenSSL, visita la pagina Web all'indirizzo [www.openssl.org](https://www.openssl.org/).

**Nota**  
È sufficiente creare un certificato in locale se si desidera [utilizzare HTTPS in un ambiente a istanza singola](https-singleinstance.md) o [eseguire nuovamente la crittografia al back-end](configuring-https-endtoend.md) con un certificato autofirmato. Se possiedi un nome di dominio, puoi creare un certificato AWS e utilizzarlo gratuitamente in un ambiente con bilanciamento del carico utilizzando AWS Certificate Manager (ACM). Per istruzioni, consulta la pagina relativa alla [richiesta di un certificato](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html) nella *Guida per l'utente di AWS Certificate Manager *.

Esegui `openssl version` alla riga di comando per vedere se OpenSSL è già installato. In caso contrario, puoi compilare e installare il codice sorgente seguendo le istruzioni disponibili nell'[ GitHub archivio pubblico](https://github.com/openssl/openssl) o utilizzare il tuo gestore di pacchetti preferito. [OpenSSL è installato anche sulle immagini Linux di Elastic Beanstalk, quindi un'alternativa rapida è connettersi a EC2 un'istanza in un ambiente in esecuzione utilizzando il comando dell'EB CLI:](eb-cli3.md) **eb ssh**

```
~/eb$ eb ssh
[ec2-user@ip-255-55-55-255 ~]$ openssl version
OpenSSL 1.0.1k-fips 8 Jan 2015
```

È necessario creare una chiave privata RSA per creare la richiesta di firma del certificato (CSR). Per creare la chiave privata, utilizza il comando **openssl genrsa**:

```
[ec2-user@ip-255-55-55-255 ~]$ openssl genrsa 2048 > privatekey.pem
Generating RSA private key, 2048 bit long modulus
.................................................................................................................................+++
...............+++
e is 65537 (0x10001)
```

*privatekey.pem*  
Il nome del file in cui desideri salvare la chiave privata. Di solito, il comando **openssl genrsa** stampa il contenuto della chiave privata sullo schermo, ma questo memorizza l'output in un file. Scegli un nome di file e memorizza il file in uno spazio sicuro, in modo che sia possibile recuperarlo in un secondo momento. Se perdi la chiave privata, non potrai più utilizzare il tuo certificato.

Un CSR è un file inviato a un'autorità di certificazione (CA) per richiedere un certificato server digitale. Per creare un CSR, utilizza il comando **openssl req**:

```
$ openssl req -new -key privatekey.pem -out csr.pem
You are about to be asked to enter information that will be incorporated 
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
```

Inserisci le informazioni richieste e premi **Enter (Invio)**. La tabella seguente descrive e mostra esempi per ogni campo:


****  

| Nome | Descrizione | Esempio | 
| --- | --- | --- | 
| Nome paese | L'abbreviazione ISO di due lettere per il tuo paese. | US = Stati Uniti | 
| Lo stato o la provincia | Il nome dello stato o della provincia in cui si trova la tua organizzazione. Questo nome non può essere abbreviato. | Washington | 
| Locality Name (Nome località) | Il nome della città in cui si trova la tua organizzazione. | Seattle | 
| Nome organizzazione | La denominazione legale completa della tua organizzazione. Non abbreviare il nome dell'organizzazione. | Example Corporation | 
| Unità organizzativa | Facoltativo, per informazioni aggiuntive sull'organizzazione. | Marketing | 
| Common Name (Nome comune) | Il nome di dominio completo del tuo sito Web. Deve corrispondere al nome di dominio che gli utenti vedono quando visitano il sito, in caso contrario verranno mostrati gli errori di certificato. | www.example.com | 
| Indirizzo e-mail | L'indirizzo e-mail dell'amministratore del sito. | someone@example.com | 

È possibile inviare la richiesta di firma a una terza parte per la firma o firmare personalmente per lo sviluppo e il test. I certificati autofirmati possono essere utilizzati anche per il backend HTTPS tra un sistema di bilanciamento del carico e le istanze. EC2 

Per firmare il certificato, utilizza il comando **openssl x509**. L'esempio seguente utilizza la chiave privata del passaggio precedente (*privatekey.pem*) e la richiesta di firma (*csr.pem*) per creare un certificato pubblico denominato valido per *public.crt* giorni. *365*

```
$ openssl x509 -req -days 365 -in csr.pem -signkey privatekey.pem -out public.crt
Signature ok
subject=/C=us/ST=washington/L=seattle/O=example corporation/OU=marketing/CN=www.example.com/emailAddress=someone@example.com
Getting Private key
```

Mantieni la chiave privata e il certificato pubblico per un utilizzo successivo. Puoi annullare la richiesta di firma. [Archivia sempre la chiave privata in un percorso sicuro](https-storingprivatekeys.md) ed evita di aggiungerla al tuo codice sorgente.

Per utilizzare il certificato con la piattaforma Windows Server, è necessario convertirlo in formato PFX. Utilizza il comando seguente per creare un certificato PFX dai file della chiave privata e del certificato pubblico:

```
$ openssl pkcs12 -export -out example.com.pfx -inkey privatekey.pem -in public.crt
Enter Export Password: password
Verifying - Enter Export Password: password
```

Ora che hai un certificato, puoi [caricarlo in IAM](configuring-https-ssl-upload.md) per utilizzarlo con un sistema di bilanciamento del carico oppure [configurare le istanze nel tuo ambiente per terminare HTTPS](https-singleinstance.md).

# Caricamento di un certificato in IAM
<a name="configuring-https-ssl-upload"></a>

Per utilizzare il certificato con il sistema di bilanciamento del carico dell'ambiente Elastic Beanstalk, carica il certificato e la chiave privata su (IAM). AWS Identity and Access Management Puoi utilizzare un certificato archiviato in IAM con i sistemi di bilanciamento del carico Elastic Load Balancing e le distribuzioni Amazon. CloudFront 

**Nota**  
AWS Certificate Manager (ACM) è lo strumento preferito per fornire, gestire e distribuire i certificati del server. Per ulteriori informazioni sulla richiesta di un certificato ACM, consulta [Richiesta di un certificato](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html) nella *Guida per l'utente di AWS Certificate Manager *. Per ulteriori informazioni sull'importazione di certificati di terza parte in ACM, consulta [Importazione di certificati](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) nella *Guida per l'utente di AWS Certificate Manager *. Utilizza IAM per caricare un certificato solo se ACM non è [disponibile nella](https://docs.aws.amazon.com/general/latest/gr/acm.html) tua regione. AWS 

Puoi usare AWS Command Line Interface (AWS CLI) per caricare il tuo certificato. Il comando seguente carica un certificato autofirmato denominato *https-cert.crt* con una chiave privata denominata: *private-key.pem*

```
$ aws iam upload-server-certificate --server-certificate-name elastic-beanstalk-x509 --certificate-body file://https-cert.crt --private-key file://private-key.pem
{
    "ServerCertificateMetadata": {
        "ServerCertificateId": "AS5YBEIONO2Q7CAIHKNGC",
        "ServerCertificateName": "elastic-beanstalk-x509",
        "Expiration": "2017-01-31T23:06:22Z",
        "Path": "/",
        "Arn": "arn:aws:iam::123456789012:server-certificate/elastic-beanstalk-x509",
        "UploadDate": "2016-02-01T23:10:34.167Z"
    }
}
```

Il `file://` prefisso indica AWS CLI a di caricare il contenuto di un file nella directory corrente. *elastic-beanstalk-x509*specifica il nome per chiamare il certificato in IAM.

Se hai acquistato un certificato da un'autorità di certificazione e hai ricevuto un file della catena di certificati, carica anche questo file includendo l'opzione `--certificate-chain`:

```
$ aws iam upload-server-certificate --server-certificate-name elastic-beanstalk-x509 --certificate-chain file://certificate-chain.pem --certificate-body file://https-cert.crt --private-key file://private-key.pem
```

Annota l'Amazon Resource Name (ARN) per il certificato. Lo userai quando aggiorni le impostazioni di configurazione del sistema di bilanciamento del carico per l'uso di HTTPS.

**Nota**  
Un certificato caricato in IAM rimane archiviato anche quando non è più in uso in alcun sistema di bilanciamento del carico dell'ambiente. Il certificato contiene dati sensibili. Quando non è più necessario per nessun ambiente, assicurati di eliminarlo. Per informazioni dettagliate sull'eliminazione di un certificato da IAM, consulta [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#delete-server-certificate](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#delete-server-certificate).

Per ulteriori informazioni sui certificati server in IAM, consulta l'argomento relativo all'[utilizzo dei certificati server](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) nella *Guida per l'utente di IAM*.

# Archiviazione di chiavi private in modo sicuro in Amazon S3
<a name="https-storingprivatekeys"></a>

La chiave privata che usi per firmare i certificati pubblici è privata e non deve esserne eseguito il commit nel codice sorgente. Puoi evitare di archiviare le chiavi private nei file di configurazione caricandoli in Amazon S3 e configurando Elastic Beanstalk in modo che scarichi il file da Amazon S3 durante la distribuzione dell'applicazione.

L'esempio seguente mostra le sezioni [Resources](environment-resources.md) e [files](customize-containers-ec2.md#linux-files) di un [file di configurazione](ebextensions.md) che scarica un file di chiavi private da un bucket Amazon S3.

**Example .ebextensions/privatekey.config**  

```
Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["elasticbeanstalk-us-west-2-123456789012"]
          roleName: 
            "Fn::GetOptionSetting": 
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"
files:
  # Private key
  "/etc/pki/tls/certs/server.key":
    mode: "000400"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://elasticbeanstalk-us-west-2-123456789012.s3.us-west-2.amazonaws.com/server.key
```

Sostituisci il nome del bucket e l'URL dell'esempio con quelli personalizzati. La prima voce di questo file aggiunge un metodo di autenticazione denominato `S3Auth` ai metadati del gruppo Auto Scaling dell'ambiente. Se hai configurato un [profilo di istanza](concepts-roles-instance.md) personalizzato per il tuo ambiente, verrà utilizzato. In caso contrario, viene applicato il valore predefinito `aws-elasticbeanstalk-ec2-role`. Il profilo di istanza predefinito è dotato dell'autorizzazione di leggere dal bucket di storage di Elastic Beanstalk. Se utilizzi un altro bucket, [aggiungi le autorizzazioni al profilo dell'istanza](iam-instanceprofile.md#iam-instanceprofile-addperms).

La seconda voce usa il metodo di autenticazione `S3Auth` per scaricare la chiave privata dall'URL specificato e salvarla `/etc/pki/tls/certs/server.key`. Il server proxy è in grado di leggere la chiave privata da questa posizione per [terminare le connessioni HTTPS presso l'istanza](https-singleinstance.md).

Il profilo dell'istanza assegnato alle EC2 istanze del tuo ambiente deve avere l'autorizzazione a leggere l'oggetto chiave dal bucket specificato. [Verifica che il profilo dell'istanza abbia l'autorizzazione](iam-instanceprofile.md#iam-instanceprofile-verify) per leggere l'oggetto in IAM e che le autorizzazioni del bucket e dell'oggetto non impediscano l'accesso al profilo dell'istanza.

**Per visualizzare le autorizzazioni di un bucket**

1. Apri la [console di gestione Amazon S3](https://console.aws.amazon.com/s3/home).

1. Scegli un bucket.

1. Scegli **Properties (Proprietà)**, quindi **Permissions (Autorizzazioni)**.

1. Verifica che il tuo account sia un assegnatario per il bucket con autorizzazione di lettura.

1. Se una policy del bucket è collegata, seleziona **Bucket policy (Policy bucket)** per visualizzare le autorizzazioni assegnate al bucket.

# Configurazione della terminazione HTTPS sul sistema di bilanciamento del carico
<a name="configuring-https-elb"></a>

Per aggiornare AWS Elastic Beanstalk l'ambiente in modo da utilizzare HTTPS, è necessario configurare un listener HTTPS per il sistema di bilanciamento del carico dell'ambiente. Due tipi di sistema di bilanciamento del carico supportano un listener HTTPS: Classic Load Balancer e Application Load Balancer.

Puoi utilizzare la console Elastic Beanstalk o un file di configurazione per impostare un listener protetto a cui assegnare il certificato.

**Nota**  
Gli ambienti di singola istanza non dispongono di un sistema di bilanciamento del carico e non supportano la chiusura di HTTPS nel sistema di bilanciamento del carico.

## Configurazione di un listener protetto utilizzando la console Elastic Beanstalk
<a name="configuring-https-elb.console"></a>

**Per assegnare un certificato al sistema di bilanciamento del carico del tuo ambiente**

1. Apri la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) e, **nell'elenco Regioni, seleziona la tua**. Regione AWS

1. Nel pannello di navigazione selezionare **Environments** (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

1. Nel riquadro di navigazione, seleziona **Configuration** (Configurazione).

1. Nella categoria di configurazione **Load balancer (Sistema di bilanciamento del carico)**, scegliere **Edit (Modifica)**.
**Nota**  
Se la categoria di configurazione di **Load balancer (Sistema di bilanciamento del carico)** non presenta un pulsante **Edit (Modifica)**, il tuo ambiente non dispone di un [sistema di bilanciamento del carico](using-features-managing-env-types.md#using-features.managing.changetype).

1. Nella pagina **Modify load balancer (Modifica sistema di bilanciamento del carico)**, la procedura varia a seconda del tipo di sistema di bilanciamento del carico associato al tuo ambiente.
   + **Classic Load Balancer**

     1. Scegli **Add listener (Aggiungi listener)**.

     1. Nella finestra di dialogo **Classic Load Balancer listener (Listener del sistema di bilanciamento del carico)** configura le impostazioni seguenti:
        + In **Listener port (Porta listener)**, indica la porta per il traffico in entrata, generalmente `443`.
        + In **Listener protocol (Protocollo listener)**, scegli **HTTPS**.
        + In **Instance port (Porta istanza)**, digita `80`.
        + In **Instance protocol (Protocollo istanza)**, scegli **HTTP**.
        + In **SSL certificate (Certificato SSL)**, scegli il tuo certificato.

     1. Scegliere **Aggiungi**.
   + **Application Load Balancer**

     1. Scegli **Add listener (Aggiungi listener)**.

     1. Nella finestra di dialogo **Application Load Balancer listener (Listener del sistema di bilanciamento del carico applicazioni)** configura le impostazioni seguenti:
        + In **Port (Porta)**, indica la porta per il traffico in entrata, generalmente `443`.
        + In **Protocol (Protocollo)**, scegli **HTTPS**.
        + In **SSL certificate (Certificato SSL)**, scegli il tuo certificato.

     1. Scegliere **Aggiungi**.
**Nota**  
Se il menu a discesa di Classic Load Balancer o Application Load Balancer non mostra alcun certificato, devi creare o caricare un [certificato per il nome di dominio personalizzato](customdomains.md) in [AWS Certificate Manager (ACM)](https://docs.aws.amazon.com/acm/latest/userguide/) (scelta consigliata). In alternativa, carica un certificato in IAM con l' AWS CLI.
   + **Network Load Balancer**

     1. Scegli **Add listener (Aggiungi listener)**.

     1. Nella finestra di dialogo **Network Load Balancer listener (Listener del Sistema di bilanciamento del carico di rete)** specifica la **porta** di traffico in entrata, generalmente la `443`.

     1. Scegliere **Aggiungi**.

1. Per salvare le modifiche scegli **Apply** (Applica) nella parte inferiore della pagina.

## Configurazione di un listener protetto utilizzando un file di configurazione
<a name="configuring-https-elb.configurationfile"></a>

Puoi configurare un listener sicuro sul tuo sistema di bilanciamento del carico utilizzando uno dei seguenti [file di configurazione](ebextensions.md).

**Example .ebextensions/securelistener-clb.config**  
Utilizza questo esempio quando l'ambiente dispone di un sistema Classic Load Balancer. L'esempio usa le opzioni dello spazio dei nomi `aws:elb:listener` per configurare un listener HTTPS sulla porta 443 con il certificato specificato e inoltrare il traffico decrittografato alle istanze nel tuo ambiente sulla porta 80.  

```
option_settings:
  aws:elb:listener:443:
    SSLCertificateId: arn:aws:acm:us-east-2:1234567890123:certificate/####################################
    ListenerProtocol: HTTPS
    InstancePort: 80
```

Sostituisci il testo evidenziato con l'ARN del tuo certificato. Il certificato può essere uno che hai creato o caricato in AWS Certificate Manager (ACM) (preferito) o uno che hai caricato su IAM con. AWS CLI

Per ulteriori informazioni sulle opzioni di configurazione di Classic Load Balancer, consulta [Spazi dei nomi di configurazione di Classic Load Balancer](environments-cfg-clb.md#environments-cfg-clb-namespace).

**Example .ebextensions/securelistener-alb.config**  
Utilizza questo esempio quando l'ambiente dispone di un sistema Application Load Balancer. L'esempio utilizza le opzioni dello spazio dei nomi `aws:elbv2:listener` per configurare un listener HTTPS sulla porta 443 con il certificato specificato. Il listener instrada il traffico verso il processo predefinito.  

```
option_settings:
  aws:elbv2:listener:443:
    ListenerEnabled: 'true'
    Protocol: HTTPS
    SSLCertificateArns: arn:aws:acm:us-east-2:1234567890123:certificate/####################################
```

**Example .ebextensions/securelistener-nlb.config**  
Utilizza questo esempio quando l'ambiente dispone di un sistema Network Load Balancer. L'esempio utilizza le opzioni nel namespace `aws:elbv2:listener` per configurare un listener sulla porta 443. Il listener instrada il traffico verso il processo predefinito.  

```
option_settings:
  aws:elbv2:listener:443:
    ListenerEnabled: 'true'
```

## Configurazione di un gruppo di sicurezza
<a name="configuring-https-elb.security-group"></a>

Se configuri il sistema di bilanciamento del carico per inoltrare il traffico verso una porta dell'istanza diversa dalla porta 80, devi aggiungere una regola al gruppo di sicurezza che consente il traffico in entrata sulla porta dell'istanza dal sistema di bilanciamento del carico. Se crei il tuo ambiente in un VPC personalizzato, questa regola viene aggiunta automaticamente da Elastic Beanstalk.

Puoi aggiungere la regola inserendo una chiave `Resources` a un [file di configurazione](ebextensions.md) nella directory `.ebextensions` per la tua applicazione.

Il seguente file di configurazione di esempio aggiunge una regola in ingresso per il gruppo di sicurezza `AWSEBSecurityGroup`. Ciò consente il traffico sulla porta 1000 dal gruppo di sicurezza del sistema di bilanciamento del carico.

**Example .ebextensions/sg-ingressfromlb.config**  

```
Resources:
  sslSecurityGroupIngress:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 1000
      FromPort: 1000
      SourceSecurityGroupId: {"Fn::GetAtt" : ["AWSEBLoadBalancerSecurityGroup", "GroupId"]}
```

# Configurazione della terminazione HTTPS sull'istanza
<a name="https-singleinstance"></a>

Puoi utilizzare i [file di configurazione](ebextensions.md) per configurare il server proxy che trasferisce il traffico verso la tua applicazione in modo da terminare le connessioni HTTPS. Questa funzione è utile se desideri utilizzare HTTPS con un ambiente di istanza singola oppure se configuri il sistema di bilanciamento del carico per inoltrare il traffico senza decrittografarlo.

Per abilitare HTTPS, devi consentire il traffico in entrata sulla porta 443 verso l' EC2 istanza su cui è in esecuzione l'applicazione Elastic Beanstalk. A tale scopo, utilizza la `Resources` chiave nel file di configurazione per aggiungere una regola per la porta 443 alle regole di ingresso per il gruppo di sicurezza del gruppo. AWSEBSecurity

Il seguente frammento aggiunge una regola di ingresso al gruppo di sicurezza `AWSEBSecurityGroup` che apre la porta 443 a tutto il traffico per un ambiente di istanza singola:

**`.ebextensions/https-instance-securitygroup.config`**

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

In un ambiente con bilanciamento del carico con un [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) predefinito, puoi modificare questa policy per accettare solo il traffico proveniente dal sistema di bilanciamento del carico. Consulta [Configurazione della end-to-end crittografia in un ambiente Elastic Beanstalk con carico bilanciato](configuring-https-endtoend.md) per un esempio.

**Topics**
+ [Terminazione di HTTPS su istanze EC2 in cui è in esecuzione Docker](https-singleinstance-docker.md)
+ [Terminazione di HTTPS sulle EC2 istanze che eseguono Go](https-singleinstance-go.md)
+ [Terminazione di HTTPS su istanze EC2 che eseguono Java SE](https-singleinstance-java.md)
+ [Terminazione di HTTPS nelle istanze EC2 che eseguono Node.js](https-singleinstance-nodejs.md)
+ [Terminazione di HTTPS su EC2 istanze che eseguono PHP](https-singleinstance-php.md)
+ [Terminazione di HTTPS su istanze EC2 che eseguono Python](https-singleinstance-python.md)
+ [Terminazione di HTTPS su istanze EC2 che eseguono Ruby](https-singleinstance-ruby.md)
+ [Terminazione di HTTPS su istanze EC2 che eseguono Tomcat](https-singleinstance-tomcat.md)
+ [Terminazione di HTTPS su istanze Amazon EC2 che eseguono .NET Core su Linux](https-singleinstance-dotnet-linux.md)
+ [Terminazione di HTTPS su EC2 istanze Amazon che eseguono.NET](SSLNET.SingleInstance.md)

# Terminazione di HTTPS su istanze EC2 in cui è in esecuzione Docker
<a name="https-singleinstance-docker"></a>

Per i container Docker, è possibile utilizzare un [file di configurazione](ebextensions.md) per abilitare HTTPS.

Aggiungi il frammento di codice seguente al file di configurazione, sostituendo il materiale del certificato e della chiave privata come indicato, quindi salvalo nella directory `.ebextensions` del bundle di origine. Il file di configurazione esegue le seguenti attività:
+ La chiave `files` crea i seguenti file sull'istanza:  
`/etc/nginx/conf.d/https.conf`  
Configura il server nginx. Questo file viene caricato quando si avvia il servizio nginx.  
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. Sostituiscilo *certificate file contents* con il contenuto del certificato.  
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.
Se disponi di certificati intermedi, includili in `server.crt` dopo il certificato del sito.  

  ```
        -----BEGIN CERTIFICATE-----
    certificate file contents
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    first intermediate certificate
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    second intermediate certificate
    -----END CERTIFICATE-----
  ```  
`/etc/pki/tls/certs/server.key`  
Crea il file della chiave privata sull'istanza. Sostituisci *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 

**Example .ebextensions/https-instance.config**  

```
files:
  /etc/nginx/conf.d/https.conf:
    mode: "000644"
    owner: root
    group: root
    content: |
      # HTTPS Server
      
      server {
        listen 443;
        server_name localhost;
        
        ssl on;
        ssl_certificate /etc/pki/tls/certs/server.crt;
        ssl_certificate_key /etc/pki/tls/certs/server.key;
        
        ssl_session_timeout 5m;
        
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        
        location / {
          proxy_pass http://docker;
          proxy_http_version 1.1;
          
          proxy_set_header Connection "";
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto https;
        }
      }
      
  /etc/pki/tls/certs/server.crt:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
      
  /etc/pki/tls/certs/server.key:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----
```

**Nota**  
Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

In un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .ebextensions/ https-instance-single .config**  

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

[Per un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS sulle EC2 istanze che eseguono Go
<a name="https-singleinstance-go"></a>

Per i tipi di container Go, devi attivare HTTPS con un [file di configurazione](ebextensions.md) e un file di configurazione nginx che configura il server nginx per l'utilizzo di HTTPS.

Aggiungi il seguente frammento al file di configurazione, sostituendo il certificato e il materiale della chiave privata come indicato, e salvalo nella directory `.ebextensions` del bundle di origine. Il file di configurazione esegue le seguenti attività:
+ La chiave `Resources` attiva la porta 443 sul gruppo di sicurezza utilizzato dall'istanza dell'ambiente. 
+ La chiave `files` crea i seguenti file sull'istanza:  
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. *certificate file contents*Sostituiscilo con il contenuto del tuo certificato.  
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.
Se disponi di certificati intermedi, includili in `server.crt` dopo il certificato del sito.  

  ```
        -----BEGIN CERTIFICATE-----
    certificate file contents
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    first intermediate certificate
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    second intermediate certificate
    -----END CERTIFICATE-----
  ```  
`/etc/pki/tls/certs/server.key`  
Crea il file della chiave privata sull'istanza. Sostituisci *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 

**Example .ebextensions/https-instance.config**  

```
files:
  /etc/pki/tls/certs/server.crt:
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
      
  /etc/pki/tls/certs/server.key:
    content: |      
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----
```

**Nota**  
Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

Inserisci quanto segue in un file con estensione `.conf` nella directory `.ebextensions/nginx/conf.d/` del bundle di origine (ad esempio, `.ebextensions/nginx/conf.d/https.conf`). *app\$1port*Sostituiscilo con il numero di porta su cui l'applicazione è in ascolto. Questo esempio configura il server nginx per l'ascolto sulla porta 443 tramite SSL. Per ulteriori informazioni su questi file di configurazione sulla piattaforma Go, consulta [Configurazione del server proxy](go-nginx.md).

**Example . ebextensions/nginx/conf.d/https.conf**  

```
# HTTPS server

server {
    listen       443;
    server_name  localhost;
    
    ssl                  on;
    ssl_certificate      /etc/pki/tls/certs/server.crt;
    ssl_certificate_key  /etc/pki/tls/certs/server.key;
    
    ssl_session_timeout  5m;
    
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers   on;
    
    location / {
        proxy_pass  http://localhost:app_port;
        proxy_set_header   Connection "";
        proxy_http_version 1.1;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto https;
    }
}
```

In un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .ebextensions/ https-instance-single .config**  

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

[Per un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su istanze EC2 che eseguono Java SE
<a name="https-singleinstance-java"></a>

Per i tipi di container Java SE, devi attivare HTTPS con un [file di configurazione](ebextensions.md) .ebextensions e un file di configurazione nginx che configura il server nginx per l'utilizzo di HTTPS.

Tutte le AL2 piattaforme AL2023/supportano una funzionalità di configurazione proxy uniforme. Per ulteriori informazioni sulla configurazione del server proxy sulle versioni della piattaforma che eseguono AL2023/AL2, consulta[Configurazione del proxy inverso](platforms-linux-extend.proxy.md). 

Aggiungi il seguente frammento al file di configurazione, sostituendo i segnaposti di certificato e chiave privata come indicato, e salvalo nella directory `.ebextensions`. Il file di configurazione esegue le seguenti attività:
+ La chiave `files` crea i seguenti file sull'istanza:  
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. Sostituiscilo *certificate file contents* con il contenuto del certificato.  
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.
Se disponi di certificati intermedi, includili in `server.crt` dopo il certificato del sito.  

  ```
        -----BEGIN CERTIFICATE-----
    certificate file contents
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    first intermediate certificate
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    second intermediate certificate
    -----END CERTIFICATE-----
  ```  
`/etc/pki/tls/certs/server.key`  
Crea il file della chiave privata sull'istanza. Sostituisci *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 

**Example .ebextensions/https-instance.config**  

```
files:
  /etc/pki/tls/certs/server.crt:
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
      
  /etc/pki/tls/certs/server.key:
    content: |
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----
```

**Nota**  
Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

Inserisci quanto segue in un file con estensione `.conf` nella directory `.ebextensions/nginx/conf.d/` del bundle di origine (ad esempio, `.ebextensions/nginx/conf.d/https.conf`). *app\$1port*Sostituiscilo con il numero di porta su cui l'applicazione è in ascolto. Questo esempio configura il server nginx per l'ascolto sulla porta 443 tramite SSL. Per ulteriori informazioni su questi file di configurazione sulla piattaforma Java SE, consulta [Configurazione del server proxy](java-se-nginx.md).

**Example . ebextensions/nginx/conf.d/https.conf**  

```
# HTTPS server

server {
    listen       443;
    server_name  localhost;
    
    ssl                  on;
    ssl_certificate      /etc/pki/tls/certs/server.crt;
    ssl_certificate_key  /etc/pki/tls/certs/server.key;
    
    ssl_session_timeout  5m;
    
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers   on;
    
    location / {
        proxy_pass  http://localhost:app_port;
        proxy_set_header   Connection "";
        proxy_http_version 1.1;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto https;
    }
}
```

In un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .ebextensions/ https-instance-single .config**  

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

[Per un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS nelle istanze EC2 che eseguono Node.js
<a name="https-singleinstance-nodejs"></a>

Il seguente file di configurazione di esempio [estende la configurazione nginx predefinita](nodejs-platform-proxy.md) per ascoltare sulla porta 443 e SSL/TLS terminare le connessioni con un certificato pubblico e una chiave privata.

Se hai configurato l'ambiente per il [reporting sullo stato migliorato](health-enhanced.md), è necessario configurare nginx per generare i log di accesso. A tale scopo, rimuovi i commenti dal blocco di linee sotto il commento la cui dicitura è `# For enhanced health...` rimuovendo i caratteri iniziali `#`.

**Example .ebextensions/https-instance.config**  

```
files:
  /etc/nginx/conf.d/https.conf:
    mode: "000644"
    owner: root
    group: root
    content: |
      # HTTPS server

      server {
          listen       443;
          server_name  localhost;
          
          ssl                  on;
          ssl_certificate      /etc/pki/tls/certs/server.crt;
          ssl_certificate_key  /etc/pki/tls/certs/server.key;
          
          ssl_session_timeout  5m;
          
          ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
          ssl_prefer_server_ciphers   on;

          # For enhanced health reporting support, uncomment this block:

          #if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") {
          #    set $year $1;
          #    set $month $2;
          #    set $day $3;
          #    set $hour $4;
          #}
          #access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd;
          #access_log  /var/log/nginx/access.log  main;
          
          location / {
              proxy_pass  http://nodejs;
              proxy_set_header   Connection "";
              proxy_http_version 1.1;
              proxy_set_header        Host            $host;
              proxy_set_header        X-Real-IP       $remote_addr;
              proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header        X-Forwarded-Proto https;
          }
      }
      
  /etc/pki/tls/certs/server.crt:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
      
  /etc/pki/tls/certs/server.key:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----
```

La chiave `files` crea i seguenti file sull'istanza:

`/etc/nginx/conf.d/https.conf`  
Configura il server nginx. Questo file viene caricato quando si avvia il servizio nginx.

`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. Sostituiscilo *certificate file contents* con il contenuto del tuo certificato.  
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.
Se disponi di certificati intermedi, includili in `server.crt` dopo il certificato del sito.  

```
      -----BEGIN CERTIFICATE-----
  certificate file contents
  -----END CERTIFICATE-----
  -----BEGIN CERTIFICATE-----
  first intermediate certificate
  -----END CERTIFICATE-----
  -----BEGIN CERTIFICATE-----
  second intermediate certificate
  -----END CERTIFICATE-----
```

`/etc/pki/tls/certs/server.key`  
Crea il file della chiave privata sull'istanza. Sostituiscilo *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 

**Nota**  
Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

In un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .ebextensions/ https-instance-single .config**  

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

[Per un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su EC2 istanze che eseguono PHP
<a name="https-singleinstance-php"></a>

Per i tipi di container PHP, devi usare un [file di configurazione](ebextensions.md) per abilitare Apache HTTP Server per l'utilizzo di HTTPS.

Aggiungi il frammento di codice seguente al file di configurazione, sostituendo il materiale del certificato e della chiave privata come indicato, quindi salvalo nella directory `.ebextensions` del bundle di origine.

Il file di configurazione esegue le seguenti attività:
+ La chiave `packages` utilizza yum per installare `mod24_ssl`.
+ La chiave `files` crea i seguenti file sull'istanza:  
`/etc/httpd/conf.d/ssl.conf`  
Configura il server Apache. Questo file viene caricato all'avvio del servizio Apache.  
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. *certificate file contents*Sostituiscilo con il contenuto del tuo certificato.  
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.
Se disponi di certificati intermedi, includili in `server.crt` dopo il certificato del sito.  

  ```
        -----BEGIN CERTIFICATE-----
    certificate file contents
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    first intermediate certificate
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    second intermediate certificate
    -----END CERTIFICATE-----
  ```  
`/etc/pki/tls/certs/server.key`  
Crea il file della chiave privata sull'istanza. Sostituisci *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato.

**Example .ebextensions/https-instance.config**  

```
packages:
  yum:
    mod24_ssl : []

files:
  /etc/httpd/conf.d/ssl.conf:
    mode: "000644"
    owner: root
    group: root
    content: |
      LoadModule ssl_module modules/mod_ssl.so
      Listen 443
      <VirtualHost *:443>
        <Proxy *>
          Order deny,allow
          Allow from all
        </Proxy>

        SSLEngine             on
        SSLCertificateFile    "/etc/pki/tls/certs/server.crt"
        SSLCertificateKeyFile "/etc/pki/tls/certs/server.key"
        SSLCipherSuite        EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
        SSLProtocol           All -SSLv2 -SSLv3
        SSLHonorCipherOrder   On
        SSLSessionTickets     Off
        
        Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
        Header always set X-Frame-Options DENY
        Header always set X-Content-Type-Options nosniff
        
        ProxyPass / http://localhost:80/ retry=0
        ProxyPassReverse / http://localhost:80/
        ProxyPreserveHost on
        RequestHeader set X-Forwarded-Proto "https" early
        
      </VirtualHost>
      
  /etc/pki/tls/certs/server.crt:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
      
  /etc/pki/tls/certs/server.key:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----
```

**Nota**  
Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

In un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .ebextensions/ https-instance-single .config**  

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

[Per un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su istanze EC2 che eseguono Python
<a name="https-singleinstance-python"></a>

Per i tipi di container Python che utilizzano Apache HTTP Server con l'interfaccia WSGI (Web Server Gateway Interface), devi utilizzare un [file di configurazione](ebextensions.md) per consentire ad Apache HTTP Server di utilizzare HTTPS.

Aggiungi il seguente frammento al [file di configurazione](ebextensions.md), sostituendo i segnaposto di certificato e chiave privata come indicato, quindi salvalo nella directory `.ebextensions` del bundle di origine. Il file di configurazione esegue le seguenti attività:
+ La chiave `packages` utilizza yum per installare `mod_ssl`.
+ La chiave `files` crea i seguenti file sull'istanza:  
`/etc/httpd/conf.d/ssl.conf`  
Configura il server Apache. Se la tua applicazione non è denominata `application.py`, sostituisci il testo evidenziato nel valore per `WSGIScriptAlias` con il percorso locale alla tua applicazione. Ad esempio, un'applicazione django può essere in `django/wsgi.py`. La posizione deve corrispondere al valore dell'opzione `WSGIPath` impostata per il tuo ambiente.  
A seconda dei requisiti dell'applicazione, potrebbe essere necessario aggiungere anche altre directory al parametro **python-path**.   
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. Sostituiscilo *certificate file contents* con il contenuto del certificato.  
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.
Se disponi di certificati intermedi, includili in `server.crt` dopo il certificato del sito.  

  ```
        -----BEGIN CERTIFICATE-----
    certificate file contents
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    first intermediate certificate
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    second intermediate certificate
    -----END CERTIFICATE-----
  ```  
`/etc/pki/tls/certs/server.key`  
Crea il file della chiave privata sull'istanza. Sostituiscilo *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 
+ La chiave `container_commands` interrompe il servizio httpd dopo che tutto è stato configurato in modo che il servizio utilizzi il nuovo certificato e il nuovo file `https.conf`.

**Nota**  
L'esempio funziona solo in ambienti che utilizzano la piattaforma [Python](create-deploy-python-container.md).

**Example .ebextensions/https-instance.config**  

```
packages:
  yum:
    mod_ssl: []
    
files:
  /etc/httpd/conf.d/ssl.conf:
    mode: "000644"
    owner: root
    group: root
    content: |
      LoadModule wsgi_module modules/mod_wsgi.so
      WSGIPythonHome /var/app/venv/staging-LQM1lest
      WSGISocketPrefix run/wsgi
      WSGIRestrictEmbedded On
      Listen 443
      <VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile "/etc/pki/tls/certs/server.crt"
        SSLCertificateKeyFile "/etc/pki/tls/certs/server.key"
        
        Alias /static/ /var/app/current/static/
        <Directory /var/app/current/static>
        Order allow,deny
        Allow from all
        </Directory>
        
        WSGIScriptAlias / /var/app/current/application.py
        
        <Directory /var/app/current>
        Require all granted
        </Directory>
        
        WSGIDaemonProcess wsgi-ssl processes=1 threads=15 display-name=%{GROUP} \
          python-path=/var/app/current \
          python-home=/var/app/venv/staging-LQM1lest \
          home=/var/app/current \
          user=webapp \
          group=webapp
        WSGIProcessGroup wsgi-ssl
        
      </VirtualHost>
      
  /etc/pki/tls/certs/server.crt:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
       
  /etc/pki/tls/certs/server.key:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----
      
container_commands:
  01killhttpd:
    command: "killall httpd"
  02waitforhttpddeath:
    command: "sleep 3"
```

**Nota**  
Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

**Nota per gli ambienti Amazon Linux 2023**  
Su Amazon Linux 2023, `mod_wsgi` deve essere installato separatamente in quanto non è disponibile negli archivi dei pacchetti. Per le istruzioni di installazione, vedi [mod\$1wsgi su PyPI](https://pypi.org/project/mod-wsgi/).

In un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .ebextensions/ https-instance-single .config**  

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

[Per un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su istanze EC2 che eseguono Ruby
<a name="https-singleinstance-ruby"></a>

Per i tipi di container Ruby, il modo in cui abiliti HTTPS dipende dal tipo di server di applicazioni utilizzato.

**Topics**
+ [Configurare HTTPS per Ruby con Puma](#Puma)
+ [Configurare HTTPS per Ruby con Passenger](#Passenger)

## Configurare HTTPS per Ruby con Puma
<a name="Puma"></a>

Per i tipi di container Ruby che utilizzano Puma come server di applicazioni, utilizza un [file di configurazione](ebextensions.md) per abilitare il protocollo HTTPS.

Aggiungi il frammento di codice seguente al file di configurazione, sostituendo il materiale del certificato e della chiave privata come indicato, quindi salvalo nella directory `.ebextensions` del bundle di origine. Il file di configurazione esegue le seguenti attività:
+ La chiave `files` crea i seguenti file sull'istanza:  
`/etc/nginx/conf.d/https.conf`  
Configura il server nginx. Questo file viene caricato quando si avvia il servizio nginx.  
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. Sostituiscilo *certificate file contents* con il contenuto del certificato.  
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.
Se disponi di certificati intermedi, includili in `server.crt` dopo il certificato del sito.  

  ```
        -----BEGIN CERTIFICATE-----
    certificate file contents
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    first intermediate certificate
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    second intermediate certificate
    -----END CERTIFICATE-----
  ```  
`/etc/pki/tls/certs/server.key`  
Crea il file della chiave privata sull'istanza. Sostituisci *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 

**Example .ebextensions/https-instance.config**  

```
files:
  /etc/nginx/conf.d/https.conf:
    content: |
      # HTTPS server

      server {
          listen       443;
          server_name  localhost;
          
          ssl                  on;
          ssl_certificate      /etc/pki/tls/certs/server.crt;
          ssl_certificate_key  /etc/pki/tls/certs/server.key;
          
          ssl_session_timeout  5m;
          
          ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
          ssl_prefer_server_ciphers   on;
          
          location / {
              proxy_pass  http://my_app;
              proxy_set_header        Host            $host;
              proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header        X-Forwarded-Proto https;
          }

          location /assets {
            alias /var/app/current/public/assets;
            gzip_static on;
            gzip on;
            expires max;
            add_header Cache-Control public;
          }

          location /public {
            alias /var/app/current/public;
            gzip_static on;
            gzip on;
            expires max;
            add_header Cache-Control public;
          }
      }

  /etc/pki/tls/certs/server.crt:
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
      
  /etc/pki/tls/certs/server.key:
    content: |      
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----
```

**Nota**  
Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

In un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .ebextensions/ https-instance-single .config**  

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

[Per un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

## Configurare HTTPS per Ruby con Passenger
<a name="Passenger"></a>

Per i tipi di container Ruby che utilizzano Passenger come server di applicazioni, utilizza un file di configurazione e un file JSON per abilitare il protocollo HTTPS.

**Per configurare HTTPS per Ruby con Passenger**

1. Aggiungi il frammento di codice seguente al file di configurazione, sostituendo il materiale del certificato e della chiave privata come indicato, quindi salvalo nella directory `.ebextensions` del bundle di origine. Il file di configurazione esegue le seguenti attività:
   + La chiave `files` crea i seguenti file sull'istanza:  
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. Sostituiscilo con il contenuto del certificato. *certificate file contents*  
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.
Se disponi di certificati intermedi, includili in `server.crt` dopo il certificato del sito.  

     ```
           -----BEGIN CERTIFICATE-----
       certificate file contents
       -----END CERTIFICATE-----
       -----BEGIN CERTIFICATE-----
       first intermediate certificate
       -----END CERTIFICATE-----
       -----BEGIN CERTIFICATE-----
       second intermediate certificate
       -----END CERTIFICATE-----
     ```  
`/etc/pki/tls/certs/server.key`  
Crea il file della chiave privata sull'istanza. Sostituisci *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato.   
**Example Frammento .Ebextensions per la configurazione di HTTPS per Ruby con Passenger**  

   ```
   files:
     /etc/pki/tls/certs/server.crt:
       content: |
         -----BEGIN CERTIFICATE-----
         certificate file contents
         -----END CERTIFICATE-----
         
     /etc/pki/tls/certs/server.key:
       content: |      
         -----BEGIN RSA PRIVATE KEY-----
         private key contents # See note below.
         -----END RSA PRIVATE KEY-----
   ```
**Nota**  
Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

1. Crea un file di testo e aggiungi il seguente JSON al file. Salvalo nella directory principale del bundle di origine con il nome `passenger-standalone.json`. Questo file JSON configura Passenger per l'utilizzo di HTTPS.
**Importante**  
Questo file JSON non deve contenere un contrassegno ordine di byte (BOM, Byte Order Mark). In caso contrario, la libreria JSON di Passenger non leggerà il file correttamente e il servizio Passenger non verrà avviato.  
**Example passenger-standalone.json**  

   ```
   {
     "ssl" : true,
     "ssl_port" : 443,
     "ssl_certificate" : "/etc/pki/tls/certs/server.crt",
     "ssl_certificate_key" : "/etc/pki/tls/certs/server.key"
   }
   ```

In un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .ebextensions/ https-instance-single .config**  

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

[Per un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su istanze EC2 che eseguono Tomcat
<a name="https-singleinstance-tomcat"></a>

Per i tipi di container Tomcat, utilizza un [file di configurazione](ebextensions.md) per autorizzare Apache HTTP Server a utilizzare il protocollo HTTPS quando svolge la funzione di proxy inverso per Tomcat.

Aggiungi il frammento di codice seguente al file di configurazione, sostituendo il materiale del certificato e della chiave privata come indicato, quindi salvalo nella directory `.ebextensions` del bundle di origine. Il file di configurazione esegue le seguenti attività:
+ La chiave `files` crea i seguenti file sull'istanza:  
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. Sostituiscilo *certificate file contents* con il contenuto del certificato.  
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.  
`/etc/pki/tls/certs/server.key`  
Crea il file della chiave privata sull'istanza. Sostituiscilo *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato.   
`/opt/elasticbeanstalk/hooks/appdeploy/post/99_start_httpd.sh`  
Crea uno script hook post-distribuzione per riavviare il servizio httpd.

**Example .ebextensions/https-instance.config**  

```
files:
  /etc/pki/tls/certs/server.crt:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
      
  /etc/pki/tls/certs/server.key:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----

  /opt/elasticbeanstalk/hooks/appdeploy/post/99_start_httpd.sh:
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      sudo service httpd restart
```

È inoltre necessario configurare il server proxy dell'ambiente affinché ascolti la porta 443. La seguente configurazione Apache 2.4 aggiunge un listener sulla porta 443. Per ulteriori informazioni, consulta [Configurazione del server proxy](java-tomcat-proxy.md).

**Example . ebextensions/httpd/conf.d/ssl.conf**  

```
Listen 443
<VirtualHost *:443> 
  ServerName server-name
  SSLEngine on 
  SSLCertificateFile "/etc/pki/tls/certs/server.crt" 
  SSLCertificateKeyFile "/etc/pki/tls/certs/server.key" 

  <Proxy *> 
    Require all granted 
  </Proxy> 
  ProxyPass / http://localhost:8080/ retry=0 
  ProxyPassReverse / http://localhost:8080/ 
  ProxyPreserveHost on 

  ErrorLog /var/log/httpd/elasticbeanstalk-ssl-error_log 

</VirtualHost>
```

Il fornitore del certificato può includere certificati intermedi che puoi installare per migliorare la compatibilità con i client mobili. Configura Apache con il bundle di un'autorità di certificazione (CA) intermedia aggiungendo il seguente file di configurazione SSL (vedi [Estensione e sovrascrittura della configurazione predefinita di Apache — Amazon Linux AMI () AL1](java-tomcat-proxy.md#java-tomcat-proxy-apache) per la posizione):
+ Nei contenuti del file `ssl.conf` specifica il file della catena:

  ```
  SSLCertificateKeyFile "/etc/pki/tls/certs/server.key"
  SSLCertificateChainFile "/etc/pki/tls/certs/gd_bundle.crt"
  SSLCipherSuite        EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
  ```
+ Aggiungi una nuova voce alla chiave `files` con i contenuti dei certificati intermedi:

  ```
  files:
    /etc/pki/tls/certs/gd_bundle.crt:
      mode: "000400"
      owner: root
      group: root
      content: |
        -----BEGIN CERTIFICATE-----
        First intermediate certificate
        -----END CERTIFICATE-----
        -----BEGIN CERTIFICATE-----
        Second intermediate certificate
        -----END CERTIFICATE-----
  ```

**Nota**  
Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

In un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .ebextensions/ https-instance-single .config**  

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

[Per un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su istanze Amazon EC2 che eseguono .NET Core su Linux
<a name="https-singleinstance-dotnet-linux"></a>

Per i tipi di container .NET Core su Linux devi abilitare HTTPS con un [file di configurazione](ebextensions.md) `.ebextensions` e un file di configurazione nginx che configura il server nginx per l'utilizzo di HTTPS.

Aggiungi il seguente frammento al file di configurazione, sostituendo i segnaposti di certificato e chiave privata come indicato, e salvalo nella directory `.ebextensions`. Il file di configurazione esegue le seguenti attività:
+ La chiave `files` crea i seguenti file sull'istanza:  
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. Sostituiscilo *certificate file contents* con il contenuto del certificato.  
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.
Se disponi di certificati intermedi, includili in `server.crt` dopo il certificato del sito.  

  ```
        -----BEGIN CERTIFICATE-----
    certificate file contents
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    first intermediate certificate
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    second intermediate certificate
    -----END CERTIFICATE-----
  ```  
`/etc/pki/tls/certs/server.key`  
Crea il file della chiave privata sull'istanza. Sostituisci *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 

**Example .ebextensions/https-instance.config**  

```
files:
  /etc/pki/tls/certs/server.crt:
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
      
  /etc/pki/tls/certs/server.key:
    content: |      
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----
```

**Nota**  
Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

Inserisci quanto segue in un file con estensione `.conf` nella directory `.platform/nginx/conf.d/` del bundle di origine (ad esempio, `.platform/nginx/conf.d/https.conf`). *app\$1port*Sostituiscilo con il numero di porta su cui l'applicazione è in ascolto. Questo esempio configura il server nginx per l'ascolto sulla porta 443 tramite SSL. Per ulteriori informazioni su questi file di configurazione sulla piattaforma .NET Core su Linux, consulta [Configurazione del server proxy](dotnet-linux-platform-nginx.md).

**Example . platform/nginx/conf.d/https.conf**  

```
# HTTPS server

server {
    listen       443 ssl;
    server_name  localhost;
    
    ssl_certificate      /etc/pki/tls/certs/server.crt;
    ssl_certificate_key  /etc/pki/tls/certs/server.key;
    
    ssl_session_timeout  5m;
    
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers   on;
    
    location / {
        proxy_pass  http://localhost:app_port;
        proxy_set_header   Connection "";
        proxy_http_version 1.1;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto https;
    }
}
```

In un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .ebextensions/ https-instance-single .config**  

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

[Per un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su EC2 istanze Amazon che eseguono.NET
<a name="SSLNET.SingleInstance"></a>

Il seguente [file di configurazione](ebextensions.md) crea ed esegue uno PowerShell script di Windows che esegue le seguenti attività:
+ Verifica la presenza di un'associazione di certificati HTTPS esistente alla porta 443.
+ Ottiene il [certificato PFX](configuring-https-ssl.md) da un bucket Amazon S3.
**Nota**  
Aggiungi una `AmazonS3ReadOnlyAccess` policy per accedere `aws-elasticbeanstalk-ec2-role` al certificato SSL nel bucket Amazon S3.
+ Ottiene la password da. Gestione dei segreti AWS
**Nota**  
Aggiunge un'istruzione `aws-elasticbeanstalk-ec2-role` che consenta l'`secretsmanager:GetSecretValue`azione relativa al segreto che contiene la password del certificato
+ Installa il certificato.
+ Associa il certificato alla porta 443.
**Nota**  
Per rimuovere gli endpoint HTTP (porta 80), includi il comando `Remove-WebBinding` nella sezione **Rimuovi associazione HTTP** dell'esempio.

**Example .ebextensions/ .config https-instance-dotnet**  

```
files:
  "C:\\certs\\install-cert.ps1":
    content: |
      import-module webadministration
      ## Settings - replace the following values with your own
      $bucket = "amzn-s3-demo-bucket"  ## S3 bucket name
      $certkey = "example.com.pfx"    ## S3 object key for your PFX certificate
      $secretname = "example_secret"  ## Gestione dei segreti AWS name for a secret that contains the certificate's password
      ##

      # Set variables
      $certfile = "C:\cert.pfx"
      $pwd = Get-SECSecretValue -SecretId $secretname | select -expand SecretString

      # Clean up existing binding
      if ( Get-WebBinding "Default Web Site" -Port 443 ) {
        Echo "Removing WebBinding"
        Remove-WebBinding -Name "Default Web Site" -BindingInformation *:443:
      }
      if ( Get-Item -path IIS:\SslBindings\0.0.0.0!443 ) {
        Echo "Deregistering WebBinding from IIS"
        Remove-Item -path IIS:\SslBindings\0.0.0.0!443
      }

      # Download certificate from S3
      Read-S3Object -BucketName $bucket -Key $certkey -File $certfile
      
      # Install certificate
      Echo "Installing cert..."
      $securepwd = ConvertTo-SecureString -String $pwd -Force -AsPlainText
      $cert = Import-PfxCertificate -FilePath $certfile cert:\localMachine\my -Password $securepwd
      
      # Create site binding
      Echo "Creating and registering WebBinding"
      New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https
      New-Item -path IIS:\SslBindings\0.0.0.0!443 -value $cert -Force
      
      ## Remove the HTTP binding
      ## (optional) Uncomment the following line to unbind port 80
      # Remove-WebBinding -Name "Default Web Site" -BindingInformation *:80:
      ##
      
      # Update firewall
      netsh advfirewall firewall add rule name="Open port 443" protocol=TCP localport=443 action=allow dir=OUT

commands:
  00_install_ssl:
    command: powershell -NoProfile -ExecutionPolicy Bypass -file C:\\certs\\install-cert.ps1
```

In un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .ebextensions/ https-instance-single .config**  

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

[Per un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Configurazione della end-to-end crittografia in un ambiente Elastic Beanstalk con carico bilanciato
<a name="configuring-https-endtoend"></a>

L'arresto di connessioni sicure al sistema di bilanciamento del carico e l'utilizzo di HTTP nel back-end potrebbero essere sufficienti per la tua applicazione. Il traffico di rete tra risorse AWS non può essere ascoltato da istanze che non fanno parte della connessione, anche se sono in esecuzione con lo stesso account.

Tuttavia, se sviluppi un'applicazione che deve essere conforme a normative esterne rigorose, potresti dover proteggere tutte le connessioni di rete. Puoi utilizzare la console Elastic Beanstalk o i [file di configurazione](ebextensions.md) per connettere in modo sicuro il sistema di bilanciamento del carico dell'ambiente Elastic Beanstalk alle istanze di back-end e soddisfare questi requisiti. La seguente procedura è incentrata sui file di configurazione.

Anzitutto [aggiungi un listener sicuro al sistema di bilanciamento del carico](configuring-https-elb.md), se non lo hai già fatto.

Devi anche configurare le istanze nell'ambiente perché siano in ascolto sulla porta sicura e terminare le connessioni HTTPS. La configurazione varia in base alla piattaforma. Per istruzioni, consulta [Configurazione della terminazione HTTPS sull'istanza](https-singleinstance.md). Puoi utilizzare un certificato [autofirmato](configuring-https-ssl.md) per le istanze senza problemi. EC2 

Configura quindi il listener per inoltrare il traffico tramite HTTPS sulla porta protetta utilizzata dall'applicazione. Utilizza uno dei seguenti file di configurazione, a seconda del tipo di sistema di bilanciamento del carico utilizzato dall'ambiente.

**`.ebextensions/https-reencrypt-clb.config`**

Utilizza questo file di configurazione con un sistema Classic Load Balancer. Oltre a configurare il sistema di bilanciamento del carico, il file di configurazione modifica anche i controlli dello stato predefiniti, in modo che utilizzino la porta 443 e HTTPS per garantire che il sistema di bilanciamento del carico sia in grado di connettersi in modo sicuro.

```
option_settings:
  aws:elb:listener:443:
    InstancePort: 443
    InstanceProtocol: HTTPS
  aws:elasticbeanstalk:application:
    Application Healthcheck URL: HTTPS:443/
```

**`.ebextensions/https-reencrypt-alb.config`**

Utilizza questo file di configurazione con un sistema Application Load Balancer.

```
option_settings:
  aws:elbv2:listener:443:
    DefaultProcess: https
    ListenerEnabled: 'true'
    Protocol: HTTPS
  aws:elasticbeanstalk:environment:process:https:
    Port: '443'
    Protocol: HTTPS
```

**`.ebextensions/https-reencrypt-nlb.config`**

Utilizza questo file di configurazione con un sistema Network Load Balancer.

```
option_settings:
  aws:elbv2:listener:443:
    DefaultProcess: https
    ListenerEnabled: 'true'
  aws:elasticbeanstalk:environment:process:https:
    Port: '443'
```

L'opzione `DefaultProcess` è così denominata perché un sistema Application Load Balancer può avere listener non predefiniti sulla stessa porta per il traffico verso percorsi specifici (vedi [Application Load Balancer](environments-cfg-alb.md) per i dettagli). Per un sistema Network Load Balancer, l'opzione specifica l'unico processo di destinazione per questo listener.

In questo esempio, abbiamo denominato il processo `https` perché ascolta per proteggere il traffico (HTTPS). Il listener invia il traffico al processo sulla porta designata usando il protocollo TCP perché un sistema Network Load Balancer utilizza solo TCP. Questo comportamento è corretto, perché il traffico di rete HTTP e HTTPS viene implementato su TCP.

**Nota**  
La console Elastic Beanstalk e la CLI EB applicano i valori consigliati per le opzioni precedenti. Rimuovi queste impostazioni se desideri utilizzare i file di configurazione per configurare le stesse opzioni. Per informazioni dettagliate, consulta [Valori consigliati](command-options.md#configuration-options-recommendedvalues).

Nell'attività successiva, è necessario modificare il gruppo di sicurezza del sistema di bilanciamento del carico per consentire il traffico. A seconda dell'[Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) in cui viene avviato l'ambiente, ovvero il VPC predefinito o un VPC personalizzato, varia il gruppo di sicurezza del sistema di bilanciamento del carico. In un VPC predefinito, Elastic Load Balancing fornisce un gruppo di sicurezza predefinito che può essere utilizzato da tutti i sistemi di bilanciamento del carico. In un Amazon VPC creato da te, Elastic Beanstalk fornisce un gruppo di sicurezza che viene utilizzato dal sistema di bilanciamento del carico.

Per supportare entrambi gli scenari, puoi creare un gruppo di sicurezza e indicare a Elastic Beanstalk di utilizzarlo. Il file di configurazione seguente crea un gruppo di sicurezza e lo collega al sistema di bilanciamento del carico.

**`.ebextensions/https-lbsecuritygroup.config`**

```
option_settings:
  # Use the custom security group for the load balancer
  aws:elb:loadbalancer:
    SecurityGroups: '`{ "Ref" : "loadbalancersg" }`'
    ManagedSecurityGroup: '`{ "Ref" : "loadbalancersg" }`'

Resources:
  loadbalancersg:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: load balancer security group
      VpcId: vpc-########
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 443
          ToPort: 443
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 0.0.0.0/0
      SecurityGroupEgress:
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 0.0.0.0/0
```

Sostituisci il testo evidenziato con l'ID VPC predefinito o personalizzato. L'esempio precedente include l'ingresso e l'uscita sulla porta 80 per permettere connessioni HTTP. Puoi rimuovere queste proprietà se vuoi permettere solo connessioni sicure.

Infine, aggiungi regole di ingresso e di uscita per permettere la comunicazione sulla porta 443 tra il gruppo di sicurezza del sistema di bilanciamento del carico e il gruppo di sicurezza delle istanze.

**`.ebextensions/https-backendsecurity.config`**

```
Resources:
  # Add 443-inbound to instance security group (AWSEBSecurityGroup)
  httpsFromLoadBalancerSG: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      SourceSecurityGroupId: {"Fn::GetAtt" : ["loadbalancersg", "GroupId"]}
  # Add 443-outbound to load balancer security group (loadbalancersg)
  httpsToBackendInstances: 
    Type: AWS::EC2::SecurityGroupEgress
    Properties:
      GroupId: {"Fn::GetAtt" : ["loadbalancersg", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      DestinationSecurityGroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
```

Eseguendo questa operazione separatamente dalla creazione del gruppo di sicurezza, potrai limitare i gruppi di sicurezza di origine e destinazione senza creare una dipendenza circolare.

Una volta completate tutte le attività sopra descritte, il sistema di bilanciamento del carico si connette alle istanze di back-end in modo sicuro utilizzando HTTPS. Al sistema di bilanciamento del carico non importa se il certificato dell'istanza è autofirmato o rilasciato da un'autorità di certificazione attendibile, ma accetta semplicemente qualsiasi certificato presentato.

Puoi modificare questo comportamento aggiungendo delle policy al sistema di bilanciamento del carico che gli indichino come attendibile un solo certificato specifico. Il file di configurazione seguente crea due policy. Una policy specifica un certificato pubblico e l'altra indica al sistema di bilanciamento del carico di considerare affidabile solo il certificato per le connessioni alla porta 443 dell'istanza.

**`.ebextensions/https-backendauth.config`**

```
option_settings:
  # Backend Encryption Policy
  aws:elb:policies:backendencryption:
    PublicKeyPolicyNames: backendkey
    InstancePorts:  443
  # Public Key Policy
  aws:elb:policies:backendkey:
    PublicKey: |
      -----BEGIN CERTIFICATE-----
      ################################################################
      ################################################################
      ################################################################
      ################################################################
      ################################################
      -----END CERTIFICATE-----
```

Sostituisci il testo evidenziato con il contenuto del certificato pubblico dell' EC2 istanza.

# Configurazione del sistema di bilanciamento del carico dell'ambiente per il passthrough TCP
<a name="https-tcp-passthrough"></a>

Se non desideri che il sistema di bilanciamento del carico del tuo AWS Elastic Beanstalk ambiente decrittografi il traffico HTTPS, puoi configurare il listener sicuro per inoltrare le richieste alle istanze di backend così come sono.

**Importante**  
La configurazione del load balancer per inoltrare il traffico HTTPS senza decrittografarlo presenta uno svantaggio. Il load balancer non è in grado di visualizzare le richieste crittografate e quindi non può ottimizzare il routing o riportare le metriche di risposta.

Per prima cosa [configura le EC2 istanze del tuo ambiente per terminare HTTPS.](https-singleinstance.md) Testa la configurazione su un ambiente di istanza singola per assicurarti che tutto funzioni prima di aggiungere un sistema di bilanciamento del carico alla combinazione.

Aggiungi un [file di configurazione](ebextensions.md) al tuo progetto per configurare un listener sulla porta 443 che trasferisce pacchetti TCP così come sono alla porta 443 sulle istanze di back-end:

**`.ebextensions/https-lb-passthrough.config`**

```
option_settings:
  aws:elb:listener:443:
    ListenerProtocol: TCP
    InstancePort: 443
    InstanceProtocol: TCP
```

In un [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/) predefinito devi anche aggiungere una regola al gruppo di sicurezza delle istanze per consentire il traffico in entrata sulla porta 443 dal sistema di bilanciamento del carico:

**`.ebextensions/https-instance-securitygroup.config`**

```
Resources:
  443inboundfromloadbalancer:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      SourceSecurityGroupName: { "Fn::GetAtt": ["AWSEBLoadBalancer", "SourceSecurityGroup.GroupName"] }
```

In un VPC personalizzato, Elastic Beanstalk aggiorna automaticamente la configurazione del gruppo di sicurezza.

# Configurazione del reindirizzamento da HTTP a HTTPS
<a name="configuring-https-httpredirect"></a>

Questo argomento descrive come gestire il traffico HTTP verso l'applicazione se gli utenti finali continuano ad avviarlo. A questo scopo, configura il reindirizzamento *da HTTP a HTTPS*, talvolta definito come *forzamento di HTTPS*.

Per configurare il reindirizzamento, è necessario configurare prima l'ambiente per gestire il traffico HTTPS. Quindi reindirizza il traffico HTTP a HTTPS. Queste due fasi sono descritte nelle seguenti sottosezioni. 

## Configurare l'ambiente per gestire il traffico HTTPS
<a name="configuring-https-httpredirect.https"></a>

A seconda della configurazione del bilanciamento del carico dell'ambiente, effettua una delle seguenti operazioni:
+ **Ambiente con bilanciamento del carico**: [configura il sistema di bilanciamento del carico per terminare HTTPS](configuring-https-elb.md).
+ **Ambiente a istanza singola**: [configura la tua applicazione per terminare le connessioni HTTPS nell'istanza](https-singleinstance.md). Questa configurazione dipende dalla piattaforma dell'ambiente.

## Reindirizzare il traffico HTTP a HTTPS
<a name="configuring-https-httpredirect.redirect"></a>

Per reindirizzare il traffico HTTP verso HTTPS per la tua applicazione, puoi configurare i server Web sulle istanze del tuo ambiente oppure configurare l'Application Load Balancer dell'ambiente.

**Configura i server web dell'istanza**  
Questo metodo funziona su qualsiasi ambiente di server Web. Configura i server Web sulle tue EC2 istanze Amazon per rispondere al traffico HTTP con uno stato di risposta di reindirizzamento HTTP.

Questa configurazione dipende dalla piattaforma dell'ambiente. Trova la cartella per la tua piattaforma nella [https://github.com/awsdocs/elastic-beanstalk-samples/tree/master/configuration-files/aws-provided/security-configuration/https-redirect](https://github.com/awsdocs/elastic-beanstalk-samples/tree/master/configuration-files/aws-provided/security-configuration/https-redirect)raccolta su GitHub e usa il file di configurazione di esempio contenuto in quella cartella.

Se l'ambiente utilizza i [controlli dello stato di Elastic Load Balancing](using-features.healthstatus.md#using-features.healthstatus.understanding), il sistema di bilanciamento del carico richiede un'istanza integra per rispondere ai messaggi di controllo dello stato HTTP con risposte HTTP 200 (OK). Di conseguenza, il server Web non deve reindirizzare questi messaggi ad HTTPS. I file di configurazione di esempio in [https://github.com/awsdocs/elastic-beanstalk-samples/tree/master/configuration-files/aws-provided/security-configuration/https-redirect](https://github.com/awsdocs/elastic-beanstalk-samples/tree/master/configuration-files/aws-provided/security-configuration/https-redirect) gestiscono questo requisito correttamente.

**Configura il sistema di bilanciamento del carico**  
Questo metodo funziona se si dispone di un ambiente con carico bilanciato che utilizza un Application Load [Balancer](environments-cfg-alb.md). Un Application Load Balancer può inviare risposte di reindirizzamento man mano che arriva il traffico HTTP. In questo caso, non è necessario configurare il reindirizzamento sulle istanze dell'ambiente.

Abbiamo due file di configurazione di esempio GitHub che mostrano come configurare un Application Load Balancer per il reindirizzamento.
+ Il file di configurazione [https://github.com/awsdocs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/resource-configuration/alb-http-to-https-redirection-full.config](https://github.com/awsdocs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/resource-configuration/alb-http-to-https-redirection-full.config) crea un listener HTTPS sulla porta 443 e modifica il listener predefinito della porta 80 per reindirizzare il traffico HTTP in ingresso a HTTPS.
+ Il file [https://github.com/awsdocs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/resource-configuration/alb-http-to-https-redirection.config](https://github.com/awsdocs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/resource-configuration/alb-http-to-https-redirection.config)di configurazione prevede la definizione del listener 443. Per definirlo, puoi utilizzare i namespace di configurazione Elastic Beanstalk standard o la console Elastic Beanstalk. Quindi apporta la modifica al listener della porta 80 per il reindirizzamento.