使用 boto3 实现的 lambda 函数更新 DynamoDB table 的值
Updating the value of DynamoDB table with boto3 implemented lambda function
我正在尝试使用我的 API 方法来更新 table 的内容。
我设置了以下 lambda 代码:
def lambda_handler(event, context):
param = event['queryStringParameters']['employeID']
name = event['queryStringParameters']['employeName']
dynamodb = boto3.resource('dynamodb', region_name="us-east-1")
table = dynamodb.Table('api_demo_employe')
response = table.update_item(
Key = {
'employeID' : param
}
)
我需要弄清楚如何使用更新变量设置 UpdateExpression、ConditionExpression、ExpressionAttributeValues。
谁能帮我解决这个问题?
会是这样的:
response = table.update_item(TableName=table,
ReturnValues='UPDATED_NEW',
Key={'employeID': {'S': param}},
ExpressionAttributeValues={':f': {'S': update['some_param']},
':limit': {'N': '500'}},
UpdateExpression='SET some_field = :f',
ConditionExpression='some_other_field > :limit'
)
当然这只是一个例子——你的具体表现取决于你想做什么。我在猜测你的数据类型。 'S'
用于字符串,但对于其他数据类型还有其他选项。您在 ExpressionAttributeValues
中定义替换变量,然后根据需要在 UpdateExpression
和 ConditionExpression
中引用这些变量。
有关所有选项的完整详细信息,请访问 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#DynamoDB.Client.update_item。您需要查看这些选项并查看其中的优秀示例,了解如何执行不同的操作。
我在@Shawn 回答的帮助下尝试了这个
response = table.update_item(
Key = {
'employeID' : param
},
ExpressionAttributeValues = {
':f': name
},
UpdateExpression = 'SET employeName = :f'
)
成功了。
我正在尝试使用我的 API 方法来更新 table 的内容。
我设置了以下 lambda 代码:
def lambda_handler(event, context):
param = event['queryStringParameters']['employeID']
name = event['queryStringParameters']['employeName']
dynamodb = boto3.resource('dynamodb', region_name="us-east-1")
table = dynamodb.Table('api_demo_employe')
response = table.update_item(
Key = {
'employeID' : param
}
)
我需要弄清楚如何使用更新变量设置 UpdateExpression、ConditionExpression、ExpressionAttributeValues。
谁能帮我解决这个问题?
会是这样的:
response = table.update_item(TableName=table,
ReturnValues='UPDATED_NEW',
Key={'employeID': {'S': param}},
ExpressionAttributeValues={':f': {'S': update['some_param']},
':limit': {'N': '500'}},
UpdateExpression='SET some_field = :f',
ConditionExpression='some_other_field > :limit'
)
当然这只是一个例子——你的具体表现取决于你想做什么。我在猜测你的数据类型。 'S'
用于字符串,但对于其他数据类型还有其他选项。您在 ExpressionAttributeValues
中定义替换变量,然后根据需要在 UpdateExpression
和 ConditionExpression
中引用这些变量。
有关所有选项的完整详细信息,请访问 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#DynamoDB.Client.update_item。您需要查看这些选项并查看其中的优秀示例,了解如何执行不同的操作。
我在@Shawn 回答的帮助下尝试了这个
response = table.update_item(
Key = {
'employeID' : param
},
ExpressionAttributeValues = {
':f': name
},
UpdateExpression = 'SET employeName = :f'
)
成功了。