Compilazione di funzioni Lambda con Ruby - AWS Lambda

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

Puoi eseguire il codice Ruby in AWS Lambda. Lambda fornisce Runtime per Ruby che eseguono il tuo codice per elaborare gli eventi. Il codice viene eseguito in un ambiente che include AWS SDK for Ruby, con le credenziali di un ruolo AWS Identity and Access Management (IAM) che gestisci. Per saperne di più sulle SDK versioni incluse nei runtime di Ruby, consulta. Versioni incluse in runtime SDK

Lambda supporta i seguenti runtime di Ruby.

Nome Identificatore Sistema operativo Data di ritiro Blocco creazione funzioni Blocco aggiornamento funzioni

Ruby 3.3

ruby3.3

Amazon Linux 2023

Non programmato

Non programmato

Non programmato

Ruby 3.2

ruby3.2

Amazon Linux 2

Non programmato

Non programmato

Non programmato

Per creare una funzione Ruby
  1. Aprire la console Lambda.

  2. Scegli Crea funzione.

  3. Configurare le impostazioni seguenti:

    • Nome della funzione: inserisci il nome della funzione.

    • Runtime: scegli Ruby 3.2.

  4. Scegli Crea funzione.

  5. Per configurare un evento di test scegliere Test.

  6. Per Event name (Nome evento) immettere test.

  7. Scegli Save changes (Salva modifiche).

  8. Per invocare la funzione, scegliere Test (Testa).

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. Per salvare le modifiche, scegliere Save (Salva). Quindi, per eseguire il codice, scegliere Test (Testa).

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 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 della funzione all'esterno della console (utilizzando unIDE), devi creare un pacchetto di distribuzione 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 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 durante la chiamata. Se la funzione restituisce un errore, Lambda formatta l'errore e lo restituisce al chiamante.

Versioni incluse in runtime SDK

La versione AWS SDK inclusa nel runtime di Ruby dipende dalla versione di runtime e dalla tua. Regione AWS Il AWS SDK for Ruby è progettato per essere modulare ed è separato da. Servizio AWS Per trovare il numero di versione di un particolare service gem incluso nel runtime che stai utilizzando, crea una funzione Lambda con codice nel seguente formato. Sostituisci aws-sdk-s3 e Aws::S3 con il nome dei service gem utilizzati 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

Abilitare Yet Another Ruby JIT () YJIT

Il runtime di Ruby 3.2 supporta un YJITcompilatore Ruby leggero e minimalista. JIT YJIToffre prestazioni significativamente più elevate, ma utilizza anche più memoria rispetto all'interprete Ruby. YJITè consigliato per i carichi di lavoro Ruby on Rails.

YJITnon è abilitato per impostazione predefinita. YJITPer abilitare una funzione Ruby 3.2, imposta la variabile di RUBY_YJIT_ENABLE ambiente su1. Per confermare che YJIT sia abilitata, stampa il risultato del RubyVM::YJIT.enabled? metodo.

Esempio — Conferma che YJIT sia abilitato
puts(RubyVM::YJIT.enabled?()) # => true