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

ステップ 2.1: デプロイパッケージを作成する

[Filter View] リストから、Lambda 関数で使用する言語を選択します。該当するセクションに、デプロイパッケージを作成するためのコードと所定の手順が表示されます。

Node.js

手順に従って、AWS Lambda 関数デプロイパッケージを作成します。

  1. テキストエディターを開き、次のコードをコピーします。

    Copy
    console.log('Loading function'); var AWS = require('aws-sdk'); var dynamo = new AWS.DynamoDB.DocumentClient(); /** * Provide an event that contains the following keys: * * - operation: one of the operations in the switch statement below * - tableName: required for operations that interact with DynamoDB * - payload: a parameter to pass to the operation being performed */ exports.handler = function(event, context, callback) { //console.log('Received event:', JSON.stringify(event, null, 2)); var operation = event.operation; if (event.tableName) { event.payload.TableName = event.tableName; } switch (operation) { case 'create': dynamo.put(event.payload, callback); break; case 'read': dynamo.get(event.payload, callback); break; case 'update': dynamo.update(event.payload, callback); break; case 'delete': dynamo.delete(event.payload, callback); break; case 'list': dynamo.scan(event.payload, callback); break; case 'echo': callback(null, "Success"); break; case 'ping': callback(null, "pong"); break; default: callback('Unknown operation: ${operation}'); } };

    注記

    コードサンプルは、Node.js ランタイム v6.10 または v4.3 に準拠しています。詳細については、「プログラミングモデル (Node.js)」を参照してください。

  2. このファイルを LambdaFunctionOverHttps.js という名前で保存します。

  3. LambdaFunctionOverHttps.js ファイルを LambdaFunctionOverHttps.zip という名前で ZIP 圧縮します。

次のステップ

ステップ 2.2: 実行ロール (IAM ロール) を作成する

Python

AWS Lambda 関数デプロイパッケージを作成する手順に従います。

  1. テキストエディターを開き、次のコードをコピーします。

    注記

    from __future__ ステートメントを使用すると、Python 2 または 3 と互換性のあるコードを作成できます。ランタイムバージョン 3.6 を使用している場合は、これを含める必要はありません。

    Copy
    from __future__ import print_function import boto3 import json print('Loading function') def handler(event, context): '''Provide an event that contains the following keys: - operation: one of the operations in the operations dict below - tableName: required for operations that interact with DynamoDB - payload: a parameter to pass to the operation being performed ''' #print("Received event: " + json.dumps(event, indent=2)) operation = event['operation'] if 'tableName' in event: dynamo = boto3.resource('dynamodb').Table(event['tableName']) operations = { 'create': lambda x: dynamo.put_item(**x), 'read': lambda x: dynamo.get_item(**x), 'update': lambda x: dynamo.update_item(**x), 'delete': lambda x: dynamo.delete_item(**x), 'list': lambda x: dynamo.scan(**x), 'echo': lambda x: x, 'ping': lambda x: 'pong' } if operation in operations: return operations[operation](event.get('payload')) else: raise ValueError('Unrecognized operation "{}"'.format(operation))
  2. LambdaFunctionOverHttps.py という名前でファイルを保存します。

  3. LambdaFunctionOverHttps.py ファイルを LambdaFunctionOverHttps.zip という名前で ZIP 圧縮します。

次のステップ

ステップ 2.2: 実行ロール (IAM ロール) を作成する

このページの内容: