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
      1. 新しいブラウザタブで、AWS Lambda コンソールにログインします。
      2. 必ず、関数を作成しているリージョンをメモしてください。これは、ページの最上部、アカウント名の横にあります。
      3. オレンジの [関数の作成] ボタンをクリックします。
      4. [関数名] で、「HelloWorldFunction」と入力します。
      5. [ランタイム] ドロップダウンから [Python 3.8] を選択します。
      Full Stack tutorial CreateFunction Python

      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
      1. 新しいブラウザタブで、AWS Lambda コンソールにログインします。
      2. 必ず、関数を作成しているリージョンをメモしてください。これは、ページの最上部、アカウント名の横にあります。
      3. オレンジの [関数の作成] ボタンをクリックします。
      4. [関数名] で、「HelloWorldFunction」と入力します。
      5. [ランタイム] ドロップダウンから [Node.js 12.x] を選択します。
      Full Stack tutorial CreateFunction JavaScript

      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
      1. 新しいブラウザタブで、AWS Lambda コンソールにログインします。
      2. 必ず、関数を作成しているリージョンをメモしてください。これは、ページの最上部、アカウント名の横にあります。
      3. オレンジの [関数の作成] ボタンをクリックします。
      4. [関数名] で、「HelloWorldFunction」と入力します。
      5. [ランタイム] ドロップダウンから [Java 11] を選択します。
      Full Stack tutorial CreateFunction Java

      6.オレンジの [関数の作成] ボタンをクリックします。

      7.画面上部に緑色のボックスが表示され、「関数が正常に作成されました」というメッセージが表示されます。

      8.これで、Hello という名前のハンドラークラスを持つ Lambda 関数が作成されました。Java はコンパイルされた言語であるため、Lambda コンソールでソースコードを表示または編集することはできませんが、その設定を変更して呼び出し、トリガーを設定することはできます。

      9.関数のコードを更新するには、関数のコードを含む JAR ファイルまたは ZIP アーカイブのいずれかであるデプロイパッケージを作成する必要があります。このチュートリアルでは、こちらで使用するため、更新済みの関数コードを含む JAR ファイルを提供しました。

      10.「関数コード」に移動し、JAR ファイルをアップロードします。

      Full Stack tutorial UploadJar

      11.「ハンドラー」を com.example.app.LambdaRequestHandler::handleRequest更新します。

      Full Stack tutorial UpdateHandler

      12.画面上部にあるオレンジの [保存] ボタンをクリックします。

      13.新しい関数をテストしてみましょう。画面上部にある [テストイベントを選択] をクリックします。

      14.ドロップダウンメニューから、[テストイベントの設定] をクリックします。

      15.「イベント名」で、「HelloWorldTestEvent」と入力します。

      16.次の JSON オブジェクトをコピーして貼り付け、デフォルトの JSON オブジェクトを置き換えます。

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      17.ページの下部にあるオレンジの [作成] ボタンをクリックします。

  • Lambda 関数をテストする
    1. ページの上部にあるグレーの [テスト] ボタンをクリックします。
    2. ページの上部に、「実行結果: 成功しました」というテキストを含むライトグリーンのボックスが表示されます。 「詳細」をクリックすると、関数が返したイベントを確認できます。
    3. よくできました! これで、機能する Lambda 関数ができました。

アプリケーションのアーキテクチャ

このモジュールが完了したので、アーキテクチャは次のようになります。

full-stack amplify console arch diagram module 2

AWS Lambda サービスを追加しましたが、まだ AWS Amplify やユーザーに接続していません。これは次のモジュールで作成します。

このモジュールは役に立ちましたか?

ありがとうございます
このチュートリアルで良かった点をお聞かせください。
閉じる
ご期待に添えず申し訳ありません
古い説明、わかりにくい説明、間違った説明はございませんでしたか? このチュートリアルの改善のために、ぜひフィードバックをお寄せください。
閉じる

サーバーレス関数をウェブアプリケーションにリンクする