現在ブリッジSEのyoshyです。今回は、プロジェクトでお世話になっているLawrence Beloさんの英語記事を翻訳させていただき、AWS Lambdaの構築方法をマネジメントコンソールを用いて説明していきます。
導入
私がソフトウェア開発者として働き始めたとき、気にしていたのは書いたコードが実行されるのを見ることだけでした。キャリアが進むにつれて、アプリケーション開発は単にコードを書くだけではないことに気づきました。コードが実行されるプラットフォーム、アプリケーションに必要なリソース、ワークロードが増加したときにアプリケーションがどのようにスケールされるかなど、アプリケーションの基盤となるインフラストラクチャについても考慮する必要がありました。
また、AWS (Amazon Web Services) や GCP (Google Cloud Platform) などのクラウド サービスの人気が高まるにつれて、考慮すべきことがさらに増えています。そのため、初めて AWS Lambda について聞いたとき、最初は「学ぶべき AWS サービスがまた一つ増えた」と感じただけでした。しかし、時間をかけて AWS Lambda について学習した後、これがどれほど素晴らしいサービスであるかを知りました。これにより、アプリ開発の基盤となるインフラストラクチャへの考慮が減り、開発者が最も関心のあること、つまりコードの作成に集中できるようになります。
AWS Lambda を他の AWS サービスと一緒に使用する場合は、構築のハードルが上がりますが、AWS Lambda 自体は非常に簡単です。 AWS Lambda を理解するには、関数、マイクロサービス、サーバーレスコンピューティングの概念を理解することから始まります。
機能
関数は、単に 1 つのことを実行するコードのブロックです。関数は通常、関数パラメーターから入力を受け取り、入力に基づいて出力を返します。 AWS Lambda コードは、トリガーとなるイベントに基づいて特定の入力パラメータをセットし、呼び出される関数です。
マイクロサービス
従来のモノリシックアーキテクチャでは、すべてのアプリケーションサービスが 1 つのアプリケーション内に含まれています。コードはモジュール形式で編成されている場合でも、すべてが単一のアプリケーションで実行されます。マイクロサービスアーキテクチャでは、モノリシックアーキテクチャをマイクロサービスに分割できます。各マイクロサービスはアプリケーションのサービスの 1 つであり、単独で動作することも、他のマイクロサービスと連携して動作することもできます。
サーバーレスコンピューティング
すべての Web アプリケーションには、サーバーレスアプリケーションを含め、それをホストするサーバーが必要です。サーバーレス アプリケーションはサーバー上で実行されますが、ハードウェアリソースはプロバイダーによってオンデマンドで割り当てられます。 AWS Lambda の場合、AWS が基盤となるインフラストラクチャを処理するため、考えなければならないのはコードだけです。
LAMBDA 関数を理解する
まず、Lambda コードのセットアップを理解する必要があります。 Lambda コードは、イベントに応答して呼び出される単なる関数であり、イベントは他の AWS サービスによってトリガーされます。 API ゲートウェイからの呼び出し、S3 にアップロードされたファイル、またはエラー通知などが挙げられます。
AWS LAMBDA を使用して関数を作成する方法
- AWS アカウントにログインします。
- AWS Lambda コンソールに移動します。

- 関数を作成します。
- Lambda コンソールで、ページの右上にある [関数の作成]ボタンをクリックします。

- Lambda コンソールで、ページの右上にある [関数の作成]ボタンをクリックします。
- 機能オプションを選択します。
- [関数名]には、関数を識別するための任意の名前を設定できます。
- ランタイムでは、最も使いやすい言語を選択できます。
- 残りのオプションはデフォルトのままにすることができます。
- ページの下部にある 「関数の作成」をクリックします。

- コードを編集してデプロイします。
- 関数ページには、関数の視覚的な概要と、コードを記述できる領域が表示されます。デフォルトでは、コード領域にサンプルコードが表示されます。関数には「event」パラメータが渡されることに注意してください。これは、後でコードをテストするときに使用されます。コードに変更を加えた場合は、「デプロイ」ボタンをクリックすることを忘れないでください。

- 関数ページには、関数の視覚的な概要と、コードを記述できる領域が表示されます。デフォルトでは、コード領域にサンプルコードが表示されます。関数には「event」パラメータが渡されることに注意してください。これは、後でコードをテストするときに使用されます。コードに変更を加えた場合は、「デプロイ」ボタンをクリックすることを忘れないでください。
- コードのテスト イベントをセットアップします。
- コード領域の上にある「テスト」ボタンをクリックします。ここではイベントを作成する必要があります。[テスト イベントの構成]ダイアログに JSON 値が表示され、これは関数にパラメーターとして渡される「 event 」値です。
- イベントを識別するためにイベント名を設定します。
- 「作成」ボタンをクリックします。

- コードをテストします。
- [テスト]ボタンを再度クリックして、実行します。関数の結果は、コードセクションの 「実行結果」タブに表示されます。

- [テスト]ボタンを再度クリックして、実行します。関数の結果は、コードセクションの 「実行結果」タブに表示されます。
関数を作成したら、次に知っておく必要があるのは、特定のイベントに応答するように関数を設定する方法です。
LAMBDA 関数のトリガーイベントを設定する方法
- 関数ページに戻ります。

- 機能概要セクションの「トリガーの追加」ボタンをクリックします。これにより、AWS サービスおよびその他のいくつかのサードパーティ サービスのリストからトリガー設定を選択するよう求められます。

- トリガーイベントを選択します。選択したトリガーによっては、トリガーを追加する前にいくつかの設定を行う必要がある場合があります。

- 「追加」ボタンをクリックします。トリガーが関数の概要に表示されるようになります。それが関数を呼び出すイベントになります。
最後に、関数とトリガー イベントを設定した後、データを処理してそれに応じて動作するために、イベントからどのようなデータが期待されるかを知る必要があります。
Lambda 関数は、event、context、callback の3 つのパラメータを受け入れます。コールバックパラメーターは、関数に「async」キーワードを使用していない場合にのみ使用されます。eventパラメーターには、トリガーイベントに基づく JSON 値が含まれます。各イベントからどのようなデータが渡されるか知るには、テストイベントを構成し、追加したトリガーイベントと一致するイベントテンプレートを選択します。サンプル JSON が表示され、関数の「 event 」パラメーターで受け取ると、期待されるデータの形式が示されます。
contextパラメータには、AWS リクエスト ID、関数に割り当てられたメモリ、ID 情報など、Lambda 関数の特定の呼び出しに関する情報が含まれています。
コールバックパラメーターは、エラーメッセージと JSON 応答オブジェクトの 2 つのパラメーターを受け取る関数オブジェクトです。
この記事で、AWS Lambda はそれほど難しくないということを感じていただければ幸いです。今回は、関数の作成、トリガーの設定、Lambda 関数パラメーターの理解を通じて Lambda を構築する方法について説明しました。 これにより、私たちが本当に集中する必要があるのは単にコードを書くという好きなことを行うことだけです。
AWS Lambda の詳細については、ここで公式ドキュメントを読むことができます。



