为什么我的AWS Lambda函数返回null?(Python代码)
每当我的网页刷新时,我都使用RESTAPI来更新我的DynamoDB表。我想打印已更新的值以显示在我的网页上 我最初在Lambda函数中有一个Python函数。我添加了第二个函数来从DynamoDB表中获取一个项,当我测试该函数时看到null。添加第二个函数后,日志仍然显示null 每当刷新页面时,DynamoDB表都会更新。API测试日志显示状态为200 下面我将发布我的代码和API测试日志为什么我的AWS Lambda函数返回null?(Python代码),python,amazon-web-services,amazon-dynamodb,Python,Amazon Web Services,Amazon Dynamodb,每当我的网页刷新时,我都使用RESTAPI来更新我的DynamoDB表。我想打印已更新的值以显示在我的网页上 我最初在Lambda函数中有一个Python函数。我添加了第二个函数来从DynamoDB表中获取一个项,当我测试该函数时看到null。添加第二个函数后,日志仍然显示null 每当刷新页面时,DynamoDB表都会更新。API测试日志显示状态为200 下面我将发布我的代码和API测试日志 import boto3 dynamodb = boto3.client('dynamodb'
import boto3
dynamodb = boto3.client('dynamodb')
def lambda_handler(event, context, callback):
response = dynamodb.update_item(
TableName='ResumeCounter',
Key={
'Site': {
'N': '0'
}
},
UpdateExpression='SET Visits = Visits + :inc',
ExpressionAttributeValues={
':inc': {'N': '1'}
},
ReturnValues="UPDATED_NEW"
)
def lambda_get(event, context):
res = dynamodb.get_item(
TableName='ResumeCounter',
Key={
'Site': {
'N': '0'
}
},
ProjectionExpression='Visits',
)
print(res)
print命令仅将其打印到控制台/日志。它不会将值返回给调用服务(例如API网关)
要将内容返回到API网关,请使用
return response
或return json.dumps(response)
返回响应。这样,调用应用程序将看到一个响应,而不是得到一个空响应。print命令只是将其打印到控制台/日志中。它不会将值返回给调用服务(例如API网关)
要将内容返回到API网关,请使用
return response
或return json.dumps(response)
返回响应。这样,调用应用程序将看到一个响应,而不是得到一个空响应。在哪里返回除空以外的任何内容?另外,python处理程序接受回调似乎有点奇怪。看看典型的python lambda函数处理程序。您的lambda\u处理程序
函数不返回任何内容,这导致它返回None
。您正在为响应
赋值,然后丢弃它并返回None
。并且lambda\u get
在打印res
后也返回None
。您可能希望返回res
而不是打印它。除了Null之外,您在哪里返回其他内容?另外,python处理程序接受回调似乎有点奇怪。看看典型的python lambda函数处理程序。您的lambda\u处理程序
函数不返回任何内容,这导致它返回None
。您正在为响应
赋值,然后丢弃它并返回None
。并且lambda\u get
在打印res
后也返回None
。您可能想返回res
而不是打印它。哇,谢谢!这真的很有帮助,keithRozario。现在,我已经更新了代码以包含一个返回调用。不过,它打印的信息比我想要的要多。我想它只张贴到该网站的访客人数。相反,它发布了“{”N:“103”}”你知道我如何让它只显示103吗?我已经尝试了get.item函数,但是对于调用服务IIRC的meDepending,它不起作用,您必须返回一个有效的JSON对象,而103不是有效的JSON。您需要使用调用应用程序提取它。在python中,在示例中使用response.get(“N”),谢谢!它现在返回数字,但它的周围有引号。我正在研究如何修复它。你帮了我很大的忙!!使用“returnint(count)”删除了引号。我不知道你可以返回一个纯整数——但很高兴知道:)哇,谢谢!这真的很有帮助,keithRozario。现在,我已经更新了代码以包含一个返回调用。不过,它打印的信息比我想要的要多。我想它只张贴到该网站的访客人数。相反,它发布了“{”N:“103”}”你知道我如何让它只显示103吗?我已经尝试了get.item函数,但是对于调用服务IIRC的meDepending,它不起作用,您必须返回一个有效的JSON对象,而103不是有效的JSON。您需要使用调用应用程序提取它。在python中,在示例中使用response.get(“N”),谢谢!它现在返回数字,但它的周围有引号。我正在研究如何修复它。你帮了我很大的忙!!使用“returnint(count)”删除了引号。我不知道可以返回纯整数——但很高兴知道:)
Thu Jun 18 01:55:44 UTC 2020 : Method response body after transformations: null
Thu Jun 18 01:55:44 UTC 2020 : Method response headers: {X-Amzn-Trace-Id=Root=[REDACTED];Sampled=0, Access-Control-Allow-Origin=*, Content-Type=application/json}
Thu Jun 18 01:55:44 UTC 2020 : Successfully completed execution
Thu Jun 18 01:55:44 UTC 2020 : Method completed with status: 200