AWS Lambda(Python+;Flask)基本功能在使用API网关时不起作用
我正在使用Flask在API网关上与AWS Lambda进行POC集成,以构建一个简单的S3上传函数。然而,当我使用Flask编写一个简单的Hello World函数时,它失败了,出现以下错误。 API网关已启用代理lambda。然而,我不知道为什么它没有通过这项活动AWS Lambda(Python+;Flask)基本功能在使用API网关时不起作用,python,amazon-web-services,flask,Python,Amazon Web Services,Flask,我正在使用Flask在API网关上与AWS Lambda进行POC集成,以构建一个简单的S3上传函数。然而,当我使用Flask编写一个简单的Hello World函数时,它失败了,出现以下错误。 API网关已启用代理lambda。然而,我不知道为什么它没有通过这项活动 #Lambda Handler is fl.app from flask import Flask app = Flask(__name__) @app.route("/resourcetest") def
#Lambda Handler is fl.app
from flask import Flask
app = Flask(__name__)
@app.route("/resourcetest")
def hello():
return "Hello World!"
Response
Response
{
"errorMessage": "'SERVER_NAME'",
"errorType": "KeyError",
"stackTrace": [
[
"/var/task/flask/app.py",
2464,
"__call__",
"return self.wsgi_app(environ, start_response)"
],
[
"/var/task/flask/app.py",
2442,
"wsgi_app",
"ctx = self.request_context(environ)"
],
[
"/var/task/flask/app.py",
2359,
"request_context",
"return RequestContext(self, environ)"
],
[
"/var/task/flask/ctx.py",
292,
"__init__",
"self.url_adapter = app.create_url_adapter(self.request)"
],
[
"/var/task/flask/app.py",
2174,
"create_url_adapter",
"subdomain=subdomain,"
],
[
"/var/task/werkzeug/routing.py",
1594,
"bind_to_environ",
"wsgi_server_name = get_host(environ).lower()"
],
[
"/var/task/werkzeug/wsgi.py",
168,
"get_host",
"rv = environ[\"SERVER_NAME\"]"
]
]
}
函数日志
启动请求ID:5c0f26d9-00ac-4901-b224-c56c23fdff39版本:$LATEST
“服务器名称”:键错误
回溯(最近一次呼叫最后一次):
文件“/var/task/flask/app.py”,第2464行,在调用中__
返回self.wsgi_应用程序(环境,启动响应)
wsgi_应用程序中的文件“/var/task/flask/app.py”,第2442行
ctx=self.request\u上下文(环境)
文件“/var/task/flask/app.py”,第2359行,在请求上下文中
返回RequestContext(自身、环境)
文件“/var/task/flask/ctx.py”,第292行,在__
self.url\u adapter=app.create\u url\u adapter(self.request)
文件“/var/task/flask/app.py”,第2174行,位于创建url适配器中
子域=子域,
文件“/var/task/werkzeug/routing.py”,第1594行,在绑定到环境中
wsgi_server_name=get_host(environ).lower()
get_主机中的文件“/var/task/werkzeug/wsgi.py”,第168行
rv=环境[“服务器名称”]
KeyError:“服务器名称”
结束请求ID:5c0f26d9-00ac-4901-b224-c56c23fdff39
报告请求ID:5c0f26d9-00ac-4901-b224-c56c23fdff39持续时间:6.05毫秒计费持续时间:7毫秒内存大小:128 MB最大使用内存:53 MB初始持续时间:292.92毫秒
请求ID
5c0f26d9-00ac-4901-b224-c56c23fdff39
提供一点关于如何部署到aws lambda的背景知识?您好,感谢您的回复。我是通过AWS控制台做的。请让我知道是否需要任何其他特定的。此外,我已经安装了依赖项并使用zip文件上载。嗯,似乎flask
正在尝试获取服务器的名称,但无法——这对于AWS lambda函数来说可能并不奇怪。也许你可以通过设置SERVER\u NAME
env var的一些伪值来破解它,让flask满意。您好,Andrew,这不是从事件对象传递到lambda吗?