

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