AWS Lambda を使用して "Hello World" をサーバーレスで実行する
チュートリアル
概要
このチュートリアルでは、AWS Lambda で、サーバーのプロビジョニングや管理をせずにコードを実行する方法の基本を学習します。AWS Lambda コンソールを使用して Hello World Lambda 関数を作成する方法を説明します。続いて、サンプルのイベントデータを使用して手動で Lambda 関数を呼び出す方法と、出力されたメトリクスを確認する方法を説明します。
このチュートリアルはすべて無料利用枠の対象となります。
AWS の使用経験
初心者
所要時間
10 分
完了までのコスト
無料利用枠
必要なもの
- AWS アカウント
- 推奨ブラウザ: Chrome または Firefox の最新バージョン
[**] 過去 24 時間以内に作成されたアカウントは、このチュートリアルに必要なサービスへのアクセス権限がまだ付与されていない可能性があります。
使用するサービス
最終更新日
2022 年 8 月 23 日
実装
-
Lambda コンソールを起動するここをクリックすると、AWS マネジメントコンソールが新しいブラウザウィンドウで開くため、このステップバイステップガイドを開いたままで操作できます。上部のナビゲーションバーで [Lambda] を検索し、AWS Lambda コンソールを開きます。
-
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 関数は、お客様が提供するコード、関連する依存関係、および設定で構成されます。指定した設定情報には、割り当てるコンピューティングリソース (メモリなど)、実行タイムアウト、およびユーザーに代わって 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」と入力されています。
-
Lambda 関数の呼び出しと結果の検証
コンソールには、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 関数が作成されました。ここでは、サーバーのプロビジョニングや管理をせずにアプリケーションを実行する方法の最初のステップを学習しました。Lambda では、各種のトリガーに対するレスポンスによりコードが実行され、自動的にアプリケーションがスケールされます。スケーリングはワークロードの大きさに基づき正確に実行されます。