メニュー
AWS Lambda
開発者ガイド

ステップ 2.3: Lambda 関数を作成し、手動でテストする

このセクションでは、以下の作業を行います。

  • デプロイパッケージをアップロードして、Lambda 関数を作成します。

  • Lambda 関数にサンプルのイベントデータを渡して手動で呼び出し、テストします。

ステップ 2.3.1: Lambda 関数を作成する (デプロイパッケージをアップロードする)

このステップでは、AWS CLI を使用してデプロイパッケージをアップロードします。

コマンドプロンプトで、adminuser プロファイルを使用して、次の Lambda CLI コマンド create-function を実行します。

このコマンドは、.zip ファイルのパスと実行ロールの ARN に実際の値を指定して更新する必要があります。--runtime のパラメーター値には、コードの記述に使用した言語に応じて、python2.7nodejs4.3java8 のいずれかを指定します。

Copy
$ aws lambda create-function \ --region us-east-1 \ --function-name LambdaFunctionOverHttps \ --zip-file fileb://file-path/LambdaFunctionOverHttps.zip \ --role execution-role-arn \ --handler LambdaFunctionOverHttps.handler \ --runtime runtime-value \ --profile adminuser

オプションとして、同じ AWS リージョンの Amazon S3 バケットに .zip ファイルをアップロードし、前述のコマンドでそのバケットとオブジェクト名を指定することもできます。以下に示すように、--zip-file パラメータを --code パラメータで置き換える必要があります。

Copy
--code S3Bucket=bucket-name,S3Key=zip-file-object-key

注記

AWS Lambda コンソールを使用して Lambda 関数を作成できます。その場合には、AWS CLI コマンド create-function のパラメーターの値をメモしておきます。コンソール UI で同じパラメーター値を指定します。

ステップ 2.3.2: Lambda 関数をテストする (手動で呼び出す)

サンプルイベントデータを使用して手動で関数を呼び出します。コンソールを使用して関数を呼び出すことをお勧めします。コンソールには、実行の要約、コードによって書き込まれたログ、関数が返した結果など、実行の結果を確認しやすい UI が用意されているためです (これは、コンソールが常に同期実行を行う、つまり RequestResponse 呼び出しタイプを使用して Lambda 関数を呼び出すからです)。

Lambda 関数をテストするには (AWS マネジメントコンソール)

  1. 「開始方法」の演習の手順に従って、Lambda 関数を作成して呼び出します (「ステップ 2.2: Lambda 関数を手動で呼び出し、結果、ログ、メトリクスを確認する」を参照)。テスト用のサンプルイベントについては、[Sample event template] で [Hello World] を選択し、データを以下のように置き換えます。

    Copy
    { "operation": "echo", "payload": { "somekey1": "somevalue1", "somekey2": "somevalue2" } }
  2. dynamo オペレーションの 1 つ (たとえば read) をテストするには、入力データを以下のように変更します。

    Copy
    { "operation": "read", "tableName": "the name of your stream table", "payload": { "Key": { "the primary key of the table": "the value of the key" } } }
  3. コンソールで結果を確認します。

Lambda 関数をテストする (AWS CLI)

  1. 以下の JSON をファイルにコピーし、input.txt という名前で保存します。

    Copy
    { "operation": "echo", "payload": { "somekey1": "somevalue1", "somekey2": "somevalue2" } }
  2. 次の invoke コマンドを実行します。

    Copy
    $ aws lambda invoke \ --invocation-type Event \ --function-name LambdaFunctionOverHttps \ --region us-west-2 \ --payload file://file-path/input.txt \ --profile adminuser outputfile.txt

    注記

    このチュートリアルの例では、同期実行 (呼び出しタイプが RequestResponse) をリクエストした場合、メッセージは outputfile.txt ファイルに保存されます。この関数はレスポンス本文で文字列メッセージを返します。Event 呼び出しタイプを使用すると、メッセージが出力ファイルに返されることはありません。どちらの場合でも、outputfile.txt パラメーターが必要です。

    Node.js の場合は、次のいずれかです (コード内で指定している)。

    context.succeed("message")

    context.fail("message")

    context.done(null, "message)

    Python または Java の場合は、戻りステートメント内のメッセージです。

    return "message"

次のステップ

ステップ 3: Amazon API Gateway を使用して API を作成し、テストする