SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

初めてのAWS Lambda
~AWS Lambdaで始めるイベントドリブンアプリケーション

  • X ポスト
  • このエントリーをはてなブックマークに追加

AWS Lambdaの使い方

 さて、ここからは実際のAWS Lambdaの使い方について簡単な例をもとに見ていきます。

例1:ユーザアプリケーションのイベントを処理する

 AWS Lambdaのコンソールを利用して、ユーザアプリケーションのイベントを処理する一番シンプルな例を実際にやっていきます。ここではマネージメントコンソール上でLambdaファンクションを作成します。コードはコンソール上で提供されているHelloWorldのサンプルコードを利用します。また、イベントに関してもコンソール上で提供されているサンプルのイベントデータを使って手動でファンクションを実行します。実行すると画面上にログが出力されるのでファンクションが実際に動いたことが確認できます。また、このログは自動的にAmazon CloudWatchへも連携されます。

 まずは、マネージメントコンソールにサインインし、AWS Lambdaのコンソールを開いてください。まだ何もLambdaファンクションが作成されていない場合は「Get Started Now」というボタンが表示されていますのでそれをクリックします。

Lambdaファンクション未作成の場合
Lambdaファンクション未作成の場合

 もし以前にLambdaファンクションを作成したことがある場合は、代わりに全ファンクションのリストが表示されているはずです。その場合は画面上部の「Create a AWS Lambda function」をクリックします。

 そうすると新しいLambdaファンクションを作成する画面が表示されますので、詳細を入力していきます。

Lambdaファンクション作成
Lambdaファンクション作成

 まず、新しいLambdaファンクションに名前を付け、説明書きを加えます。ここではHelloWorldとしています。

Lambdaファンクション名
Lambdaファンクション名

 次に実際のコードですが、今回は組み込みのインラインエディタを利用します。また、あらかじめ用意されているテンプレートを使ってテストしますので、Code TemplateのドロップダウンリストからHelloWorldを選んでください。

コードテンプレートの選択
コードテンプレートの選択

 実際のコードの中身は以下のようなシンプルなものです。

HelloWorld.js
console.log('Loading event');

exports.handler = function(event, context) {
    console.log('value1 = ' + event.key1);
    console.log('value2 = ' + event.key2);
    console.log('value3 = ' + event.key3);
    context.done(null, 'Hello World');  // SUCCESS with message
};

 コード上の"handler"がHandler Nameとなります。また、パラメータとして受け取るeventに実際のイベントデータが入ってきます。上記のコードではイベントデータのkey1、key2、key3の値をそれぞれログ出力しています。

 続けて、実行時にどのIAMロールを利用するかを指定します。ここで設定するIAMロールはExecution roleの方です。事前に作成済みのものをドロップダウンリストから選択して適用することも可能ですし、この場で新たに作成することも可能です。今回は新規に作成します。「Create/Select Role」と書かれたボタンをクリックします。

IAMロールの作成/選択
IAMロールの作成/選択

 ボタンをクリックするとIAMロールの設定画面が表示されますが、IAMロールの箇所が「Create a new role」となっていることを確認し、「Allow」をクリックします。こうすることでデフォルトでファンクション名を元にした名前で必要な権限を持ったIAMロールが作成されます。

IAMロールの新規作成
IAMロールの新規作成

 Advanced settingsのセクションはデフォルトで選択されている値のままとします。メモリサイズやタイムアウト時間を変更する場合はこのセクションで設定します。

 最後に「Create Lambda function」をクリックすることでLambdaファンクションが作成され、コンソール上にリスト画面が表示されます。

Lambdaファンクション作成後の状態
Lambdaファンクション作成後の状態

 では、早速作成したファンクションをテストしていきます。今回はコンソール上で用意されているテスト画面でサンプルのイベントデータを利用してテストします。

 Lambda: Function Listのページでファンクション名の左にある三角のアイコンをクリックし、ファンクションの情報を展開します。「Edit/Test」というボタンが表示されるのでこちらをクリックします。

Lambdaファンクションのテスト
Lambdaファンクションのテスト

 表示された画面でSample EventにCustomを選択して「Invoke」をクリックします。

サンプルイベントの選択
サンプルイベントの選択

 画面下部に実行結果のログが表示されるので内容を確認します。

 メッセージとしてサンプルのイベントデータに含まれるkey1、key2、key3にそれぞれ対応したvalue1、value2、value3という値が表示されていることが分かります。また、ここには実際に実行された処理時間や使用されたメモリサイズの情報なども出力されています。

テスト結果の確認
テスト結果の確認

次のページ
まとめ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

西谷 圭介(アマゾン ウェブ サービス ジャパン株式会社)(ニシタニ ケイスケ)

アマゾン ウェブ サービス ジャパン株式会社 シニアソリューションアーキテクトSIerでインフラエンジニアおよびアプリケーションエンジニアとして金融系基幹システムの開発等に従事。その後、新規事業のサービス企画やアプリケーション開発を経てアマゾンデータサービスジャパン入社。現在は主にメディア、EC、...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8446 2015/01/30 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング