AWS Lambda不断返回“\”Hello from Lambda!\"”。

14

我在使用Python 3.8的AWS Lambda时遇到了一些问题。无论我尝试运行什么代码,AWS Lambda都会返回相同的响应。我正在尝试使用下面的代码从DynamoDB实例中检索信息:

import json
import boto3

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('planets')

def lambda_handler(event, context):
    response = table.get_item(
        Key = {
            'id':'mercury'
        }
    )
    print(response)
    # TODO implement
    return {
        'statusCode': 200,
        'body': response)
    }

我期望的输出类似于 'body':{'Item': {'id':'mercury', 'temp':'sizzling hot'}},甚至可能会出现错误,但我一直收到以下响应:

Response:
{
  "statusCode": 200,
  "body": "\"Hello from Lambda!\""
}

我甚至改变了代码,期望出现错误,但我仍然获得相同的输出。

1个回答

32
通常这是由以下原因之一引起的:
  1. 您没有部署代码更改。在新的用户界面中,您必须使用橙色按钮显式地部署您的函数。
  2. 您正在调用旧的 Lambda 版本,而不是最新版本(如果您对函数进行了版本控制)。您必须显式选择要调用的正确版本。

4
运行成功了!谢谢。不过有点奇怪,必须要部署后才能真正测试。 - mehsheenman
3
这是一个普遍存在的问题。如果用户在点击“测试”按钮时有未部署的更改,界面能够发出警告就更好了。 - jarmod
3
非常混乱,尤其是对于初学者来说,他们按照旧的用户界面教程进行操作,但在新的用户界面上却无法实现。 - dp119
如果您的窗口太窄,部署和测试按钮将从UI中消失。我正在同时运行两个窗口,无法在代码UI的任何地方找到部署或测试(以及“未部署更改”的指示器)。展开选项卡会再次显示它们。真是糟糕的UI体验。 - Dr J

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接