如何使用带有 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'})
在 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'})