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

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

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

数分間で無料アカウントを作成

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

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

 

ここをクリックすると AWS マネジメントコンソールが新しいブラウザウィンドウで開くため、このステップバイステップガイドを開いたままで操作できます。 [Compute] の下にある [Lambda ] をクリックし、AWS Lambda コンソールを起動します。

P1

(クリックして拡大)

P1

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

a.  AWS Lambda コンソールで、[Create a Function] を選択します

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

P2

(クリックして拡大)

P2

b.  [Blueprints] を選択します。

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

d.  [Configure] をクリックします。

P3

(クリックして拡大)

P3

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


a.  Lambda 関数についての [Basic Information] を入力します。

Basic Information:
  • [Name]: ここで Lambda 関数に名前を設定できます。このチュートリアルでは、「hello-world-python」と入力します。
  • [Role]: Lambda 関数の呼び出しをユーザーに代わって行うために AWS Lambda が引き受けることのできる、必要なアクセス権限を関連付けた IAM ロール (実行ロール) を作成することもできます。[Create new role from template(s)] を選択します。
  • [Role name]: 「lambda_basic_execution」を入力します。
Lambda Function Code:
  • このセクションでは、Python で書かれたコードの例を確認できます。

b.  ページの一番下に進み、[Create Function] を選択します。

P4

(クリックして拡大)

P4

c.  [Runtime]: 現在、Java、Node.js、C#、Go または Python の Lambda 関数コードを作成できます。このチュートリアルでは、これをランタイムと同様、Python 2.7 に残します。

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

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

P5

(クリックして拡大)

P5

e.  下方にスクロールしてメモリ、タイムアウト、VPC 設定を設定します。 このチュートリアルでは、Lambda 関数の設定値をデフォルトのままにします。

Picture1

(クリックして拡大)

Picture1

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


a.  [Configure Test Event] を「Select a test event...」というドロップダウンメニューから選択します。

P7

(クリックして拡大)

P7

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

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

[Create] を選択します。

P8

(クリックして拡大)

P8

c.  [Test] を選択します。

P9

(クリックして拡大)

P9

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

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

(クリックして拡大)

P91

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


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

b.  [Monitoring] を選択して、結果を表示します。

P92

(クリックして拡大)

P92

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

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

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

P93

(クリックして拡大)

P93

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


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

P94

(クリックして拡大)

P94

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

P95

(クリックして拡大)

P95

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

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

Amazon S3 での AWS Lambda の使用 »

はい
いいえ