

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

# Utilizzo della piattaforma Go di Elastic Beanstalk
<a name="go-environment"></a>

Questo argomento descrive come configurare, creare ed eseguire le applicazioni Go su Elastic Beanstalk.

AWS Elastic Beanstalk supporta una serie di rami della piattaforma per diverse versioni del linguaggio di programmazione Go. Vedi [Go](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.go) nel documento *AWS Elastic Beanstalk Platforms* per un elenco completo.

Per applicazioni Go semplici, sono disponibili due modi per distribuire l'applicazione:
+ Fornisci un bundle di origine con un file sorgente nella radice chiamata `application.go` che contiene il pacchetto principale per la tua applicazione. Elastic Beanstalk crea il binario utilizzando il comando seguente:

  ```
  go build -o bin/application application.go
  ```

  Dopo che l'applicazione è stata creata, Elastic Beanstalk la avvia sulla porta 5000.
+ Fornire un bundle di origine con un file binario chiamato `application`. Il file binario può essere situato nella radice del bundle di origine o nella directory `bin/` del bundle di origine. Se posizioni il file binario `application` in entrambi i percorsi, Elastic Beanstalk usa il file nella directory `bin/`.

  Elastic Beanstalk lancia questa applicazione sulla porta 5000.

In entrambi i casi, con le nostre filiali supportate della piattaforma Go, puoi anche fornire i requisiti del modulo in un file chiamato`go.mod`. Per ulteriori informazioni, consulta [Migrazione a moduli Go](https://blog.golang.org/migrating-to-go-modules) nel blog Go.

Per applicazioni Go più complesse, sono disponibili due modi per distribuire l'applicazione:
+ Fornisci un bundle di origine che includa i file di origine della tua applicazione, insieme a un [Buildfile](go-buildfile.md) e a un [Procfile](go-procfile.md). Il Buildfile include un comando per creare l'applicazione, mentre il Procfile include istruzioni per l'esecuzione dell'applicazione.
+ Fornisci un bundle di origine che includa i file binari della tua applicazione, insieme a un Procfile. Il Procfile include istruzioni per l'esecuzione dell'applicazione.

La piattaforma Go include un server proxy che serve risorse statiche e inoltra il traffico all'applicazione. Puoi [estendere o sostituire la configurazione proxy predefinita](go-nginx.md) per scenari avanzati.

Per informazioni dettagliate sui vari modi in cui è possibile estendere una piattaforma Elastic Beanstalk basata su Linux, consulta [Estensione delle piattaforme Elastic Beanstalk Linux](platforms-linux-extend.md).

## Configurazione dell'ambiente Go
<a name="go-options"></a>

Le impostazioni della piattaforma Go ti consentono di ottimizzare il comportamento delle tue istanze Amazon EC2 . Puoi modificare la configurazione dell'istanza Amazon dell'ambiente Elastic Beanstalk utilizzando EC2 la console Elastic Beanstalk.

Utilizza la console Elastic Beanstalk per attivare la rotazione dei log in Amazon S3 e configurare variabili che l'applicazione è in grado di leggere dall'ambiente.

**Per configurare l'ambiente Go nella 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, seleziona **Configuration** (Configurazione).

1. Nella categoria di configurazione **Updates, monitoring, and logging** (Aggiornamenti, monitoraggio e registrazione), scegli **Edit** (Modifica).

### Opzioni di log
<a name="go-options-logs"></a>

La sezione Log Options (Opzioni di log) ha due impostazioni:
+ **Instance profile** (Profilo dell'istanza): specifica il profilo dell'istanza che dispone dell'autorizzazione ad accedere al bucket Amazon S3 associato all'applicazione.
+ **Abilita la rotazione dei file di registro su Amazon S3**: specifica se i file di log per le EC2 istanze Amazon dell'applicazione vengono copiati nel bucket Amazon S3 associato all'applicazione.

### File statici
<a name="go-options-staticfiles"></a>

Per migliorare le prestazioni, la sezione **Static files** (File statici) consente di configurare il server proxy affinché fornisca file statici (ad esempio, HTML o immagini) da un set di directory all'interno dell'applicazione Web. Per ogni directory, è possibile impostare il percorso virtuale per la mappatura delle directory. Quando il server proxy riceve una richiesta da un file nel percorso specificato, questo serve il file direttamente anziché instradare la richiesta all'applicazione.

Per informazioni dettagliate sulla configurazione di file statici utilizzando file di configurazione o la console Elastic Beanstalk, consulta [Fornire i file statici](environment-cfg-staticfiles.md).

### Proprietà dell'ambiente
<a name="go-options-properties"></a>

La sezione **Environment Properties** consente di specificare le impostazioni di configurazione dell'ambiente sulle EC2 istanze Amazon su cui è in esecuzione l'applicazione. Le proprietà di ambiente sono passate come coppie chiave-valore all'applicazione.

All'interno dell'ambiente Go in esecuzione in Elastic Beanstalk, le variabili di ambiente sono accessibili tramite la funzione `os.Getenv`. Ad esempio, è possibile leggere una proprietà denominata `API_ENDPOINT` su una variabile con il codice seguente:

```
endpoint := os.Getenv("API_ENDPOINT")
```

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

## Spazi dei nomi per la configurazione di Go
<a name="go-namespaces"></a>

È possibile utilizzare un [file di configurazione](ebextensions.md) per impostare le opzioni di configurazione ed eseguire alte attività di configurazione delle istanze durante le distribuzioni. Le opzioni di configurazione possono essere [specifiche della piattaforma](command-options-specific.md) o essere applicate a [tutte le piattaforme](command-options-general.md) del servizio Elastic Beanstalk nel suo complesso. *Le opzioni di configurazione sono organizzate in namespace.*

La piattaforma Go non definisce spazi dei nomi specifici della piattaforma. È possibile configurare il proxy per servire file statici utilizzando lo spazio dei nomi `aws:elasticbeanstalk:environment:proxy:staticfiles`. Per informazioni dettagliate e un esempio, consulta [Fornire i file statici](environment-cfg-staticfiles.md).

In Elastic Beanstalk sono disponibili varie opzioni di configurazione per la personalizzazione dell'ambiente. Oltre ai file di configurazione, puoi impostare le opzioni di configurazione tramite la console, le configurazioni salvate, la CLI EB o AWS CLI. Per ulteriori informazioni, consultare [Opzioni di configurazione](command-options.md).

## La piattaforma Go di AMI Amazon Linux (precedente ad Amazon Linux 2)
<a name="go.alami"></a>

Se l'ambiente Go di Elastic Beanstalk utilizza una versione della piattaforma AMI Amazon Linux (precedente ad Amazon Linux 2), leggi le informazioni aggiuntive presenti in questa sezione.

**Note**  
Le informazioni contenute in questo argomento si applicano solo ai rami della piattaforma basati su Amazon Linux AMI (AL1). AL2I rami della AL2 piattaforma 023/ non sono compatibili con le versioni precedenti della piattaforma Amazon Linux AMI (AL1) e *richiedono impostazioni di configurazione diverse*.
 [Il 18 luglio 2022,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html) **Elastic Beanstalk ha impostato lo stato di tutte le filiali della piattaforma basate su Amazon Linux AMI AL1 () come ritirato.** Per ulteriori informazioni sulla migrazione a una ramificazione della piattaforma Amazon Linux 2023 attuale e completamente supportata, consulta [Migrazione dell'applicazione Elastic Beanstalk Linux ad Amazon Linux 2023 o Amazon Linux 2](using-features.migration-al.md).

### Namespace di configurazione Go — Amazon Linux AMI () AL1
<a name="go.alami.namespaces"></a>

È possibile utilizzare un [file di configurazione](ebextensions.md) per impostare le opzioni di configurazione ed eseguire alte attività di configurazione delle istanze durante le distribuzioni. Le opzioni di configurazione possono essere [specifiche della piattaforma](command-options-specific.md) o essere applicate a [tutte le piattaforme](command-options-general.md) del servizio Elastic Beanstalk nel suo complesso. *Le opzioni di configurazione sono organizzate in namespace.*

**Nota**  
Le informazioni contenute in questo argomento si applicano solo ai rami della piattaforma basati su Amazon Linux AMI (AL1). AL2I rami della AL2 piattaforma 023/ non sono compatibili con le versioni precedenti della piattaforma Amazon Linux AMI (AL1) e *richiedono impostazioni di configurazione diverse*.

Oltre agli spazi dei nomi supportati da tutte le piattaforme, la piattaforma Go di AMI Amazon Linux supporta uno [spazio dei nomi di configurazione specifico della piattaforma](command-options-general.md). Lo spazio dei nomi `aws:elasticbeanstalk:container:golang:staticfiles` consente di definire le opzioni che mappano i percorsi nell'applicazione Web alle cartelle del bundle di origine dell'applicazione con contenuti statici.

Ad esempio, questo [file di configurazione](ebextensions.md) indica al server proxy di servire i file nella cartella `staticimages` al percorso `/images`:

**Example .ebextensions/go-settings.config**  

```
option_settings:
  aws:elasticbeanstalk:container:golang:staticfiles:
    /html: statichtml
    /images: staticimages
```

In Elastic Beanstalk sono disponibili varie opzioni di configurazione per la personalizzazione dell'ambiente. Oltre ai file di configurazione, puoi impostare le opzioni di configurazione tramite la console, le configurazioni salvate, la CLI EB o AWS CLI. Per ulteriori informazioni, consulta [Opzioni di configurazione](command-options.md).