Ruby による Lambda 関数の構築
Ruby コードは AWS Lambda で実行できます。Lambda は、コードを実行してイベントを処理する Ruby 用のランタイムを提供します。コードは、管理している AWS Identity and Access Management (IAM) ロールの認証情報を使用して、AWS SDK for Ruby を含む環境で実行されます。
Lambda は以下の Ruby ランタイムをサポートします。
Ruby | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
名前 | 識別子 | SDK | オペレーティングシステム | アーキテクチャ | 非推奨化 (フェーズ 1) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ruby 3.2 |
|
3.1.0 |
Amazon Linux 2 |
x86_64、arm64 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ruby 2.7 |
|
3.1.0 |
Amazon Linux 2 |
x86_64、arm64 |
2023 年 12 月 7 日 |
Ruby 関数を作成するには
-
Lambda コンソール
を開きます。 -
[機能の作成]を選択します。
-
以下の設定を行います。
-
[Function name]: 関数名を入力します。
-
[ランタイム]:[Ruby 3.2] を選択します。
-
-
[機能の作成]を選択します。
-
テストイベントを設定するには、[テスト] を選択します。
-
[イベント名] で、「
test
」と入力します。 -
[Save changes] (変更の保存) をクリックします。
-
[テスト] を選択して関数を呼び出します。
コンソールで、lambda_function.rb
という名前の単一のソースファイルを含む Lambda 関数が作成されます。このファイルを編集し、組み込みのコードエディタでファイルをさらに追加することができます。変更を保存するには [保存] を選択します。コードを実行するには、[Test] (テスト) を選択します。
注記
Lambda コンソールでは、AWS Cloud9 を使用して、ブラウザに統合開発環境を提供します。また、AWS Cloud9 を使用して、独自の環境で Lambda 関数を開発することもできます。詳細については、AWS Cloud9 ユーザーガイドの「AWS Toolkit を使用した AWS Lambda 関数の使用」を参照してください。
lambda_function.rb
ファイルは、イベントオブジェクトおよびコンテキストオブジェクトを取得する lambda_handler
という名前の関数をエクスポートします。これは、関数が呼び出されるときに Lambda が呼び出すハンドラー関数です。Ruby 関数のランタイムは、Lambda から呼び出しイベントを取得し、ハンドラーに渡します。関数設定で、ハンドラ値は lambda_function.lambda_handler
です。
関数コードを保存すると、Lambda コンソールは .zip ファイルアーカイブのデプロイパッケージを作成します。コンソール外で (SDE を使用して) 関数コードを開発するときは、デプロイパッケージを作成して、Lambda 関数にコードをアップロードします。
注記
ローカル環境でアプリケーション開発を開始するには、このガイドの GitHub リポジトリで利用可能なサンプルアプリケーションの 1 つをデプロイします。
Ruby のサンプル Lambda アプリケーション
-
blank-ruby
- ログ記録、環境変数、AWS X-Ray トレース、レイヤー、単位テスト、AWS SDK の使用を示す Ruby 関数。 AWS Lambda の Ruby コードサンプル – AWS Lambda との対話方法を示す、Ruby で記述されたコードサンプル。
関数のランタイムによって、呼び出しイベントに加えて、コンテキストオブジェクトがハンドラに渡されます。コンテキストオブジェクトには、呼び出し、関数、および実行環境に関する追加情報が含まれます。詳細情報は、環境変数から入手できます。
Lambda 関数には CloudWatch Logs ロググループが付属しています。関数のランタイムは、各呼び出しに関する詳細を CloudWatch Logs に送信します。これは呼び出し時に、任意の関数が出力するログを中継します。関数がエラーを返す場合、Lambda はエラー形式を整え、それを呼び出し元に返します。
もうひとつの Ruby JIT (YJIT) を有効にする
Ruby 3.2 ランタイムは、軽量でミニマルな Ruby JIT コンパイラである YJIT
YJIT は、デフォルトでは有効になっていません。Ruby 3.2 関数で YJIT を有効にするには、RUBY_YJIT_ENABLE
環境変数を 1
に設定します。YJIT が有効であることを確認するには、RubyVM::YJIT.enabled?
メソッドの結果を出力します。
例 — YJIT が有効になっていることの確認
puts(RubyVM::YJIT.enabled?()) # => true