

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation de la plateforme Elastic Beanstalk Ruby
<a name="create_deploy_Ruby.container"></a>

Cette rubrique explique comment configurer, créer et exécuter vos applications Ruby sur Elastic Beanstalk.

AWS Elastic Beanstalk prend en charge un certain nombre de branches de plate-forme pour différentes versions du langage de programmation Ruby. Voir [Ruby](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.ruby) dans le document *AWS Elastic Beanstalk Platforms* pour une liste complète.

L'application Web Ruby peut s'exécuter derrière un serveur proxy NGINX sous un serveur d'applications Puma. Si vous l'utilisez RubyGems, vous pouvez en inclure un [`Gemfile`](ruby-platform-gemfile.md)dans votre bundle source pour installer des packages lors du déploiement.

**Configuration du serveur de l'application**  
Elastic Beanstalk installe le serveur d'applications Puma en fonction de la branche de plateforme Ruby que vous choisissez lors de la création de votre environnement. Pour plus d'informations sur les composants fournis avec les versions de la plateforme Ruby, consultez [Plateformes prises en charge](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.ruby) dans le guide *AWS Elastic Beanstalk Plateformes*.

Vous pouvez configurer votre application avec le serveur Puma que vous avez fourni. Cela permet d'utiliser une version de Puma autre que celle préinstallée avec la branche de plateforme Ruby. Vous pouvez également configurer votre application pour utiliser un autre serveur d'applications, tel que Passenger. Pour ce faire, vous devez inclure et personnaliser un `Gemfile` dans votre déploiement. Vous devez également configurer un `Procfile` pour démarrer le serveur d'applications. Pour plus d'informations, consultez *[Configuration du processus de l'application avec un Profil](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ruby-platform-procfile.html)**.*

**Autres options de configuration**  
Elastic Beanstalk fournit des [options de configuration](command-options.md) que vous pouvez utiliser pour personnaliser le logiciel qui s'exécute sur les instances Amazon Elastic Compute Cloud (Amazon EC2) dans votre environnement Elastic Beanstalk. Vous pouvez configurer des variables d'environnement nécessaires pour votre application, activer la rotation des journaux sur Amazon S3 et mapper des dossiers dans la source de votre application contenant des fichiers statiques vers des chemins desservis par le serveur proxy. La plateforme prédéfinit également certaines variables d'environnement courantes associées à Rails et Rack pour faciliter la découverte et l'utilisation.

Des options de configuration sont disponibles dans la console Elastic Beanstalk pour [modifier la configuration d'un environnement en cours d'exécution](environment-configuration-methods-after.md). Pour éviter de perdre la configuration de votre environnement en le résiliant, vous pouvez utiliser des [configurations enregistrées](environment-configuration-savedconfig.md) pour enregistrer vos paramètres et les appliquer par la suite à un autre environnement.

Pour enregistrer les paramètres dans votre code source, vous pouvez inclure des [fichiers de configuration](ebextensions.md). Les paramètres des fichiers de configuration sont appliquées chaque fois que vous créez un environnement ou que vous déployez votre application. Vous pouvez également utiliser des fichiers de configuration pour installer des packages, exécuter des scripts ou effectuer d'autres opérations de personnalisation d'instance lors des déploiements.

Les paramètres appliqués dans la console Elastic Beanstalk remplacent les mêmes paramètres des fichiers de configuration, s'ils existent. Cela vous permet d'utiliser les paramètres par défaut dans les fichiers de configuration et de les remplacer par des paramètres spécifiques à l'environnement dans la console. Pour plus d'informations sur la priorité et les autres méthodes de modification des paramètres, consultez [Options de configuration](command-options.md).

Pour plus d'informations sur les différentes manières d'étendre une plateforme Elastic Beanstalk basée sur Linux, consultez [Extension des plateformes Linux Elastic Beanstalk](platforms-linux-extend.md).

## Configuration de votre environnement Ruby
<a name="create-deploy_Ruby.container.CON"></a>

Vous pouvez utiliser la console Elastic Beanstalk pour activer la rotation de journal sur Amazon S3 et configurer les variables que votre application peut lire depuis l'environnement.

**Pour accéder aux paramètres de configuration du logiciel pour votre environnement**

1. Ouvrez la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk), puis **dans la liste des régions, sélectionnez votre**. Région AWS

