

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 Ruby di Elastic Beanstalk
<a name="create_deploy_Ruby.container"></a>

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

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

L'applicazione web Ruby può essere eseguita dietro un server proxy NGINX su un server di applicazioni Puma. Se lo utilizzi RubyGems, puoi includere un pacchetto [`Gemfile`](ruby-platform-gemfile.md)nel tuo pacchetto sorgente per installare i pacchetti durante la distribuzione.

**Configurazione del server delle applicazioni**  
Elastic Beanstalk installa il server delle applicazioni Puma in base al ramo della piattaforma Ruby che scegli quando crei il tuo ambiente. Per ulteriori informazioni sui componenti forniti con le versioni della piattaforma Ruby, consulta la sezione [Piattaforme supportate](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.ruby) nella guida *Piattaforme AWS Elastic Beanstalk *.

È possibile configurare l'applicazione con il server Puma fornito. Ciò offre la possibilità di utilizzare una versione di Puma diversa da quella preinstallata con il ramo della piattaforma Ruby. È inoltre possibile configurare l'applicazione per utilizzare un server di applicazioni diverso, ad esempio Passenger. A tale scopo, devi includere e personalizzare un `Gemfile` nella tua implementazione. Dovresti inoltre configurare un `Procfile` per avviare il server delle applicazioni. Per ulteriori informazioni, consulta *[Configurazione del processo dell'applicazione con un Procfile](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ruby-platform-procfile.html)**.*

**Altre opzioni di configurazione**  
Elastic Beanstalk fornisce le [opzioni di configurazione](command-options.md) che puoi utilizzare per personalizzare il software in esecuzione sulle istanze Amazon Elastic Compute Cloud (Amazon EC2) nell'ambiente Elastic Beanstalk. Puoi configurare le variabili di ambiente necessarie per la tua applicazione, accedere alla rotazione dei log su Amazon S3 e mappare le cartelle nel codice sorgente dell'applicazione che contengono i file statici ai percorsi serviti dal server proxy. La piattaforma, inoltre, predefinisce alcune variabili di ambiente comuni relative a Rails e Rack per facilitare il rilevamento e l'utilizzo.

Sono disponibili opzioni di configurazione specifiche della piattaforma nella console Elastic Beanstalk per la [modifica della configurazione di un ambiente in esecuzione](environment-configuration-methods-after.md). Per conservare la configurazione dell'ambiente una volta terminata, puoi utilizzare [configurazioni salvate](environment-configuration-savedconfig.md) per salvare le impostazioni e applicarle successivamente a un altro ambiente.

Per salvare le impostazioni nel codice sorgente, puoi includere i [file di configurazione](ebextensions.md). Le impostazioni nei file di configurazione vengono applicate ogni volta che crei un ambiente o distribuisci l'applicazione. Puoi inoltre utilizzare i file di configurazione per installare pacchetti, eseguire script o altre operazioni di personalizzazione delle istanze durante le distribuzioni.

Le impostazioni applicate nella console Elastic Beanstalk sostituiscono le stesse impostazioni nei file di configurazione, se esistenti. Ciò ti consente di disporre di impostazioni predefinite nei file di configurazione, sostituibili con impostazioni specifiche per l'ambiente nella console. Per ulteriori informazioni sulla precedenza e altri metodi di modifica delle impostazioni, consulta [Opzioni di configurazione](command-options.md).

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 Ruby
<a name="create-deploy_Ruby.container.CON"></a>

Puoi utilizzare 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 accedere alle impostazioni di configurazione software per l'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 **Updates, monitoring, and logging** (Aggiornamenti, monitoraggio e registrazione), scegli **Edit** (Modifica).

### Opzioni di log
<a name="create_deploy_Ruby.container.console.logoptions"></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.
+ **Enable log file rotation to Amazon S3** (Abilita rotazione file di log in Amazon S3): specifica se i file di log per le istanze Amazon EC2 dell'applicazione debbano essere copiati nel bucket Amazon S3 associato all'applicazione.

### File statici
<a name="create_deploy_Ruby.container.console.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).

Per impostazione predefinita, il server proxy in un ambiente Ruby è configurato per servire file statici nel modo seguente:
+ I file nelle cartelle `public` sono serviti dal percorso `/public` e dalla radice del dominio (percorso `/`).
+ I file nelle sottocartelle `public/assets` sono serviti dal percorso `/assets`.

Negli esempi seguenti viene illustrato il funzionamento della configurazione predefinita:
+ Se il codice sorgente dell'applicazione contiene un file con nome `logo.png` in una cartella chiamata `public`, il server proxy lo servirà agli utenti da `subdomain.elasticbeanstalk.com/public/logo.png` e `subdomain.elasticbeanstalk.com/logo.png`.
+ Se il codice sorgente dell'applicazione contiene un file con nome `logo.png` in una cartella chiamata `assets` nella cartella `public`, il server proxy lo servirà agli utenti da `subdomain.elasticbeanstalk.com/assets/logo.png`.

È possibile configurare mappature aggiuntive per file statici. Per ulteriori informazioni, consulta [Spazi dei nomi della configurazione Ruby](#ruby-namespaces) più avanti in questo argomento.

**Nota**  
Per le versioni della piattaforma precedenti alla * AL2 versione 3.3.7 di Ruby 2.7*, la configurazione predefinita del server proxy Elastic Beanstalk nginx non supporta l'invio di file statici dal dominio root (). `subdomain.elasticbeanstalk.com/` Questa versione della piattaforma è stata rilasciata il 21 ottobre 2021. Per ulteriori informazioni, consulta [Nuove versioni della piattaforma - Ruby](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2021-10-21-linux.html#release-2021-10-21-linux.platforms.ruby) nelle *Note di rilascio di AWS Elastic Beanstalk *.

### Proprietà dell'ambiente
<a name="create_deploy_Ruby.env.console.ruby.envprops"></a>

La sezione **Environment Properties (Proprietà ambiente)** consente di specificare le impostazioni di configurazione dell'ambiente nelle istanze Amazon EC2 che eseguono l'applicazione. Le proprietà di ambiente sono passate come coppie chiave-valore all'applicazione.

La piattaforma Ruby definisce le seguenti proprietà per la configurazione dell'ambiente:
+  **BUNDLE\$1WITHOUT**: elenco di gruppi separati da due punti da ignorare quando si [installano dipendenze](http://bundler.io/bundle_install.html) da un [Gemfile](http://bundler.io/v1.15/man/gemfile.5.html).
+ **BUNDLER\$1DEPLOYMENT\$1MODE**: impostato su `true` (predefinito) per installare le dipendenze in [deployment mode](https://bundler.io/man/bundle-install.1.html#DEPLOYMENT-MODE) mediante Bundler. Imposta su `false` per eseguire `bundle install` in modalità di sviluppo.
**Nota**  
Questa proprietà di ambiente non è definita sui rami della piattaforma Ruby AMI Amazon Linux (in precedenza Amazon Linux 2).
+  **RAILS\$1SKIP\$1ASSET\$1COMPILATION**: impostalo su `true` per omettere l'esecuzione di [http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets](http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets) durante la distribuzione.
+  **RAILS\$1SKIP\$1MIGRATIONS**: impostalo su `true` per omettere l'esecuzione di [http://guides.rubyonrails.org/active_record_migrations.html#running-migrations](http://guides.rubyonrails.org/active_record_migrations.html#running-migrations) durante la distribuzione.
+  **RACK\$1ENV**: specifica la fase di ambiente per Rack. Ad esempio, `development`, `production` o `test`.

All'interno dell'ambiente Ruby in esecuzione in Elastic Beanstalk, le variabili di ambiente sono accessibili tramite l'oggetto `ENV`. Ad esempio, è possibile leggere una proprietà denominata `API_ENDPOINT` su una variabile con il codice seguente:

```
endpoint = ENV['API_ENDPOINT']
```

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

## Spazi dei nomi della configurazione Ruby
<a name="ruby-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.*

È possibile utilizzare lo spazio dei nomi `aws:elasticbeanstalk:environment:proxy:staticfiles` dei nomi per configurare il proxy di ambiente per servire file statici. È possibile definire i mapping dei percorsi virtuali alle directory dell'applicazione.

La piattaforma Ruby non definisce spazi dei nomi specifici della piattaforma. ma proprietà di ambiente per opzioni comuni di Rails e Rack.

Il seguente file di configurazione specifica un'opzione file statici che esegue il mapping di una directory denominata `staticimages` al percorso `/images`, imposta ciascuna delle proprietà di ambiente definite dalla piattaforma e imposta una proprietà di ambiente aggiuntiva denominata `LOGGING`.

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

```
option_settings:
  aws:elasticbeanstalk:environment:proxy:staticfiles:
    /images: staticimages
  aws:elasticbeanstalk:application:environment:
    BUNDLE_WITHOUT: test
    BUNDLER_DEPLOYMENT_MODE: true
    RACK_ENV: development
    RAILS_SKIP_ASSET_COMPILATION: true
    RAILS_SKIP_MIGRATIONS: true
    LOGGING: debug
```

**Nota**  
La proprietà dell'ambiente `BUNDLER_DEPLOYMENT_MODE` e lo spazio dei nomi `aws:elasticbeanstalk:environment:proxy:staticfiles` non sono definiti sui rami della piattaforma Ruby AMI Amazon Linux (in precedenza Amazon Linux 2).

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

# Installazione di pacchetti con un Gemfile su Elastic Beanstalk
<a name="ruby-platform-gemfile"></a>

Da utilizzare RubyGems per installare i pacchetti richiesti dall'applicazione, includi un `Gemfile` file nella radice del codice sorgente del progetto.

**Example Gemfile**  

```
source "https://rubygems.org"
gem 'sinatra'
gem 'json'
gem 'rack-parser'
```

Quando è presente un file `Gemfile`, Elastic Beanstalk esegue `bundle install` per installare le dipendenze. Per ulteriori informazioni, consulta le pagine [Gemfile](https://bundler.io/man/gemfile.5.html) e [Bundle](https://bundler.io/man/bundle.1.html) pagine sul sito Web Bundler.io.

**Nota**  
Puoi usare una versione diversa di Puma oltre a quella predefinita preinstallata con la piattaforma Ruby. A tale scopo, includi una voce in un `Gemfile` che specifichi la versione. È inoltre possibile specificare un server di applicazioni diverso, ad esempio Passenger, utilizzando un `Gemfile` personalizzato.  
In entrambi i casi è necessario configurare un `Procfile` per avviare il server delle applicazioni.  
Per ulteriori informazioni, consulta *[Configurazione del processo dell'applicazione con un Procfile](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ruby-platform-procfile.html)**.* 

# Configurazione del processo di applicazione con un Procfile su Elastic Beanstalk.
<a name="ruby-platform-procfile"></a>

Per specificare il comando che avvia l'applicazione Ruby, includere un file chiamato `Procfile` alla radice del bundle sorgente.

**Nota**  
Elastic Beanstalk non supporta questa caratteristica sui rami della piattaforma Ruby AMI Amazon Linux (in precedenza Amazon Linux 2). I rami delle piattaforme con nomi contenenti *Puma* o *Passenger*, indipendentemente dalle loro versioni di Ruby, precedono Amazon Linux 2 e non supportano la caratteristica `Procfile`.

Per informazioni dettagliate sulla scrittura e l'uso di a, consulta. `Procfile` [Buildfile e Procfile](platforms-linux-extend.build-proc.md)

Quando non fornisci un`Procfile`, Elastic Beanstalk genera un valore predefinito. `Procfile` Se `Gemfile` includi Puma, Elastic Beanstalk presuppone che tu voglia usare la versione di Puma che hai fornito e genera la seguente impostazione predefinita. `Procfile`

```
web: bundle exec puma -C /opt/elasticbeanstalk/config/private/pumaconf.rb
```

Se il tuo `Gemfile` non include Puma, Elastic Beanstalk presuppone che tu stia utilizzando il server delle applicazioni Puma preinstallato e genera il seguente valore predefinito. `Procfile` Sulle filiali della piattaforma Amazon Linux 2 Ruby, Elastic Beanstalk genera sempre il `Procfile` seguente valore predefinito se non fornisci un. `Procfile`

```
web: puma -C /opt/elasticbeanstalk/config/private/pumaconf.rb
```

**Nota**  
[Il 10 ottobre 2024,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2024-10-10-al2-10-2024-retire.html) le ultime filiali della piattaforma Ruby Amazon Linux 2 sono state ritirate. Tutti i [rami della piattaforma Ruby attualmente supportati](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.ruby) sono basati su Amazon Linux 2023. Per informazioni sulla migrazione, consulta[Migrazione da Amazon Linux 2 ad Amazon Linux 2023](using-features.migration-al.generic.from-al2.md).

Se si desidera utilizzare il server delle applicazioni Passenger, utilizzare i seguenti file di esempio per configurare l'ambiente Ruby per installare e utilizzare Passenger.

1. Utilizzare questo file di esempio per installare Passenger.  
**Example Gemfile**  

   ```
   source 'https://rubygems.org'
   gem 'passenger'
   ```

1. Utilizzare questo file di esempio per indicare a Elastic Beanstalk di avviare Passenger.  
**Example Procfile**  

   ```
   web: bundle exec passenger start /var/app/current --socket /var/run/puma/my_app.sock
   ```

**Nota**  
Non è necessario modificare nulla nella configurazione del server proxy nginx per utilizzare Passenger. Per utilizzare altri server delle applicazioni, potrebbe essere necessario personalizzare la configurazione di nginx per inoltrare correttamente le richieste all'applicazione.