

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membangun fungsi Lambda dengan Ruby
<a name="lambda-ruby"></a>

Anda dapat menjalankan kode Ruby di AWS Lambda. Lambda menyediakan [runtime](lambda-runtimes.md) untuk Ruby yang menjalankan kode Anda untuk memproses peristiwa. Kode Anda berjalan di lingkungan yang menyertakan AWS SDK untuk Ruby, dengan kredensi dari peran AWS Identity and Access Management (IAM) yang Anda kelola. Untuk mempelajari lebih lanjut tentang versi SDK yang disertakan dengan runtime Ruby, lihat. [Versi SDK yang disertakan Runtime](#ruby-sdk-included)

Lambda mendukung runtime Ruby berikut.


| Nama | Pengidentifikasi | Sistem operasi | Tanggal pengusangan | Buat fungsi blok | Pembaruan fungsi blok | 
| --- | --- | --- | --- | --- | --- | 
| Ruby 3.4 | `ruby3.4` | Amazon Linux 2023 |  31 Mar 2028  |  30 Apr 2028  |  31 Mei 2028  | 
| Ruby 3.3 | `ruby3.3` | Amazon Linux 2023 |  31 Mar 2027  |  30 Apr 2027  |  31 Mei 2027  | 
| Ruby 3.2 | `ruby3.2` | Amazon Linux 2 |  31 Mar 2026  |  Agustus 31, 2026  |  Sep 30, 2026  | 

**Untuk membuat fungsi Ruby**

1. Buka [Konsol Lambda](https://console.aws.amazon.com/lambda).

1. Pilih **Buat fungsi**.

1. Konfigurasikan pengaturan berikut:
   + **Nama fungsi**: Masukkan nama untuk fungsi tersebut.
   + **Runtime**: Pilih **Ruby 3.4**.

1. Pilih **Buat fungsi**.

Konsol membuat fungsi Lambda dengan satu file sumber bernama `lambda_function.rb`. Anda dapat mengedit file ini dan menambahkan lebih banyak file di editor kode bawaan. Di bagian **DEPLOY**, pilih **Deploy** untuk memperbarui kode fungsi Anda. Kemudian, untuk menjalankan kode Anda, pilih **Create test event** di bagian **TEST EVENTS**.

File `lambda_function.rb` mengekspor fungsi bernama `lambda_handler` yang menerima objek peristiwa dan objek konteks. Ini adalah [fungsi handler](ruby-handler.md) yang dipanggil Lambda saat fungsi tersebut dipanggil. Fungsi waktu habis Ruby mendapatkan peristiwa invokasi dari Lambda dan meneruskannya ke handler. Dalam konfigurasi fungsi, nilai handler adalah `lambda_function.lambda_handler`.

Saat Anda menyimpan kode fungsi, konsol Lambda membuat paket penyebaran arsip file.zip. Saat Anda mengembangkan kode fungsi di luar konsol (menggunakan IDE), Anda perlu [membuat paket penerapan](ruby-package.md) untuk mengunggah kode Anda ke fungsi Lambda.

Runtime fungsi meneruskan objek konteks ke handler, selain peristiwa invokasi. [Objek konteks](ruby-context.md) berisi informasi tambahan tentang lingkungan invokasi, fungsi, dan eksekusi. Informasi selengkapnya tersedia dari variabel lingkungan.

Fungsi Lambda Anda dilengkapi dengan grup CloudWatch log Log. Runtime fungsi mengirimkan detail tentang setiap invokasi ke CloudWatch Logs. Detail tersebut menyampaikan [log yang dihasilkan fungsi Anda](ruby-logging.md) selama invokasi. Jika fungsi mengembalikan kesalahan, Lambda memformat kesalahan dan mengembalikannya ke pemanggil.

**Topics**
+ [Versi SDK yang disertakan Runtime](#ruby-sdk-included)
+ [Mengaktifkan Ruby JIT (YJIT) Lainnya](#ruby-yjit)
+ [Tentukan penangan fungsi Lambda di Ruby](ruby-handler.md)
+ [Deploy fungsi Lambda Ruby dengan arsip file .zip](ruby-package.md)
+ [Deploy fungsi Ruby Lambda dengan gambar kontainer](ruby-image.md)
+ [Bekerja dengan lapisan untuk fungsi Ruby Lambda](ruby-layers.md)
+ [Menggunakan objek konteks Lambda untuk mengambil informasi fungsi Ruby](ruby-context.md)
+ [Log dan pantau fungsi Ruby Lambda](ruby-logging.md)
+ [Menginstrumentasi kode Ruby di AWS Lambda](ruby-tracing.md)

## Versi SDK yang disertakan Runtime
<a name="ruby-sdk-included"></a>

Versi AWS SDK yang disertakan dalam runtime Ruby bergantung pada versi runtime dan versi Anda. Wilayah AWS AWS SDK for Ruby dirancang untuk modular dan dipisahkan oleh. Layanan AWS Untuk menemukan nomor versi permata layanan tertentu yang disertakan dalam runtime yang Anda gunakan, buat fungsi Lambda dengan kode dalam format berikut. Ganti `aws-sdk-s3` dan `Aws::S3` dengan nama permata layanan yang digunakan kode Anda.

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

## Mengaktifkan Ruby JIT (YJIT) Lainnya
<a name="ruby-yjit"></a>

Runtime Ruby mendukung [YJIT, kompiler Ruby JIT](https://docs.ruby-lang.org/en/master/jit/yjit_md.html) yang ringan dan minimalis. YJIT memberikan kinerja yang jauh lebih tinggi, tetapi juga menggunakan lebih banyak memori daripada penerjemah Ruby. YJIT direkomendasikan untuk beban kerja Ruby on Rails.

YJIT tidak diaktifkan secara default. Untuk mengaktifkan YJIT untuk fungsi Ruby, atur variabel `RUBY_YJIT_ENABLE` lingkungan ke. `1` Untuk mengonfirmasi bahwa YJIT diaktifkan, cetak hasil metode. `RubyVM::YJIT.enabled?`

**Example — Konfirmasikan bahwa YJIT diaktifkan**  

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