当Lambda函数忽略了某个键而尝试访问它时,就会抛出“键错误”(KeyError)。这通常是由于代码错误或函数参数不正确引起的。
以下是一个示例Lambda函数代码,它从DynamoDB表中检索数据并返回其中的项目。但是,如果您要检索的项目不存在,则会引发键错误:
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('my_table')
def lambda_handler(event, context):
try:
item = table.get_item(
Key={
'item_id': event['item_id']
}
)
return item['Item']
except Exception as e:
print(e)
return "Error"
要修复此问题,您需要添加代码以确保项存在。这可以通过使用“Item”属性来检查返回的项目对象来实现:
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('my_table')
def lambda_handler(event, context):
try:
item = table.get_item(
Key={
'item_id': event['item_id']
}
)
if 'Item' in item:
return item['Item']
else:
return "Item not found"
except Exception as e:
print(e)
return "Error"
通过添加此代码,Lambda函数现在将检查返回的项目对象中是否存在项并返回相应的消息。