

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

# Compilazione di funzioni Lambda con Ruby
<a name="lambda-ruby"></a>

Puoi eseguire il codice Ruby in AWS Lambda. Lambda fornisce [Runtime](lambda-runtimes.md) per Ruby che eseguono il tuo codice per elaborare gli eventi. Il codice viene eseguito in un ambiente che include AWS SDK per Ruby, con le credenziali di un ruolo AWS Identity and Access Management (IAM) che gestisci. Per saperne di più sulle versioni degli SDK incluse nei runtime di Ruby, consulta [Versioni SDK incluse nel runtime](#ruby-sdk-included).

Lambda supporta i seguenti runtime di Ruby.


| Name | Identificatore | Sistema operativo | Data di ritiro | Blocco creazione funzioni | Blocco aggiornamento funzioni | 
| --- | --- | --- | --- | --- | --- | 
|  Ruby 3.4  |  `ruby3.4`  |  Amazon Linux 2023  |   31 marzo 2028   |   30 aprile 2028   |   31 maggio 2028   | 
|  Ruby 3.3  |  `ruby3.3`  |  Amazon Linux 2023  |   31 marzo 2027   |   30 aprile 2027   |   31 maggio 2027   | 
|  Ruby 3.2  |  `ruby3.2`  |  Amazon Linux 2  |   31 marzo 2026   |   31 agosto 2026   |   30 settembre 2026   | 

**Per creare una funzione Ruby**

1. Aprire la [console Lambda](https://console.aws.amazon.com/lambda).

1. Scegli **Crea funzione**.

1. Configura le impostazioni seguenti:
   + **Nome della funzione**: inserisci il nome della funzione.
   + **Runtime**: scegli **Ruby 3.4**.

1. Scegli **Crea funzione**.

La console crea una funzione Lambda con un singolo file di origine denominato `lambda_function.rb`. È possibile modificare questo file e aggiungere altri file nell'editor di codice predefinito. Nella sezione **DEPLOY**, scegli **Implementa** per aggiornare il codice della tua funzione. Quindi, per eseguire il codice, scegli **Crea evento di test** nella sezione **EVENTI DI TEST**.

Il file `lambda_function.rb` esporta una funzione denominata `lambda_handler` che richiede un oggetto evento e un oggetto contesto. Questa è la [funzione del gestore](ruby-handler.md) chiamata da Lambda quando la funzione viene richiamata. Il runtime della funzione Ruby riceve gli eventi di chiamata da Lambda e li passa al gestore. Nella configurazione della funzione il valore del gestore è `lambda_function.lambda_handler`.

Quando si salva il codice funzione, la console Lambda crea un pacchetto di implementazione dell'archivio di file .zip. Quando sviluppi il codice funzione al di fuori della console (utilizzando un IDE) devi [creare un pacchetto di implementazione](ruby-package.md) per caricare il codice nella funzione Lambda.

Il runtime della funzione passa un oggetto contesto al gestore, oltre all'evento di chiamata. L'[oggetto contesto](ruby-context.md) contiene ulteriori informazioni sulla chiamata, sulla funzione e sull'ambiente di esecuzione. Altre informazioni sono disponibili con le variabili di ambiente.

La funzione Lambda include un gruppo di CloudWatch log Logs. Il runtime della funzione invia i dettagli su ogni chiamata a Logs. CloudWatch Si trasmette qualsiasi [log che la tua funzione emette](ruby-logging.md) durante la chiamata. Se la funzione restituisce un errore, Lambda formatta l'errore e lo restituisce al chiamante.

**Topics**
+ [Versioni SDK incluse nel runtime](#ruby-sdk-included)
+ [Abilitazione di Yet Another Ruby JIT (YJIT)](#ruby-yjit)
+ [Definire l'handler di funzioni Lambda in Ruby](ruby-handler.md)
+ [Distribuire le funzioni Ruby Lambda con gli archivi di file .zip](ruby-package.md)
+ [Distribuisci funzioni Lambda per Ruby con immagini di container](ruby-image.md)
+ [Utilizzo dei livelli per le funzioni Lamba di Ruby](ruby-layers.md)
+ [Utilizzo dell'oggetto del contesto Lambda per recuperare le informazioni sulla funzione Ruby](ruby-context.md)
+ [Registrare e monitorare le funzioni Lambda con Ruby](ruby-logging.md)
+ [Strumentazione del codice Ruby in AWS Lambda](ruby-tracing.md)

## Versioni SDK incluse nel runtime
<a name="ruby-sdk-included"></a>

La versione dell' AWS SDK inclusa nel runtime di Ruby dipende dalla versione di runtime e dalla tua. Regione AWS L' AWS SDK for Ruby è progettato per essere modulare ed è separato da. Servizio AWS Per trovare la versione di una determinata gemma di servizio inclusa nel runtime che stai utilizzando, crea una funzione Lambda con il codice nel seguente formato. Sostituisci `aws-sdk-s3` e `Aws::S3` con il nome delle gemme di servizio utilizzate dal tuo codice.

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

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

I runtime Ruby supportano [YJIT, un compilatore Ruby JIT](https://docs.ruby-lang.org/en/master/jit/yjit_md.html) leggero e minimalista. YJIT offre prestazioni significativamente più elevate, ma utilizza anche più memoria rispetto all'interprete Ruby. YJIT è consigliato per i carichi di lavoro Ruby on Rails.

YJIT non è abilitato per impostazione predefinita. Per abilitare YJIT per una funzione Ruby, imposta la variabile di ambiente su. `RUBY_YJIT_ENABLE` `1` Per verificare che YJIT sia abilitato, stampa il risultato del metodo `RubyVM::YJIT.enabled?`.

**Example - Conferma che YJIT è abilitato**  

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