はじめに
AWS Lambdaとは、Amazon Web Services (AWS) のサービスの一つで、サーバレスなコンピューティング環境を提供するものです。 AWS Lambdaでは、さまざまな言語で関数を作成し、イベントやトリガーに応じて実行することができます。
AWS Lambdaでは標準でサポートされている言語以外でもカスタムランタイムを使用すれば任意の言語で関数を実行することが可能です。 この記事では、カスタムランタイムを使ってAWS Lambda上でRustの関数を動かす方法について解説します。
依存関係
openssl
opensslを入れないとエラーが出るので入れてください。 Cargo.tomlというプロジェクト設定ファイル内に以下のように記述してください。
[dependencies] openssl = "*"lambda_runtime
lambda_runtimeはRust用のカスタムランタイムライブラリです。 このライブラリはAWS Lambdaから送られるイベントやレスポンスデータなどを処理してくれたり、bootstrap.zipというLambda用のアーカイブファイルを自動的に生成してくれたりします。
lambda_runtimeはCargoというRust用のパッケージ管理ツールで簡単に導入できます。 Cargo.tomlというプロジェクト設定ファイル内に以下のように記述してください。
[dependencies] lambda_runtime = "*"実装方法
コード例
use lambda_runtime::{service_fn, LambdaEvent, Error}; #[tokio::main] async fn main() -> Result<(), Error> { let func = service_fn(func); lambda_runtime::run(func).await?; Ok(()) } async fn func(_: LambdaEvent<value>) -> Result<value, error=""> { somefunc(); Ok(().into())</value,></value> }
ビルドする
ビルドする方法は以下の通りです。 これを実行すると、target/lambda/xxx/bootstrap.zipファイルが生成されます。
cargo lambda build –release –output-format zip
AWS Lambdaに乗せる
AWS Lambda上でRustの関数を実行するためには、カスタムランタイム環境を設定する必要があります。 その手順は以下の通りです。
- AWSコンソールからLambdaサービスページへ移動します。
- 「関数」タブから「関数の作成」ボタンをクリックします。
- 「一から作成」オプションを選択し、「基本情報」欄に任意の関数名やロールなどを入力します。
- 「ランタイム」欄で「カスタムランタイムを提供する」オプションを選択します。
- 「関数の作成」ボタンをクリックします。
- 作成した関数ページで「コード」タブから「.zipファイルをアップロードする」オプションを選択し、先ほどビルドしたbootstrap.zipファイルをアップロードします。
- 「基本設定」欄でメモリやタイムアウトなどの設定を調整します。
コメントを残す