AWS Lambda を実行する
このチュートリアルでは、AWS Lambda で、サーバーのプロビジョニングや管理をせずにコードを実行する方法の基本を学習します。AWS Lambda コンソールを使用して Hello World Lambda 関数を作成する方法を説明します。続いて、サンプルのイベントデータを使用して手動で Lambda 関数を呼び出す方法と、出力されたメトリクスを確認する方法を説明します。
このチュートリアルはすべて無料利用枠の範囲で実行できます。
ここをクリックすると AWS マネジメントコンソールが新しいブラウザウィンドウで開くため、このステップバイステップガイドを開いたままで操作できます。 [Compute] の下にある [Lambda ] をクリックし、AWS Lambda コンソールを起動します。
設計図には、何らかの最小限の処理を行うためのサンプルコードが用意されています。ほとんどの設計図では、特定のイベントソース (Amazon S3、DynamoDB、カスタムアプリケーションなど) のイベントを処理します。
Lambda 関数は、お客様が提供するコード、関連する依存関係、および設定で構成されます。指定した設定情報には、割り当てるコンピューティングリソース (メモリなど)、実行タイムアウト、およびユーザーに代わって Lambda 関数を実行するために AWS Lambda が引き受けることができる IAM ロールが含まれます。
a. Lambda 関数についての [Basic Information] を入力します。
- [Name]: ここで Lambda 関数に名前を設定できます。このチュートリアルでは、「hello-world-python」と入力します。
- [Role]: Lambda 関数の呼び出しをユーザーに代わって行うために AWS Lambda が引き受けることのできる、必要なアクセス権限を関連付けた IAM ロール (実行ロール) を作成することもできます。[Create new role from template(s)] を選択します。
- [Role name]: 「lambda_basic_execution」を入力します。
- このセクションでは、Python で書かれたコードの例を確認できます。
b. ページの一番下に進み、[Create Function] を選択します。
c. [Runtime]: 現在、Java、Node.js、C#、Go または Python の Lambda 関数コードを作成できます。このチュートリアルでは、これをランタイムと同様、Python 2.7 に残します。
d. [Handler]: AWS Lambda でコードの実行を開始する場所のハンドラー (コードのメソッド/関数) を指定できます。イベントデータは AWS Lambda からの入力としてこのハンドラーに提供され、イベントが処理されます。
この例では、ハンドラーは Lambda によってサンプルコードから識別され、あらかじめ「lambda_function.lambda_handler」と入力されています。
コンソールに hello-world-python Lambda 関数が表示され、関数のテスト、結果の検証、ログの確認が可能になります。
AWS Lambda では、Lambda 関数が自動的にモニタリングされ、Amazon CloudWatch によってメトリクスがレポートされます。コードの実行をモニタリングできるようにするため、Lambda によりリクエスト数、リクエストあたりのレイテンシー、エラーを引き起こしたリクエスト数が自動的に追跡され、関連するメトリクスが発行されます。
c. 下方にスクロールして Lambda 関数のメトリクスを表示します。 Lambda メトリクスは、Amazon CloudWatch を通じてレポートされます。これらのメトリクスを利用して、カスタムアラームを設定できます。CloudWatch の詳細については、Amazon CloudWatch 開発者ガイドを参照してください。
[Monitoring] タブには、呼び出し回数、呼び出し時間、呼び出しエラー、スロットリングされた呼び出し、Iterator age、DLQ エラーの 6 種類の CloudWatch メトリクスが表示されます。
AWS Lambda では、使用した分の料金が発生します。AWS Lambda の無料利用枠が上限に達すると、関数のリクエスト回数 (呼び出し回数) およびコードの実行時間 (呼び出し時間) に応じて課金されます。 詳細については、AWS Lambda 料金を参照してください。
Lambda 関数の保持について課金されていない状態で、AWS Lambda コンソールから簡単に関数を削除できます。
最初の AWS Lambda 関数が作成されました。ここでは、サーバーのプロビジョニングや管理をせずにアプリケーションを実行する方法の最初のステップを学習しました。Lambda では、各種のトリガーに対するレスポンスによりコードが実行され、自動的にアプリケーションがスケールされます。スケーリングはワークロードの大きさに基づき正確に実行されます。
ここでは Lambda 関数を作成する方法を学習しました。次のチュートリアルでは、Lambda 関数をトリガーして Amazon S3 バケットにアップロードされたデータを処理する方法を学習します。Lambda 関数を使用して、S3 バケットにアップロードされたイメージのサムネイルをリアルタイムで作成します。