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

このチュートリアルはすべて無料利用枠の範囲で実行できます。

AWS でサーバレスコードを実行するにはアカウントが必要です。

まずは無料で始める »
AWS アカウント作成の流れはこちら »

AWS 無料利用枠には、AWS Lambda での1 か月あたり 100 万の無料要求と最大 3.2M 秒のコンピューティング時間が含まれます。

AWS 無料利用枠の詳細はこちら »

 

ここをクリックすると、AWS マネジメントコンソールが新しいブラウザウィンドウで開き、順を追って説明するこのガイドを開いたままにすることができます。[Compute] の下にある [Lambda] を見つけてクリックし、AWS Lambda コンソールを起動します。

create-lambda-function_0

(クリックして拡大)

create-lambda-function_0

設計図には、何らかの最小限の処理を行うためのサンプルコードが用意されています。ほとんどの設計図では、特定のイベントソース (Amazon S3、DynamoDB、カスタムアプリケーションなど) のイベントを処理します。

AWS Lambda コンソールで、[Get Started Now] を選択します。

利用中の Lambda 関数がすでにある場合、[Create a Lambda function] を選択します。

create-lambda-function_1

(クリックして拡大)

create-lambda-function_1

b. [Filter] ボックスに「hello-world-python」と入力して、[hello-world-python] 設計図を選択します。

create-lambda-function_2

(クリックして拡大)

create-lambda-function_2

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


a. ここで Lambda 関数を設定します。以下のリストで設定を説明し、値の例を示します。

関数の設定:
  • [Name]: ここで Lambda 関数に名前を設定できます。このチュートリアルでは、「hello-world-python」と入力します。
  • [Description]: ここで関数についての短い説明を入力できます。ここではあらかじめ、「A starter AWS Lambda Function」と入力されています。
  • [Runtime]: 現在、Java、Node.js、Python 2.7 を使用して Lambda 関数のコードを書くことができます。このチュートリアルでは、ランタイムを Python 2.7 のままにします。

[Lambda function code:]

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

[Lambda function handler and role:]

  • [Handler]: AWS Lambda でコードの実行を開始する場所のハンドラー (コードのメソッド/関数) を指定できます。イベントデータは AWS Lambda からの入力としてこのハンドラーに提供され、イベントが処理されます。この例では、ハンドラーは Lambda によってサンプルコードから識別され、あらかじめ「lambda_function.lambda_handler」と入力されています。
  • [Role]: ドロップダウンをクリックし、[Basic Execution Role] を選択します。
create-lambda-function_13

(クリックして拡大)

create-lambda-function_13

b. Lambda 関数の呼び出しをユーザーに代わって行うために AWS Lambda が引き受けることのできる、必要なアクセス権限を関連付けた IAM ロール (実行ロール) を作成することもできます。[Allow] をクリックします。

自動的に関数の設定ページに戻り、[lambda_basic_execution] が選択されます。

create-lambda-function_3

(クリックして拡大)

create-lambda-function_3

c. [Advanced settings] セクションで、メモリ、タイムアウト、VPC を設定できます。このチュートリアルでは、Lambda 関数の設定値をデフォルトのままにして、[Next] をクリックします。

create-lambda-function_15

(クリックして拡大)

create-lambda-function_15

d. Lambda 関数を確認して [Create Function] をクリックします。コンソールは、ファイルにコードを保存してから、デプロイパッケージであるファイルを圧縮します。次にコンソールにより AWS Lambda にデプロイパッケージがアップロードされ、Lambda 関数が作成されます。

create-lambda-function_5

(クリックして拡大)

create-lambda-function_5

コンソールに hello-world-python Lambda 関数が表示され、関数のテスト、結果の検証、ログの確認が可能になります。


[Test] をクリックします。

create-lambda-function_18

(クリックして拡大)

create-lambda-function_18

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

  • 入力テストイベントのページで、サンプルイベントのテンプレートリストから [Hello World] を選択します。
  • サンプル JSON の値は変更できますが、イベント構造は変更しないでください。このチュートリアルでは、「value1」を「hello, world!」に置き換えます。

[Save and Test] をクリックします。ユーザーに代わって AWS Lambda により関数が実行されます。

create-lambda-function_17

(クリックして拡大)

create-lambda-function_17

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

  • [Execution results] セクションで、正常に完了したことが検証されます。
  • [Summary] セクションに、[Log output] セクションでレポートされた重要な情報が表示されます。
  • [Log output] セクションに、Lambda 関数の実行に対して生成されたログが表示されます。
create-lambda-function_20

(クリックして拡大)

create-lambda-function_20

AWS Lambda では、Lambda 関数が自動的にモニタリングされ、Amazon CloudWatch によってメトリクスがレポートされます。コードの実行をモニタリングできるようにするため、Lambda によりリクエスト数、リクエストあたりのレイテンシー、エラーを引き起こしたリクエスト数が自動的に追跡され、関連するメトリクスが発行されます。 


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

create-lambda-function_16

(クリックして拡大)

create-lambda-function_16

[Monitoring] タブを選択して、Lambda 関数のメトリクスを表示します。Lambda のメトリクスは、Amazon CloudWatch によってレポートされます。これらのメトリクスを利用して、カスタムアラームを設定できます。CloudWatch の詳細については、「Amazon CloudWatch Developer Guide」を参照してください。

[Monitoring] タブには、呼び出し回数、呼び出し時間、呼び出しエラースロットリングされた呼び出しの 4 種類の CloudWatch メトリクスが表示されます。

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

create-lambda-function_7

(クリックして拡大)

create-lambda-function_7

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


[Actions] ボタンを選択して、[Delete Function] をクリックします。

create-lambda-function_6

(クリックして拡大)

create-lambda-function_6

b. 終了を確認する画面が表示されるので、[Yes, Terminate] を選択します。

create-lambda-function_12

(クリックして拡大)

create-lambda-function_12

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

ここでは Lambda 関数を作成する方法を学習しました。次のチュートリアルでは、Lambda 関数をトリガーして Amazon S3 バケットにアップロードされたデータを処理する方法を学習します。Lambda 関数を使用して、S3 バケットにアップロードされたイメージのサムネイルをリアルタイムで作成します。

Amazon S3 での AWS Lambda の使用 »

はい
いいえ