AWS Lambda を使用して "Hello World" をサーバーレスで実行する

チュートリアル

概要

このチュートリアルでは、AWS Lambda で、サーバーのプロビジョニングや管理をせずにコードを実行する方法の基本を学習します。AWS Lambda コンソールを使用して Hello World Lambda 関数を作成する方法を説明します。続いて、サンプルのイベントデータを使用して手動で Lambda 関数を呼び出す方法と、出力されたメトリクスを確認する方法を説明します。

このチュートリアルはすべて無料利用枠の対象となります。

 AWS の使用経験

初心者

 所要時間

10 分

 完了までのコスト

無料利用枠

 必要なもの

  • AWS アカウント
  • 推奨ブラウザ: Chrome または Firefox の最新バージョン

[**] 過去 24 時間以内に作成されたアカウントは、このチュートリアルに必要なサービスへのアクセス権限がまだ付与されていない可能性があります。

 使用するサービス

 最終更新日

2022 年 8 月 23 日

実装

  • ここをクリックすると、AWS マネジメントコンソールが新しいブラウザウィンドウで開くため、このステップバイステップガイドを開いたままで操作できます。上部のナビゲーションバーで [Lambda] を検索し、AWS Lambda コンソールを開きます。
  • ブループリントには、何らかの最小限の処理を行うためのサンプルコードが用意されています。ほとんどのプループリントでは、特定のイベントソース (Amazon S3、Amazon DynamoDB、カスタムアプリケーションなど) のイベントを処理します。

    a.  AWS Lambda コンソールで、[Create function] (関数の作成) をクリックします。

    注: コンソールはお客様により作成された Lambda 関数がない場合にのみこのページを表示します。関数を既にお持ちの場合は、[Lambda] > [Functions] (Lambda) > (関数) ページが表示されます。リストページで、[Create a function] (関数の作成) を選択して、[Create function] (関数の作成) ページに進みます。

    b.  [use a blueprint] (設計図の使用) を選択します。
    c.  b. [Filter] (フィルター) ボックスに「hello-world-python」と入力して、[hello-world-python] プル―プリントを選択します。
    d.  次に、[Configure] (設定) を選択します。

  • Lambda 関数は、お客様が提供するコード、関連する依存関係、および設定で構成されます。指定した設定情報には、割り当てるコンピューティングリソース (メモリなど)、実行タイムアウト、およびユーザーに代わって Lambda 関数を実行するために AWS Lambda が引き受けることができる IAM ロールが含まれます。

    a.Lambda 関数についての [Basic Information] (基本的な情報) を入力します。

    基本的な情報:

    • 名前: ここで Lambda 関数に名前を設定できます。このチュートリアルでは、「hello-world-python」と入力します。
    • ロール: Lambda 関数の呼び出しをユーザーに代わって行うために AWS Lambda が引き受けることのできる、必要なアクセス権限を関連付けた IAM ロール (実行ロール) を作成することもできます。[Create a new role from AWS policy templates] (AWS ポリシーテンプレートから新しいロールを作成) を選択します。
    • ロール名:lambda_basic_execution」と入力します。

    Lambda 関数コード:

    このセクションでは、Python で書かれたコードの例を確認できます。

    b.ページの一番下に進み、[Create function] (関数の作成) を選択します。

    c.ランタイム: 現在、Java、Node.js、C#、Go または Python の Lambda 関数コードを作成できます。このチュートリアルでは、Python 3.7 をランタイムとして使用します。

    d.ハンドラ: AWS Lambda でコードの実行を開始する場所のハンドラー (コードのメソッド/関数) を指定できます。イベントデータは AWS Lambda からの入力としてこのハンドラに提供され、イベントが処理されます。

    この例では、ハンドラは Lambda によってサンプルコードから識別され、あらかじめ「lambda_function.lambda_handler」と入力されています。

  • コンソールには、hello-world-python の Lambda 関数が表示されます。これで、関数をテストし、結果を検証し、ログを確認できるようになりました。

    a.  [Configure Test Event] (テストイベントを設定) を [Test] (テスト) というドロップダウンメニューから選択します。

    b.  エディタがポップアップ表示されるので、イベントを入力して関数をテストします。  

    • [Create new event] (新しいイベントを作成) を選択します。
    • HelloWorldEvent」のようなイベント名を入力します。
    • [Event sharing settings] (イベント共有の設定) は、デフォルト設定の [Private] (プライベート) のままにします。
    • テンプレートリストから「 hello-world」を選択します。
    • サンプル JSON の値は変更できますが、イベント構造は変更しないでください。このチュートリアルでは、「value1」を「hello, world!」に置き換えます。

    [Create] (作成) を選択します。

    c.[Test] (テスト) を選択します。

    d.正常に完了すると、コンソールに結果が表示されます。

    • [Execution results] (実行結果) タブで、正常に完了したことが検証されます。
    • [Function Logs] (関数ログ) セクションには、Lambda 関数の実行によって生成されたログと、ログ出力で報告された重要な情報が表示されます。
  • AWS Lambda では、Lambda 関数が自動的にモニタリングされ、Amazon CloudWatch によってメトリクスがレポートされます。コードの実行をモニタリングできるようにするため、Lambda によりリクエスト数、リクエストあたりのレイテンシー、エラーを引き起こしたリクエスト数が自動的に追跡され、関連するメトリクスが発行されます。 

    a.[Test] (テスト) ボタンを繰り返し選択して、Lambda 関数を数回呼び出します。これにより、次のステップで表示できるメトリクスが生成されます。

    b.[Monitor] (モニタリング) タブを選択して結果を表示します。

    c.下方にスクロールして Lambda 関数のメトリクスを表示します。  Lambda メトリクスは、Amazon CloudWatch を通じてレポートされます。これらのメトリクスを利用して、カスタムアラームを設定できます。CloudWatch の詳細については、Amazon CloudWatch デベロッパーガイドを参照してください。

    [Monitoring] (モニタリング) タブには、[Invocations] (呼び出し)、[Duration] (所要時間)、[Error count and success rate (%)] (エラー数と成功率 (%))、[Throttles] (スロットリング)、[Async delivery failures] (非同期配信失敗)、[IteratorAge]、[Concurrent executions] (同時実行数) の 7 つの CloudWatch メトリクスが表示されます。

    AWS Lambda では、使用した分の料金が発生します。AWS Lambda の無料利用枠が上限に達すると、関数のリクエスト回数 (呼び出し回数) およびコードの実行時間 (呼び出し時間) に応じて課金されます。  詳細については、AWS Lambda 料金を参照してください。

  • Lambda 関数の保持について課金されていない状態で、AWS Lambda コンソールから簡単に関数を削除できます。 

    a. [Actions] (アクション) ボタンを選択して、[Delete Function] (関数の削除) をクリックします。

    b.  終了を確認する画面が表示されるので、[ Delete] (削除) を選択します。

まとめ

おめでとうございます。 最初の AWS Lambda 関数が作成されました。ここでは、サーバーのプロビジョニングや管理をせずにアプリケーションを実行する方法の最初のステップを学習しました。Lambda では、各種のトリガーに対するレスポンスによりコードが実行され、自動的にアプリケーションがスケールされます。スケーリングはワークロードの大きさに基づき正確に実行されます。

このページはお役に立ちましたか?

次のステップ