

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.

# Lambda-Ereignisfunktionen mit Ruby erstellen
<a name="lambda-ruby"></a>

Sie können Ruby-Code in AWS Lambda Event Functions ausführen. Lambda bietet [Laufzeiten](lambda-runtimes.md) für Ruby, die Ihren Code ausführen, um Ereignisse zu verarbeiten. Ihr Code wird in einer Umgebung ausgeführt, die die Rolle AWS SDK für Ruby, with credentials from a AWS Identity and Access Management (IAM) enthält, die Sie verwalten. Weitere Informationen zu den SDK-Versionen, die in den Laufzeiten von Ruby enthalten sind, finden Sie unter [Runtime-included SDK-Versionen](#ruby-sdk-included).

Lambda unterstützt die folgenden Ruby-Laufzeiten.


| Name | ID | Betriebssystem | Datum der Veraltung | Blockfunktion erstellen | Blockfunktion aktualisieren | 
| --- | --- | --- | --- | --- | --- | 
| Ruby 4.0 | `ruby4.0` | Amazon Linux 2023 |  31. März 2029  |  30. April 2029  |  31. Mai 2029  | 
| Rubin 3.4 | `ruby3.4` | Amazon Linux 2023 |  31. März 2028  |  30. April 2028  |  31. Mai 2028  | 
| Ruby 3.3 | `ruby3.3` | Amazon Linux 2023 |  31. März 2027  |  29. Juli 2027  |  31. August 2027  | 

**Um eine Ruby-Event-Funktion zu erstellen**

1. Öffnen Sie die [Lambda-Konsole](https://console.aws.amazon.com/lambda).

1. Wählen Sie „**Event-Funktion erstellen**“.

1. Konfigurieren Sie die folgenden Einstellungen:
   + **Funktionsname**: Geben Sie einen Namen für die Funktion ein.
   + **Runtime**: Wählen Sie **Ruby 4.0**.

1. Wählen Sie „**Event-Funktion erstellen**“.

Die Konsole erstellt eine Lambda-Ereignisfunktion mit einer einzigen Quelldatei namens`lambda_function.rb`. Mit dem integrierten Code-Editor können Sie diese Datei bearbeiten und weitere Dateien hinzufügen. Wählen Sie im Abschnitt **BEREITSTELLEN** die Option **Bereitstellen** aus, um den Code Ihrer Funktion zu aktualisieren. Um Ihren Code auszuführen, wählen Sie anschließend im Abschnitt **TESTEREIGNISSE** die Option **Testereignis erstellen** aus.

Die `lambda_function.rb`-Datei exportiert eine Funktion mit dem Namen `lambda_handler`, die ein Ereignisobjekt und ein Kontext-Objekt übernimmt. Dies ist die [Handler-Funktion](ruby-handler.md), die bei einem Aufruf der Funktion von Lambda aufgerufen wird. Die Laufzeit der Ruby Event Function ruft Aufrufereignisse von Lambda ab und übergibt sie an den Handler. In der Konfiguration der Funktion lautet der Wert für den Handler `lambda_function.lambda_handler`.

Wenn Sie Ihren Funktionscode speichern, erstellt die Lambda-Konsole ein Bereitstellungspaket für das ZIP-Dateiarchiv. Wenn Sie Ihren Funktionscode außerhalb der Konsole (mit einer IDE) entwickeln, müssen Sie [ein Bereitstellungspaket erstellen](ruby-package.md), um Ihren Code in die Lambda-Funktion hochzuladen.

Die Funktionslaufzeit übergibt neben dem Aufrufereignis ein Context-Objekt an den Handler. Das [Context-Objekt](ruby-context.md) enthält zusätzliche Informationen zum Aufruf, zur Funktion und zur Ausführungsumgebung. Weitere Informationen erhalten Sie über die Umgebungsvariablen.

Ihre Lambda-Funktion wird mit einer CloudWatch Logs-Protokollgruppe geliefert. Die Funktionslaufzeit sendet Details zu jedem Aufruf an CloudWatch Logs. Es leitet alle [Protokolle weiter, die Ihre Funktion während des Aufrufs ausgibt](ruby-logging.md). Wenn Ihre Funktion einen Fehler zurückgibt, formatiert Lambda den Fehler und gibt ihn an den Aufrufer zurück.

**Topics**
+ [Runtime-included SDK-Versionen](#ruby-sdk-included)
+ [Aktivieren von Yet Another Ruby JIT (YJIT)](#ruby-yjit)
+ [Definieren Sie den Lambda-Ereignisfunktionshandler in Ruby](ruby-handler.md)
+ [Stellen Sie Ruby Lambda Event Functions mit.zip-Dateiarchiven bereit](ruby-package.md)
+ [Stellen Sie Ruby Lambda Event Functions mit Container-Images bereit](ruby-image.md)
+ [Arbeiten mit Ebenen für Ruby Lambda Event Functions](ruby-layers.md)
+ [Verwenden des Lambda-Kontextobjekts zum Abrufen von Informationen zur Ruby-Ereignisfunktion](ruby-context.md)
+ [Ruby Lambda Event Functions protokollieren und überwachen](ruby-logging.md)
+ [Instrumentierung von Ruby-Code in AWS Lambda](ruby-tracing.md)

## Runtime-included SDK-Versionen
<a name="ruby-sdk-included"></a>

Die Version des AWS SDK, die in der Ruby-Laufzeit enthalten ist, hängt von der Runtime-Version und Ihrer ab AWS-Region. Das AWS SDK for Ruby ist modular konzipiert und wird durch getrennt AWS-Service. Um die Versionsnummer eines bestimmten Service-Gems zu ermitteln, das in der von Ihnen verwendeten Runtime enthalten ist, erstellen Sie eine Lambda-Ereignisfunktion mit Code im folgenden Format. Ersetzen Sie `aws-sdk-s3` und `Aws::S3` durch den Namen der Service-Gems, die Ihr Code verwendet.

```
require 'aws-sdk-s3'

def lambda_handler(event:, context:)
  puts "Service gem version: #{Aws::S3::GEM_VERSION}"
  puts "Core version: #{Aws::CORE_GEM_VERSION}"
end
```

## Aktivieren von Yet Another Ruby JIT (YJIT)
<a name="ruby-yjit"></a>

Die Ruby-Runtimes unterstützen [YJIT](https://docs.ruby-lang.org/en/master/jit/yjit_md.html), einen leichten, minimalistischen Ruby-JIT-Compiler. YJIT bietet eine deutlich höhere Leistung, benötigt aber auch mehr Speicher als der Ruby-Interpreter. YJIT wird für Ruby-on-Rails-Workloads empfohlen.

YJIT ist standardmäßig nicht aktiviert. Um YJIT für eine Ruby-Funktion zu aktivieren, setzen Sie die Umgebungsvariable auf. `RUBY_YJIT_ENABLE` `1` Um sicherzustellen, dass YJIT aktiviert ist, drucken Sie das Ergebnis der `RubyVM::YJIT.enabled?`-Methode aus.

**Example – Sicherstellen, dass YJIT aktiviert ist**  

```
puts(RubyVM::YJIT.enabled?())
# => true
```