AWS の開始方法
基本的なウェブアプリケーションを構築する
ウェブアプリケーションをデプロイし、API やデータベースとの対話性を追加する
モジュール 2: サーバーレス関数を構築する
このモジュールでは、AWS Lambda を使用してサーバーレス関数を構築します。
はじめに
このモジュールでは、Python、JavaScript、または Java で小さなコードを記述します。これは、後のモジュールで対話性をウェブページに追加するために使用します。ここでは AWS Lambda サービスを使用します。これは、サーバーレス関数の作成を可能にするコンピューティングサービスです。(「サーバーレス関数」により、開発者はソフトウェアとハードウェアの管理が不要になります。代わりに、アプリケーションは個別に起動およびスケーリングできる個別の関数に分割されます)。
このようなサーバーレス関数は、コードで定義する特定のイベントに基づいてトリガーされます。また、アイドル時間ではなく、処理したイベントの数に対してのみ料金が発生するため、非常に手頃なサービスです。何よりも、サーバーの管理について心配する必要がありません。
学習内容
- (Python、JavaScript、または Java で) AWS コンソールを使用して Lambda 関数を一から作成する
- AWS コンソールで (JSON) イベントを作成して関数をテストする
主要な概念
コンピューティングサービス コンピューティング処理能力を提供するサービス。
サーバーレス関数 コンピューティングサービスによってオンデマンドで実行されるコード。
Lambda トリガー Lambda (サーバーレス) 関数を実行するイベントのタイプ。これは、別の AWS のサービスまたは外部入力であるかもしれません。
所要時間
5 分
使用するサービス
実装
-
Lambda 関数を作成して設定する
-
Python
-
JavaScript
-
Java
-
Python
-
- 新しいブラウザタブで、AWS Lambda コンソールにログインします。
- 必ず、関数を作成しているリージョンをメモしてください。これは、ページの最上部、アカウント名の横にあります。
- オレンジの [関数の作成] ボタンをクリックします。
- [関数名] で、「HelloWorldFunction」と入力します。
- [ランタイム] ドロップダウンから [Python 3.8] を選択します。
6.オレンジの [関数の作成] ボタンをクリックします。
7.画面上部に緑色のボックスが表示され、「関数が正常に作成されました」というメッセージが表示されます。
8.[関数コード] の下のコードを次のコードに置き換えます。
# import the JSON utility package since we will be working with a JSON object import json # define the handler function that the Lambda service will use an entry point def lambda_handler(event, context): # extract values from the event object we got from the Lambda service name = event['firstName'] +' '+ event['lastName'] # return a properly formatted JSON object return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda, ' + name) }
9.画面上部にあるオレンジの [保存] ボタンをクリックします。
10.新しい関数をテストしてみましょう。画面上部にある [テストイベントを選択] をクリックします。
11.ドロップダウンメニューから、[テストイベントの設定] をクリックします。
12.「イベント名」で、「HelloWorldTestEvent」と入力します。
13.次の JSON オブジェクトをコピーして貼り付け、デフォルトの JSON オブジェクトを置き換えます。
{ "firstName": "Ada", "lastName": "Lovelace" }
14.ページの下部にあるオレンジの [作成] ボタンをクリックします。
-
JavaScript
-
- 新しいブラウザタブで、AWS Lambda コンソールにログインします。
- 必ず、関数を作成しているリージョンをメモしてください。これは、ページの最上部、アカウント名の横にあります。
- オレンジの [関数の作成] ボタンをクリックします。
- [関数名] で、「HelloWorldFunction」と入力します。
- [ランタイム] ドロップダウンから [Node.js 12.x] を選択します。
6.オレンジの [関数の作成] ボタンをクリックします。
7.画面上部に緑色のボックスが表示され、「関数が正常に作成されました」というメッセージが表示されます。
8.[関数コード] の下のコードを次のコードに置き換えます。
// Define handler function, the entry point to our code for the Lambda service // We receive the object that triggers the function as a parameter exports.handler = async (event) => { // Extract values from event and format as strings let name = JSON.stringify(`Hello from Lambda, ${event.firstName} ${event.lastName}`); // Create a JSON object with our response and store it in a constant const response = { statusCode: 200, body: name }; // Return the response constant return response; };
9.画面上部にあるオレンジの [保存] ボタンをクリックします。
10.新しい関数をテストしてみましょう。画面上部にある [テストイベントを選択] をクリックします。
11.ドロップダウンメニューから、[テストイベントの設定] をクリックします。
12.「イベント名」で、「HelloWorldTestEvent」と入力します。
13.次の JSON オブジェクトをコピーして貼り付け、デフォルトの JSON オブジェクトを置き換えます。
{ "firstName": "Ada", "lastName": "Lovelace" }
14.ページの下部にあるオレンジの [作成] ボタンをクリックします。
-
Java
-
- 新しいブラウザタブで、AWS Lambda コンソールにログインします。
- 必ず、関数を作成しているリージョンをメモしてください。これは、ページの最上部、アカウント名の横にあります。
- オレンジの [関数の作成] ボタンをクリックします。
- [関数名] で、「HelloWorldFunction」と入力します。
- [ランタイム] ドロップダウンから [Java 11] を選択します。
6.オレンジの [関数の作成] ボタンをクリックします。
7.画面上部に緑色のボックスが表示され、「関数が正常に作成されました」というメッセージが表示されます。
8.これで、Hello という名前のハンドラークラスを持つ Lambda 関数が作成されました。Java はコンパイルされた言語であるため、Lambda コンソールでソースコードを表示または編集することはできませんが、その設定を変更して呼び出し、トリガーを設定することはできます。
9.関数のコードを更新するには、関数のコードを含む JAR ファイルまたは ZIP アーカイブのいずれかであるデプロイパッケージを作成する必要があります。このチュートリアルでは、こちらで使用するため、更新済みの関数コードを含む JAR ファイルを提供しました。
10.「関数コード」に移動し、JAR ファイルをアップロードします。
11.「ハンドラー」を com.example.app.LambdaRequestHandler::handleRequest に更新します。
12.画面上部にあるオレンジの [保存] ボタンをクリックします。
13.新しい関数をテストしてみましょう。画面上部にある [テストイベントを選択] をクリックします。
14.ドロップダウンメニューから、[テストイベントの設定] をクリックします。
15.「イベント名」で、「HelloWorldTestEvent」と入力します。
16.次の JSON オブジェクトをコピーして貼り付け、デフォルトの JSON オブジェクトを置き換えます。
{ "firstName": "Ada", "lastName": "Lovelace" }
17.ページの下部にあるオレンジの [作成] ボタンをクリックします。
-
-
Lambda 関数をテストする
- ページの上部にあるグレーの [テスト] ボタンをクリックします。
- ページの上部に、「実行結果: 成功しました」というテキストを含むライトグリーンのボックスが表示されます。 「詳細」をクリックすると、関数が返したイベントを確認できます。
- よくできました! これで、機能する Lambda 関数ができました。