

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwenden der Elastic Beanstalk-Ruby-Plattform
<a name="create_deploy_Ruby.container"></a>

In diesem Thema wird beschrieben, wie Sie Ihre Ruby-Anwendungen auf Elastic Beanstalk konfigurieren, erstellen und ausführen.

AWS Elastic Beanstalk unterstützt eine Reihe von Plattformzweigen für verschiedene Versionen der Programmiersprache Ruby. Eine vollständige Liste finden Sie unter [Ruby](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.ruby) im Dokument *AWS Elastic Beanstalk Plattformen*.

Die Ruby-Webanwendung kann hinter einem NGINX-Proxyserver unter einem Puma-Anwendungsserver ausgeführt werden. Wenn Sie dies verwenden RubyGems, können Sie a [`Gemfile`](ruby-platform-gemfile.md)in Ihr Quellpaket aufnehmen, um Pakete während der Bereitstellung zu installieren.

**Anwendungsserverkonfiguration**  
Elastic Beanstalk installiert den Puma-Anwendungsserver basierend auf dem Zweig der Ruby-Plattform, den Sie bei der Erstellung Ihrer Umgebung auswählen. Weitere Informationen zu den Komponenten der Ruby-Plattformversionen finden Sie unter [Supported Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.ruby) (Unterstützte Plattformen) in der *AWS Elastic Beanstalk -Plattformen*-Anleitung.

Sie können Ihre Anwendung mit Ihrem eigenen Puma-Server konfigurieren. Dies bietet die Möglichkeit, eine andere Version von Puma als die, die mit dem Ruby-Plattformzweig vorinstalliert ist, zu verwenden. Sie können Ihre Anwendung auch so konfigurieren, dass sie einen anderen Anwendungsserver wie Passenger verwendet. Dazu müssen Sie einen `Gemfile` in Ihrer Bereitstellung einbinden und einstellen. Sie müssen auch einen `Procfile` konfigurieren, um den Anwendungsserver zu starten. Weitere Informationen finden Sie unter *[Configuring the application process with a Procfile](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ruby-platform-procfile.html)* (Konfigurieren der Anwendung mit einer Procfile-Datei)*.*

**Andere Konfigurationsoptionen**  
Elastic Beanstalk bietet [Konfigurationsoptionen](command-options.md), mit denen sich die auf den Amazon Elastic Compute Cloud (Amazon EC2)-Instances in der Elastic Beanstalk-Umgebung ausgeführte Software anpassen lässt. Sie können die für Ihre Anwendung erforderlichen Umgebungsvariablen konfigurieren, die Protokollrotation an Amazon S3 aktivieren und die Ordner in der Anwendungsquelle, die statische Dateien enthalten, den vom Proxy-Server verwendeten Pfaden zuordnen. Die Plattform verfügt auch über einige allgemeine Umgebungsvariablen für Rails und Rack, die eine einfache Erkennung und Nutzung ermöglichen.

In der Elastic Beanstalk-Konsole sind Konfigurationsoptionen für das [Ändern der Konfiguration einer ausgeführten Umgebung](environment-configuration-methods-after.md) verfügbar. Um zu verhindern, dass die Umgebungskonfiguration beim Beenden verloren geht, können Sie [gespeicherte Konfigurationen](environment-configuration-savedconfig.md) verwenden, um Ihre Einstellungen zu speichern und sie später für eine andere Umgebung zu übernehmen.

Zum Speichern der Einstellungen im Quellcode können Sie [Konfigurationsdateien](ebextensions.md) einschließen. Die Einstellungen in Konfigurationsdateien werden jedes Mal verwendet, wenn Sie eine Umgebung erstellen oder Ihre Anwendung bereitstellen. Mit Konfigurationsdateien können Sie auch Pakete installieren, Skripts ausführen und andere Instance-Anpassungen bei Bereitstellungen vornehmen.

Die in der Elastic Beanstalk-Konsole angewendeten Einstellungen überschreiben die entsprechenden Einstellungen in Konfigurationsdateien, wenn vorhanden. So sind Standardeinstellungen in Konfigurationsdateien möglich, die Sie mit umgebungsspezifischen Einstellungen in der Konsole überschreiben können. Für weitere Informationen zur Rangfolge und zu anderen Methoden zum Ändern der Einstellungen siehe [Konfigurationsoptionen](command-options.md).

Details zu den verschiedenen Möglichkeiten für das Erweitern einer Linux-basierten Elastic Beanstalk-Plattform finden Sie unter [Erweitern von Elastic Beanstalk-Linux-Plattformen](platforms-linux-extend.md).

## Konfigurieren Ihrer Ruby-Umgebung
<a name="create-deploy_Ruby.container.CON"></a>

Mit der Elastic Beanstalk-Konsole können Sie die Protokollrotation für Amazon S3 aktivieren und Variablen konfigurieren, die die Anwendung in der Umgebung lesen kann.

**So greifen Sie auf die Softwarekonfigurationseinstellungen für die Umgebung zu**

1. Öffnen Sie die [Elastic Beanstalk Beanstalk-Konsole](https://console.aws.amazon.com/elasticbeanstalk) und wählen Sie in der Liste **Regionen** Ihre aus. AWS-Region

1. Wählen Sie im Navigationsbereich **Environments (Umgebungen)** aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

1. Wählen Sie im Navigationsbereich **Configuration (Konfiguration)** aus.

1. Wählen Sie in der Konfigurationskategorie **Updates, monitoring and logging ** (Updates, Überwachung und Protokolle) die Option **Edit** (Bearbeiten) aus.

### Protokolloptionen
<a name="create_deploy_Ruby.container.console.logoptions"></a>

Im Abschnitt **Log options (Protokolloptionen)** sind zwei Einstellungen vorhanden:
+ **Instance profile (Instance-Profil)** – Gibt das Instance-Profil an, das zum Zugriff auf den entsprechenden Amazon S3-Bucket der Anwendung berechtigt ist.
+ **Enable log file rotation to Amazon S3** (Protokolldateirotation für Amazon S3 aktivieren) – Gibt an, ob die Protokolldateien für die Amazon-EC2-Instances der Anwendung in den der Anwendung zugeordneten Amazon-S3-Bucket kopiert werden.

### Statische Dateien
<a name="create_deploy_Ruby.container.console.staticfiles"></a>

Um die Leistung zu verbessern, können Sie den Abschnitt **Static files** (Statische Dateien) benutzen, um den Proxy-Server so zu konfigurieren, dass er statische Dateien (z. B. HTML oder Bilder) aus Verzeichnissen innerhalb Ihrer Webanwendung bereitstellt. Legen Sie für jedes Verzeichnis den virtuellen Pfad zum Verzeichnis-Mapping fest. Wenn der Proxy-Server eine Anfrage nach einer Datei unter dem angegebenen Pfad erhält, stellt er die Datei direkt bereit, anstatt die Anfrage an Ihre Anwendung weiterzuleiten.

Weitere Informationen zum Konfigurieren statischer Dateien mit der Elastic Beanstalk-Konsole finden Sie unter [Bereitstellen von statischen Dateien](environment-cfg-staticfiles.md).

Standardmäßig ist der Proxy-Server in einer Ruby-Umgebung so konfiguriert, dass er statische Dateien wie folgt bereitstellt:
+ Dateien im`public`-Ordner werden vom `/public`-Pfad und vom Domänenstamm bedient (`/`-Pfad).
+ Dateien im`public/assets`Unterordner werden vom `/assets`-Pfad bedient.

Die Funktionsweise wird anhand der Funktionsweise der Standardkonfiguration deutlich:
+ Wenn beispielsweise die Anwendungsquelle eine Datei mit dem Namen `logo.png` im Ordner `public` enthält, leitet der Proxy-Server sie von `subdomain.elasticbeanstalk.com/public/logo.png` und `subdomain.elasticbeanstalk.com/logo.png` an die Benutzer weiter.
+ Wenn beispielsweise die Anwendungsquelle eine Datei mit dem Namen `logo.png` `assets` im `public`-Ordner enthält, leitet der Proxy-Server sie von `subdomain.elasticbeanstalk.com/assets/logo.png` weiter.

Sie können zusätzliche Zuordnungen für statische Dateien konfigurieren. Weitere Informationen finden Sie unter [Namespaces der Ruby-Konfigurationen](#ruby-namespaces) an späterer Stelle in diesem Thema.

**Anmerkung**  
Für Plattformversionen vor *Ruby 2.7 AL2 Version 3.3.7* unterstützt die standardmäßige Nginx-Proxy-Serverkonfiguration von Elastic Beanstalk die Bereitstellung statischer Dateien aus dem Domänenstamm () nicht. `subdomain.elasticbeanstalk.com/` Diese Plattformversion wurde am 21. Oktober 2021 veröffentlicht. Weitere Informationen finden Sie unter [Neue Plattformversionen - Ruby](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2021-10-21-linux.html#release-2021-10-21-linux.platforms.ruby) in den *AWS Elastic Beanstalk Versionshinweisen*.

### Umgebungseigenschaften
<a name="create_deploy_Ruby.env.console.ruby.envprops"></a>

Im Bereich **Environment Properties (Umgebungseigenschaften)** können Sie die Einstellungen für die Umgebungskonfiguration der Amazon-EC2-Instances angeben, auf denen die Anwendung ausgeführt wird. Umgebungseigenschaften werden als Schlüssel/Wert-Paare an die Anwendung weitergeleitet.

Die Ruby-Plattform definiert folgende Eigenschaften für die Umgebungskonfiguration:
+  **BUNDLE\$1WITHOUT** – Eine durch Doppelpunkt getrennte Liste mit Gruppen, die bei der [Installation von Abhängigkeiten](http://bundler.io/bundle_install.html) aus einer [Gemfile](http://bundler.io/v1.15/man/gemfile.5.html)-Datei ignoriert werden sollen.
+ **BUNDLER\$1DEPLOYMENT\$1MODE** – Auf `true` gesetzt (Standardeinstellung), um Abhängigkeiten im [Bereitstellungsmodus](https://bundler.io/man/bundle-install.1.html#DEPLOYMENT-MODE) mit Bundler zu installieren. Auf `false` gesetzt, um die `bundle install` im Entwicklungsmodus auszuführen.
**Anmerkung**  
Diese Umgebungseigenschaft ist in den Versionen der Amazon Linux AMI Ruby-Plattform (Vorgänger von Amazon Linux 2) nicht definiert.
+  **RAILS\$1SKIP\$1ASSET\$1COMPILATION** – Setzen Sie den Wert auf `true`, damit [http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets](http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets) während der Bereitstellung nicht ausgeführt wird.
+  **RAILS\$1SKIP\$1MIGRATIONS** – Setzen Sie den Wert auf `true`, damit [http://guides.rubyonrails.org/active_record_migrations.html#running-migrations](http://guides.rubyonrails.org/active_record_migrations.html#running-migrations) während der Bereitstellung nicht ausgeführt wird.
+  **RACK\$1ENV** – Geben Sie die Umgebungsphase für Rack an. Beispiel: `development`, `production` oder `test`.

Innerhalb der Ruby-Umgebung, die in Elastic Beanstalk ausgeführt wird, können Sie über das Objekt `ENV` auf Umgebungsvariablen zugreifen. Beispielsweise können Sie mit folgendem Code eine Eigenschaft mit dem Namen `API_ENDPOINT` als Variable lesen:

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

Weitere Informationen finden Sie unter [Umgebungsvariablen und andere Softwareeinstellungen](environments-cfg-softwaresettings.md).

## Namespaces der Ruby-Konfigurationen
<a name="ruby-namespaces"></a>

Mithilfe einer [Konfigurationsdatei](ebextensions.md) können Sie im Rahmen der Bereitstellung Konfigurationsoptionen festlegen und andere Instance-Konfigurationsaufgaben durchführen. Die Konfigurationsoptionen können [plattformspezifisch](command-options-specific.md) sein oder für [alle Plattformen](command-options-general.md) im Elastic Beanstalk-Service als Ganzes gelten. *Die Konfigurationsoptionen sind in Namespaces organisiert.*

Sie können mithilfe des Namespace `aws:elasticbeanstalk:environment:proxy:staticfiles` den Umgebungsproxy so konfigurieren, dass statische Dateien bereitgestellt werden. Sie definieren Zuordnungen von virtuellen Pfaden zu Anwendungsverzeichnissen.

Die Ruby-Plattform definiert keine plattformspezifischen Namespaces. Stattdessen werden Umgebungseigenschaften für häufig verwendete Rails- und Rack-Optionen definiert.

Die folgende Konfigurationsdatei gibt eine Option für statische Dateien an, mit der das Verzeichnis `staticimages` dem Pfad `/images` zuordnet wird und die einzelnen plattformdefinierten Umgebungseigenschaften und eine zusätzliche Umgebungseigenschaft mit dem Namen `LOGGING` festlegt werden.

**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
```

**Anmerkung**  
Die Umgebungseigenschaft `BUNDLER_DEPLOYMENT_MODE` und der Namespace `aws:elasticbeanstalk:environment:proxy:staticfiles` sind auf Amazon Linux AMI Ruby-Plattformvarianten (Vorgänger von Amazon Linux 2) nicht definiert.

Elastic Beanstalk bietet zahlreiche Konfigurationsoptionen für die Anpassung Ihrer Umgebung. Neben den Konfigurationsdateien können Sie die Konfigurationsoptionen auch unter Verwendung der Konsole, gespeicherter Konfigurationen, der EB CLI oder der AWS CLI einrichten. Weitere Informationen finden Sie unter [Konfigurationsoptionen](command-options.md).

# Pakete mit einem Gemfile auf Elastic Beanstalk installieren
<a name="ruby-platform-gemfile"></a>

Um Pakete RubyGems zu installieren, die Ihre Anwendung benötigt, fügen Sie eine `Gemfile` Datei in das Stammverzeichnis Ihrer Projektquelle ein.

**Example Gemfile**  

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

Wenn eine `Gemfile`-Datei vorhanden ist, führt Elastic Beanstalk `bundle install` aus, um Abhängigkeiten zu installieren. Weitere Informationen finden Sie auf den Seiten [Gemfiles](https://bundler.io/man/gemfile.5.html) und [Bundle](https://bundler.io/man/bundle.1.html) auf der Bundler.io-Website.

**Anmerkung**  
Sie können neben der Standardversion, die auf der Ruby-Plattform vorinstalliert ist, eine andere Version von Puma verwenden. Hierfür machen Sie eine Eingabe in den `Gemfile`, die die Version spezifiziert. Sie können auch einen anderen Anwendungsserver, z. B. Passenger, angeben, indem Sie einen `Gemfile` anpassen.  
Für beide Fälle müssen Sie einen `Procfile` konfigurieren, um den Anwendungsserver zu starten.  
Weitere Informationen finden Sie unter *[Configuring the application process with a Procfile](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ruby-platform-procfile.html)* (Konfigurieren der Anwendung mit einer Procfile-Datei)*.* 

# Konfiguration des Bewerbungsprozesses mit einem Profil auf Elastic Beanstalk.
<a name="ruby-platform-procfile"></a>

Um den Befehl anzugeben, mit dem Ihre Ruby-Anwendung gestartet wird, fügen Sie eine Datei namens `Procfile` in das Stammverzeichnis des Quell-Bundles ein.

**Anmerkung**  
Elastic Beanstalk unterstützt diese Funktion nicht auf Amazon Linux AMI-Ruby-Plattformvarianten (vor Amazon Linux 2). Plattformzweige mit Namen, die *mit Puma* oder *mit Passenger* enthalten, haben unabhängig von ihrer Ruby-Version Vorrang vor Amazon Linux 2 und unterstützen die Funktion `Procfile` nicht.

Einzelheiten zum Schreiben und Verwenden von a finden Sie `Procfile` unter. [Buildfile und Procfile](platforms-linux-extend.build-proc.md)

Wenn Sie keine angeben`Procfile`, generiert Elastic Beanstalk eine Standardeinstellung. `Procfile` Wenn Sie `Gemfile` Puma einbeziehen, geht Elastic Beanstalk davon aus, dass Sie Ihre bereitgestellte Version von Puma verwenden möchten, und generiert den folgenden Standard. `Procfile`

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

Wenn Sie Puma `Gemfile` nicht enthalten, geht Elastic Beanstalk davon aus, dass Sie den vorinstallierten Puma-Anwendungsserver verwenden, und generiert den folgenden Standard. `Procfile` Auf Amazon Linux 2 Ruby-Plattformbranches generiert Elastic Beanstalk immer den folgenden Standard, `Procfile` wenn Sie keinen angeben. `Procfile`

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

**Anmerkung**  
[Am 10. Oktober 2024](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2024-10-10-al2-10-2024-retire.html) wurden die letzten Zweige der Ruby Amazon Linux 2-Plattform eingestellt. Alle derzeit [unterstützten Ruby-Plattformzweige](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.ruby) basieren auf Amazon Linux 2023. Informationen zur Migration finden Sie unter[Migration von Amazon Linux 2 zu Amazon Linux 2023](using-features.migration-al.generic.from-al2.md).

Wenn Sie den Passenger-Anwendungsserver verwenden möchten, verwenden Sie die folgenden Beispieldateien, um Ihre Ruby-Umgebung für die Installation und Verwendung von Passenger zu konfigurieren.

1. Verwenden Sie diese Beispieldatei, um Passenger zu installieren.  
**Example Gemfile**  

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

1. Verwenden Sie diese Beispieldatei, um Elastic Beanstalk anzuweisen, Passenger zu starten.  
**Example Procfile**  

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

**Anmerkung**  
Sie müssen in der Konfiguration des nginx-Proxy-Servers nichts ändern, um Passenger verwenden zu können. Um andere Anwendungsserver verwenden zu können, müssen Sie möglicherweise die nginx-Konfiguration anpassen, um Anforderungen ordnungsgemäß an Ihre Anwendung weiterzuleiten.