web-dev-qa-db-ja.com

pythonでaws Lambdaを使用してaws DynamoDbにアイテムを配置する方法

AWS Lambdaでpythonを使用して、DynamoDBテーブルからアイテムを配置/取得するにはどうすればよいですか?

Node.jsでは、これは次のようになります。

dynamodb.getItem({
    "Key": {"fruitName" : 'banana'},
    "TableName": "fruitSalad"
}, function(err, data) {
    if (err) {
        context.fail('Incorrect username or password');
    } else {
        context.succeed('yay it works');
    }
});

必要なのはpythonと同等です。

26
Jordan

Boto3の使用(Python用の最新のAWS SDK)

あなたはそれをインポートします

import boto3

次に、経由でクライアントを呼び出します

dynamodb = boto3.client('dynamodb')

アイテムの取得の例

dynamodb.get_item(TableName='fruitSalad', Key={'fruitName':{'S':'Banana'}})

プットアイテムの例

dynamodb.put_item(TableName='fruitSalad', Item={'fruitName':{'S':'Banana'},'key2':{'N':'value2'}})

「S」は文字列値を示し、「N」は数値です

他のデータ型については http://boto3.readthedocs.org/en/latest/reference/services/dynamodb.html#DynamoDB.Client.put_item を参照してください

35
omuthu

完全な例:

import boto3

def lambda_handler(event, context):

    client = boto3.client('dynamodb')

    for record in event['Records']:
        # your logic here...
        try:
            client.update_item(TableName='dynamo_table_name', Key={'hash_key':{'N':'value'}}, AttributeUpdates={"some_key":{"Action":"PUT","Value":{"N":'value'}}}) 
        except Exception, e:
            print (e)

「update_item」または「put_item」をいつ使用するかを決定する必要があることに注意してください。

'update_item'を使用すると、同じハッシュ/範囲を持つレコードが1つだけになるようにします。レコードが存在する場合、このレコードを更新できます。それ以外の場合は作成します

http://boto3.readthedocs.org/en/latest/reference/services/dynamodb.html#DynamoDB.Client.update_item

14
Eyal Ch

最新のAWS SDKを使用する

import boto3

def lambda_handler(event, context):
    # this will create dynamodb resource object and
    # here dynamodb is resource name
    client = boto3.resource('dynamodb')

    # this will search for dynamoDB table 
    # your table name may be different
    table = client.Table("dynamoDB")
    print(table.table_status)

    table.put_item(Item= {'id': '34','company':  'Microsoft'})

AWSを使用している場合、このコードサンプルを使用できます。このラムダ関数へのアクセス許可を与える必要があるのは、 link

8