1. Dans le panneau de navigation, choisissez **Environments** (Environnements), puis choisissez le nom de votre environnement dans la liste.

1. Dans le panneau de navigation, choisissez **Configuration**.

1. Dans la catégorie de configuration **Mises à jour, surveillance et journalisation**, sélectionnez **Modifier**.

### Options du journal
<a name="create_deploy_Ruby.container.console.logoptions"></a>

La section **Log Options (Options du journal)** a deux paramètres :
+ **Instance profile (Profil d'instance)** – Spécifie le profil d'instance qui est autorisé à accéder au compartiment Amazon S3 associé à votre application.
+ **Enable log file rotation to Amazon S3** (Permettre la rotation du fichier journal sur Amazon S3) – Indique si les fichiers journaux des instances Amazon EC2 de votre application doivent être copiés dans le compartiment Amazon S3 associé à votre application.

### Fichiers statiques
<a name="create_deploy_Ruby.container.console.staticfiles"></a>

Pour améliorer les performances, la section des **Fichiers statiques** vous permet de configurer le serveur proxy pour proposer des fichiers statiques (HTML ou images, par exemple) à partir d'un ensemble de répertoires dans votre application web. Pour chaque répertoire, vous définissez le chemin virtuel sur le mappage de répertoires. Lorsque le serveur proxy reçoit une demande pour un fichier dans le chemin spécifié, il fournit le fichier directement au lieu d'acheminer la demande vers votre application.

Pour en savoir plus sur la configuration des fichiers statiques à l'aide des fichiers de configuration ou de la console Elastic Beanstalk, consultez [Service de fichiers statiques](environment-cfg-staticfiles.md).

Par défaut, le serveur proxy d'un environnement Ruby est configuré pour servir des fichiers statiques comme suit :
+ Les fichiers du dossier `public` sont servis à partir du chemin `/public` et de la racine du domaine (chemin `/`).
+ Les fichiers du sous-dossier `public/assets` sont servis à partir du chemin `/assets`.

Les exemples suivants illustrent le fonctionnement de la configuration par défaut :
+ Si votre code source d'application contient un fichier nommé `logo.png` dans un dossier nommé `public`, le serveur proxy le sert aux utilisateurs dans `subdomain.elasticbeanstalk.com/public/logo.png` et `subdomain.elasticbeanstalk.com/logo.png`.
+ Si votre code source d'application contient un fichier nommé `logo.png` dans un dossier nommé `assets`dans le dossier `public`, le serveur proxy le sert aux utilisateurs dans `subdomain.elasticbeanstalk.com/assets/logo.png`.

Vous pouvez configurer d'autres mappages pour les fichiers statiques. Pour plus d'informations, consultez [Espaces de noms de configuration Ruby](#ruby-namespaces) plus loin dans cette rubrique.

**Note**  
Pour les versions de plate-forme antérieures à *Ruby 2.7 AL2 version 3.3.7*, la configuration par défaut du serveur proxy nginx Elastic Beanstalk ne prend pas en charge le service de fichiers statiques à partir de la racine du domaine (). `subdomain.elasticbeanstalk.com/` Cette version de plateforme a été publiée le 21 octobre 2021. Pour plus d'informations, consultez la section .[Nouvelles versions de plateforme - Ruby](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2021-10-21-linux.html#release-2021-10-21-linux.platforms.ruby) dans les *Notes de mise à jour AWS Elastic Beanstalk *.

### Propriétés de l'environnement
<a name="create_deploy_Ruby.env.console.ruby.envprops"></a>

La section **Propriétés de l'environnement** vous permet de spécifier des paramètres de configuration de l'environnement sur les instances Amazon EC2 exécutant votre application. Les propriétés de l'environnement sont passées en tant que paires clé-valeur à l'application.

La plateforme Ruby définit les propriétés suivantes pour la configuration de l'environnement :
+  **BUNDLE\$1WITHOUT** – Une liste séparée par des deux-points de groupes à ignorer lors de l'[installation de dépendances](http://bundler.io/bundle_install.html) à partir d'un [Gemfile](http://bundler.io/v1.15/man/gemfile.5.html).
+ **BUNDLER\$1DEPLOYMENT\$1MODE** – Définissez la valeur sur `true` (valeur par défaut) pour installer les dépendances en [mode de déploiement](https://bundler.io/man/bundle-install.1.html#DEPLOYMENT-MODE) à l'aide de Bundler. Définissez la valeur sur `false` pour exécuter `bundle install` en mode de développement.
**Note**  
Cette propriété d'environnement n'est pas définie sur les branches de la plateforme Amazon Linux AMI Ruby (auparavant Amazon Linux 2).
+  **RAILS\$1SKIP\$1ASSET\$1COMPILATION** – Définissez ce paramètre sur `true` pour ignorer l'exécution de [http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets](http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets) durant le déploiement.
+  **RAILS\$1SKIP\$1MIGRATIONS** – Définissez ce paramètre sur `true` pour ignorer l'exécution de [http://guides.rubyonrails.org/active_record_migrations.html#running-migrations](http://guides.rubyonrails.org/active_record_migrations.html#running-migrations) durant le déploiement.
+  **RACK\$1ENV** – Spécifiez l'étape de l'environnement pour Rack. Par exemple, `development`, `production` ou `test`.

Dans l'environnement Ruby en cours d'exécution dans Elastic Beanstalk, les variables d'environnement sont accessibles à l'aide de l'objet `ENV`. Par exemple, vous pouvez lire une propriété nommée `API_ENDPOINT` sur une variable avec le code suivant :

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

Pour plus d'informations, consultez [Variables d'environnement et autres paramètres du logiciel](environments-cfg-softwaresettings.md).

## Espaces de noms de configuration Ruby
<a name="ruby-namespaces"></a>

Vous pouvez utiliser un [fichier de configuration](ebextensions.md) pour définir des options de configuration et exécuter d'autres tâches de configuration d'instance pendant les déploiements. Les options de configuration peuvent être [spécifiques à la plate-forme](command-options-specific.md) ou s'appliquer à [toutes les plateformes](command-options-general.md) du service Elastic Beanstalk dans son ensemble. Les options de configuration sont organisées en *espaces de noms.*

Vous pouvez utiliser l'espace de noms `aws:elasticbeanstalk:environment:proxy:staticfiles` pour configurer le proxy d'environnement afin de traiter les fichiers statiques. Vous définissez les mappages des chemins virtuels vers les répertoires d'applications.

La plate-forme Ruby ne définit aucun espace de noms spécifique à la plate-forme. Au lieu de cela, elle définit les propriétés d'environnement pour les options Rails et Rack communes.

Le fichier de configuration suivant spécifie une option de fichiers statiques qui mappe un répertoire nommé `staticimages` au chemin d'accès `/images`, définit chacune des propriétés d'environnement définies par la plate-forme et définit une propriété d'environnement supplémentaire nommée `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
```

**Note**  
La propriété d' environnement `BUNDLER_DEPLOYMENT_MODE` et l'espace de noms `aws:elasticbeanstalk:environment:proxy:staticfiles` ne sont pas définis sur les branches de la plateforme Amazon Linux AMI Ruby (anciennement Amazon Linux 2).

Elastic Beanstalk fournit de nombreuses options de configuration pour personnaliser votre environnement. En plus des fichiers de configuration, vous pouvez également définir des options de configuration à l'aide de la console, de configurations enregistrées, de la CLI EB ou d' AWS CLI. Pour plus d’informations, consultez [Options de configuration](command-options.md).

# Installation de packages avec un Gemfile sur Elastic Beanstalk
<a name="ruby-platform-gemfile"></a>

 RubyGems Pour installer les packages requis par votre application, incluez un `Gemfile` fichier à la racine de la source de votre projet.

**Example Gemfile**  

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

Lorsqu'un fichier `Gemfile` est présent, Elastic Beanstalk exécute `bundle install` pour installer les dépendances. Pour plus d'informations, veuillez consulter les pages [Gemfile](https://bundler.io/man/gemfile.5.html) et [Bundle](https://bundler.io/man/bundle.1.html) sur le site Web Bundler.io.

**Note**  
Vous pouvez utiliser une version différente de Puma en plus de la version par défaut préinstallée sur la plateforme Ruby. Pour ce faire, insérez une entrée dans `Gemfile` qui sert à indiquer la version. Vous pouvez également spécifier un autre serveur d'applications, tel que Passenger, en utilisant un `Gemfile` personnalisé.  
Pour ces deux cas, vous devez également configurer un `Procfile` pour démarrer le serveur d'applications.  
Pour plus d'informations, consultez *[Configuration du processus de l'application avec un Profil](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ruby-platform-procfile.html)**.* 

# Configuration du processus de candidature avec un Procfile sur Elastic Beanstalk.
<a name="ruby-platform-procfile"></a>

Pour spécifier la commande qui démarre votre application Ruby, incluez un fichier appelé `Procfile` à la racine de votre solution groupée source.

**Note**  
Elastic Beanstalk ne prend pas en charge cette fonctionnalité sur les branches de plateforme Amazon Linux AMI Ruby (auparavant Amazon Linux 2). Les branches de plateforme dont les noms contiennent *Puma* ou *Passenger*, quelle que soit leur version Ruby, précèdent Amazon Linux 2 et ne prennent pas en charge la fonctionnalité `Procfile`.

Pour plus de détails sur l'écriture et l'utilisation d'un`Procfile`, voir[Buildfile et Procfile](platforms-linux-extend.build-proc.md).

Lorsque vous ne fournissez pas de`Procfile`, Elastic Beanstalk génère une valeur par défaut. `Procfile` Si vous `Gemfile` incluez Puma, Elastic Beanstalk part du principe que vous souhaitez utiliser la version de Puma que vous avez fournie et génère la version par défaut suivante. `Procfile`

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

Si vous `Gemfile` n'incluez pas Puma, Elastic Beanstalk suppose que vous utilisez le serveur d'applications Puma préinstallé et génère la valeur par défaut suivante. `Procfile` Sur les branches de la plateforme Amazon Linux 2 Ruby, Elastic Beanstalk génère toujours la valeur par défaut `Procfile` suivante si vous ne fournissez pas de. `Procfile`

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

**Note**  
[Le 10 octobre 2024,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2024-10-10-al2-10-2024-retire.html) les dernières branches de la plateforme Ruby Amazon Linux 2 ont été supprimées. Toutes les [branches de la plateforme Ruby actuellement prises en charge](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.ruby) sont basées sur Amazon Linux 2023. Pour plus d'informations sur la migration, consultez[Migration depuis Amazon Linux 2 vers Amazon Linux 2023](using-features.migration-al.generic.from-al2.md).

Si vous souhaitez utiliser le serveur d'applications Passenger, utilisez les exemples de fichiers suivants pour configurer votre environnement Ruby pour installer et utiliser Passenger.

1. Utilisez ce fichier d'exemple pour installer Passenger.  
**Example Gemfile**  

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

1. Utilisez cet exemple de fichier pour demander à Elastic Beanstalk de démarrer Passenger.  
**Example Procfile**  

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

**Note**  
Aucun changement ne doit être apporté à la configuration du serveur proxy nginx pour utiliser Passenger. Pour utiliser d'autres serveurs d'applications, vous devrez peut-être personnaliser la configuration nginx pour transférer correctement les demandes à votre application.