如何把一个项目在aws DynamoDb使用aws Lambda与python

7y4bm7vi  于 2023-02-01  发布在  Python
关注(0)|答案(4)|浏览(184)

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

3pmvbmvn

3pmvbmvn1#

使用Boto3(最新的AWS Python 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

r1wp621o

r1wp621o2#

使用最新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中找到详细信息

a0zr77ik

a0zr77ik3#

完整示例:

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'你确保到有仅仅一个记录与相同的散列/范围.如果这记录存在它能更新这记录,否则它将创建它
http://boto3.readthedocs.org/en/latest/reference/services/dynamodb.html#DynamoDB.Client.update_item

hujrc8aj

hujrc8aj4#

您可以使用以下行写入和读取DynamoDB表:
首先,导入boto3包

import boto3

为dynamoDB创建对象

dynamodb = boto3.resource('dynamodb')

选择您的特定表

table = dynamodb.Table("fruitSalad")

写:

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

阅读:

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

相关问题