簡體   English   中英

AWS Lambda(Python + Flask)基本功能無法使用 API 網關

[英]AWS Lambda (Python + Flask) basic functionality not working using API Gateway

我正在使用 Flask 在 API 網關與 AWS Lambda 集成上進行 POC,以構建簡單的 S3 上傳 ZC1C425Z4574E68384F1 但是,當我使用 Flask 編寫一個簡單的 Hello World function 時,它失敗並出現以下錯誤。 API 網關啟用了代理 lambda。 但是我不確定為什么它沒有通過這個事件。

#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\"]"
    ]
  ]
}

Function 日志

START RequestId: 5c0f26d9-00ac-4901-b224-c56c23fdff39 Version: $LATEST
'SERVER_NAME': KeyError
Traceback (most recent call last):
  File "/var/task/flask/app.py", line 2464, in __call__
    return self.wsgi_app(environ, start_response)
  File "/var/task/flask/app.py", line 2442, in wsgi_app
    ctx = self.request_context(environ)
  File "/var/task/flask/app.py", line 2359, in request_context
    return RequestContext(self, environ)
  File "/var/task/flask/ctx.py", line 292, in __init__
    self.url_adapter = app.create_url_adapter(self.request)
  File "/var/task/flask/app.py", line 2174, in create_url_adapter
    subdomain=subdomain,
  File "/var/task/werkzeug/routing.py", line 1594, in bind_to_environ
    wsgi_server_name = get_host(environ).lower()
  File "/var/task/werkzeug/wsgi.py", line 168, in get_host
    rv = environ["SERVER_NAME"]
KeyError: 'SERVER_NAME'

END RequestId: 5c0f26d9-00ac-4901-b224-c56c23fdff39
REPORT RequestId: 5c0f26d9-00ac-4901-b224-c56c23fdff39 Duration: 6.05 ms Billed Duration: 7 ms Memory Size: 128 MB Max Memory Used: 53 MB Init Duration: 292.92 ms

Request ID
5c0f26d9-00ac-4901-b224-c56c23fdff39

查看錯誤日志,您應該在代碼中設置 SERVER_NAME 值,方法是將其添加為環境變量,或者在處理程序代碼中插入這些詳細信息以解決問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM