尝试使用以下方法在本地运行我的无服务器python lambda函数:
无服务器调用本地-f hello
函数运行,但在调用处理程序之前似乎需要2-5秒的时间。这对我来说是一个真正的问题,因为我希望使用invoke来支持本地测试。
我的处理程序非常简单:
def hello(event, context):
print('start')
body = {
"message": "Go Serverless v1.0! Your function executed successfully!",
"input": event
}
response = {
"statusCode": 200,
"body": json.dumps(body)
}
print('end')
return response粗略的时间表:
invoke到print(start):2-5sprint(start)到print(end):<0.5sprint(end):1s由于我找不到任何其他人在这个问题上,建议它做一些与我的本地机器。不知道会是什么,甚至不知道从哪里开始找错。
Serverless: 1.32 (全局安装) Python: 3.6.5
发布于 2018-10-30 06:48:44
这是无服务器框架(AWS SAM框架太可悲)的问题,而不是您的代码。不幸的是,Node.JS和Go本地调用也遇到了同样的问题。
问题的根源不是代码的执行,而是每一次调用都需要重新配置执行环境,而执行环境所需的时间取决于机器。
要调用的一个替代方法是,正如我所做的那样,在lambda处理程序上编写一个API HTTP包装器。在本地环境中,可以使用包装器启动服务器并继续测试。
编辑:
这基本上就是创建包装器所需要做的:
serverless.yml中提到的路径对应的路径端点。使用步骤2中创建的函数将请求转发给处理程序。https://stackoverflow.com/questions/52914527
复制相似问题