【Lambda】関数の作成手順を写真付きでわかりやすく解説

【Lambda】関数の作成手順を写真付きでわかりやすく解説

スポンサーリンク

記事内に広告が含まれています。
吹き出しのイメージ

AWSのLambdaって何?どうやって使うの?

Webアプリ開発を行う際には、フロントエンドとバックエンドの実装が必要になりますが、フロントエンドはReactやVue.jsなどを使用するとして、バックエンドは何を使って実装しますか?

Next.jsなどのフロントエンド開発をデプロイする簡単な方法については以下の記事で紹介しています。

一方バックエンドについては、別途でサーバーなどを用意しホスティングする必要がありますが、AWSにはLambdaというサーバーレス(サーバーが不要)でバックエンドを実装するサービスがあります。

今回はそんなLambdaについて紹介します。

ステップは以下の通りです。

  • Lambdaとは
  • 料金
  • 実装方法

最後までご覧いただき、参考にしていただけると幸いです。

スポンサーリンク

Lambdaとは

AWSのLambdaは、サーバーの管理が必要のないサーバーレスで、バックエンド機能を実装することができるサービスです。主にAPIとして使用します。

例えばReactを使用してプロダクトを開発するとします。基本的にReactはフロントエンドフレームワークなので、バックエンドはLaravelやDjangoなどのバックエンドフレームワークを使って実装します。

主にバックエンド処理として扱われる機能の例としては、メール送信機能やデータベース連携、ボット検証ツールの「Recaptcha」などが挙げられます。AWS Lambdaを使用することで、これらのバックエンド機能をサーバーレスで簡単に実装できます。

スポンサーリンク

料金

Lambdaの料金について詳しく知りたい場合は、公式マニュアルをご覧ください。

Lambdaはリクエスト数と、実行時間の超過によって料金が発生します。ですがリクエスト数は100万リクエストまで無料、実行時間も400000秒までは無料と、許容範囲が広く基本的に個人開発程度では料金は発生しないと思われます。

筆者も何度もLambdaを使用していますが、請求は来ていませんので安心して使うことができます。

スポンサーリンク

実装方法

それでは実際にLambdaを実装する手順について紹介します。

今回は例として、実装したAPIにリクエストを送信した際に、「ハローワールド」と返ってくる簡単なAPIを実装してみます。

ステップは以下の通りです。

  • 関数作成
  • 環境変数の設定
  • 実行時間の設定
  • テストしてみる
  • リクエストを送信

それぞれ解説します。

関数作成

まずはAWSコンソールのサービスから「Lambda」を選んで、ページへ移動してください。

サイドバーから「関数」ページへ移動し、「関数の作成」をクリックします。

関数の作成

様々な設定が表示されますが、とりあえずはこれから紹介する設定のみ変更すれば問題ありません。

関数オプション

まず、関数については「一から作成」を選択してください。今回は「一から作成」にしますが、Dockerなどを使って実装する方法もあります。

関数名

次に関数名を設定します。何でも問題ありません。

ランタイム

ランタイムについては「Node.js 20.x」を選択してください。「Python」なども使用できますが、今回は例として「Node.js」を使用します。

関数URL

次に「詳細設定」のタブから「関数URLを有効化」にチェックを入れてください。これを有効にすることで、Lambdaにリクエストを送るためのエンドポイントURLが用意されます。

認証タイプ

認証タイプは「None」にしてください。今回は権限などを設定せずに実装します。

CORS

「オリジン間リソース共有 (CORS) を設定」にチェックを入れてください。CORSを設定しないと、ブラウザからのリクエストがブロックされる可能性があります。

関数の作成

上記の設定が終われば完了です、そのまま「関数の作成」を選択してください。

設定のまとめ

オプション

一から作成

関数名

自由

ランタイム

Node.js 20.x

関数URLを有効化

チェック!

認証タイプ

None

オリジン間リソース共有 (CORS) を設定

チェック!

環境変数の設定

次に環境変数の設定を行ってみましょう。

設定タブから「環境変数」に移動します。

今回は例として「キー」として testValue、その値として「ハローワールド」を設定しました。

それではタブから「コード」を選択して、実行コードの「Hello from Lambda!」を環境変数から読み込んで「ハローワールド」に変更してみましょう。

環境変数

Node.jsでは環境変数を読み込む際に process.env.<key> と設定します。

以下のようにコードを編集してみてください。

export const handler = async (event) => {
  // TODO implement
  const response = {
    statusCode: 200,
    body: JSON.stringify(process.env.testValue),
  };
  return response;
};

これで環境変数が読み込まれ、「ハローワールド」が表示されるようになります。

実行時間の設定

次に実行時間を設定します。Lambdaの実行時間はデフォルトでは3秒に設定されています。

そのため、3秒を超えるとエラーが返ってきてしまいます。最大15分まで延長できるので変更してみましょう。

設定タブから「一般設定」を選択します。

編集ボタンをクリックし、タイムアウトを15分に延長してください。以下のように変更されれば完了です。

実行時間

テストしてみる

ここまで作成してきた、関数が正しく動作するかテストを行ってみましょう。

タブから「テスト」を移動して、「テスト」をクリックしてください。「実行中の関数: 成功」と返って来れば、正しく動作していることが確認できます。

テスト

リクエストを送信

それでは実際にリクエストを送信してみましょう。

まずは「関数URL」を確認してください。以下の場所に表示があります。

関数URL

そこにリクエストを送ります。コマンドプロンプトまたはターミナルを開き、以下のコマンドを実行してリクエストを送ってみてください。

# GET送信
curl -X GET https://<Lambda関数のURL>

# POST送信
curl -X POST https://<Lambda関数のURL>

「ハローワールド」と返ってくれば成功です!

スポンサーリンク

最後に

ここまでAWSのLambdaでAPIを実装する方法について紹介しました。

今回は「ハローワールド」と返ってくるだけの簡単なAPIですが、コードの書き換えと環境変数の活用を行うことで、メール送信などの様々な機能を実装することができます。

コストも安く、実装手順も理解すれば簡単なため、非常に優れたサービスであるといえます。

この記事をきっかけにLambdaの素晴らしさを知っていただけると幸いです。

ここまでお読みいただき、ありがとうございました。

スポンサーリンク

シェアする

フォローする

リアル大学生 - にほんブログ村人気ブログランキング

スポンサーリンク