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 线程中所建议的那样。这显然是在阻止执行。删除允许脚本正确执行。
我编写了一个独立于 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 线程中所建议的那样。这显然是在阻止执行。删除允许脚本正确执行。