You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask Lambda在AWS GUI测试时出现'wsgi.url_scheme'异常错误

AWS Lambda GUI测试Flask应用时出现'wsgi.url_scheme'错误的原因及解决办法

你在AWS Lambda控制台测试Flask Lambda应用时遇到以下错误:

call as flask app
unexpected error 'wsgi.url_scheme'
但通过Postman或API Gateway调用服务时一切正常。

原因分析

  • Lambda控制台的默认测试事件不包含Flask运行所需的WSGI环境变量,而wsgi.url_scheme是Flask初始化WSGI环境时必须的参数之一。
  • API Gateway在转发请求到Lambda时,会自动生成符合WSGI规范的事件结构,包含wsgi.url_scheme(通常是http或https)等必要环境变量,所以调用正常。

解决方案

方案1:修改Lambda控制台的测试事件

在测试事件中添加WSGI相关的环境参数,示例测试事件如下:

{
  "requestContext": {
    "http": {
      "method": "GET",
      "path": "/healthcheck"
    }
  },
  "headers": {
    "Host": "example.com"
  },
  "queryStringParameters": {},
  "body": null,
  "isBase64Encoded": false,
  "wsgi.url_scheme": "https"
}

也可以仅在事件中加入wsgi.url_scheme字段,满足基础测试需求。

方案2:在代码中手动设置默认的WSGI环境变量

在初始化FlaskLambda应用后,添加代码补全缺失的wsgi.url_scheme:

app = FlaskLambda(__name__)

# 添加以下代码,处理Lambda控制台测试时的WSGI环境缺失问题
@app.before_request
def set_wsgi_scheme():
    if 'wsgi.url_scheme' not in request.environ:
        request.environ['wsgi.url_scheme'] = 'https'

这样无论测试事件是否包含该变量,Flask都能正常获取到wsgi.url_scheme参数,避免报错。

内容的提问来源于stack exchange,提问作者JustANoob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 21:21:00