AWS Lambda:执行失败且没有错误

AWS Lambda: failed execution with no errors

我编写了一个独立于 AWS Lambda 工作的 Python 脚本 (upload.py)。它将数据作为 POST 上传到 API。它有以下方法来处理 Lambda 执行:

def handler(event, context):
    print("Hello!")
    start()

当我在本地计算机上调用 start() 时,脚本 运行 成功。

当我将代码上传到 Lambda 并 运行 进行测试或启动触发器时,没有任何反应。打印出来如下:

START RequestId: 6abc0995-865c-11e6-b015-57198f9121b5 Version: $LATEST
END RequestId: 6abc0995-865c-11e6-b015-57198f9121b5
REPORT RequestId: 6abc0995-865c-11e6-b015-57198f9121b5  Duration: 2056.85 ms    Billed Duration: 2100 ms

但是,当我在代码中引入错误时(例如添加字符串和整数),错误会被打印出来。

设置中的所有内容均已正确定义(例如 upload.handler)并且未分配 VPC 以消除网络问题。执行角色具有管理员权限以消除这种可能性。

所以事实证明 "sys" 库在 Lambda 中是不允许的,事后看来这是有道理的。为了处理潜在的编码问题,我使用了以下代码:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

正如另一个 Stack Overflow 线程中所建议的那样。这显然是在阻止执行。删除允许脚本正确执行。