如何使用带有 python 的 aws Lambda 将项目放入 aws DynamoDb

how to put an Item in aws DynamoDb using aws Lambda with python

在 AWS Lambda 中使用 python,如何 put/get 来自 DynamoDB table 的项目?

在 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 等价物。

使用 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'表示一个String值,'N'是一个数值

其他数据类型参考http://boto3.readthedocs.org/en/latest/reference/services/dynamodb.html#DynamoDB.Client.put_item

完整示例:

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' 确保只有一条记录具有相同的 hash/range。如果记录存在它可以更新这条记录,否则它会创建它

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

使用最新的 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,则可以使用此代码示例,只需要授予此 lambda 函数的权限,您可以在 link

中找到详细信息

您可以使用下面的行来写入和读取 DynamoDB Table:

首先导入boto3包

import boto3

为 dynamoDB 创建对象

dynamodb = boto3.resource('dynamodb')

Select 你的具体 table

table = dynamodb.Table("fruitSalad")

写入:

table.put_item(Item= {'fruitName': 'Banana'})

阅读:

table.get_item(Key={'fruitName': 'Banana'})