Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不允许的主机位于/无效的HTTP_主机头:Django&;兰姆达_Python_Django_Django Rest Framework_Aws Lambda - Fatal编程技术网

Python 不允许的主机位于/无效的HTTP_主机头:Django&;兰姆达

Python 不允许的主机位于/无效的HTTP_主机头:Django&;兰姆达,python,django,django-rest-framework,aws-lambda,Python,Django,Django Rest Framework,Aws Lambda,我正在使用zappa将django api上传到aws lambda,该项目是使用django3.0、postgreSQL和django rest框架构建的。在本地,一切正常,但当我将api部署到AWS Lambda时,出现以下错误: invalid HTTP_HOST header: 'lpzyjitlr0.execute-api.us-east-1.amazonaws.com'. You may need to add 'lpzyjitlr0.execute-api.us-east-1.a

我正在使用zappa将django api上传到aws lambda,该项目是使用django3.0、postgreSQL和django rest框架构建的。在本地,一切正常,但当我将api部署到AWS Lambda时,出现以下错误:

invalid HTTP_HOST header: 'lpzyjitlr0.execute-api.us-east-1.amazonaws.com'. 
You may need to add 'lpzyjitlr0.execute-api.us-east-1.amazonaws.com' to ALLOWED_HOSTS.
我已经添加了错误提示的url,但是当我添加时,我从zappa得到了一个504错误。我今天一整天都在梳理堆栈溢出,在其他帖子中尝试了许多解决方案,但没有一个对我有效。我在允许的主机中添加了以下内容,但仍然没有添加任何内容

ALLOWED_HOSTS = ['127.0.0.1', '*******.execute-api.us-east-1.amazonaws.com']
我不确定我在这一点上做错了什么,但我真的很想让它运行起来。任何帮助都将不胜感激。我的github上有完整的项目

你可以在这里看到日志

host found: [lpzyjitlr0.execute-api.us-east-1.amazonaws.com]
[1579569464923] [DEBUG] 2020-01-21T01:17:44.923Z 39c648fa-bd41-4c97-86de-428c90f48197 amazonaws found in host
[1579569464924] Invalid HTTP_HOST header: 'lpzyjitlr0.execute-api.us-east-1.amazonaws.com'. You may need to add 'lpzyjitlr0.execute-api.us-east-1.amazonaws.com' to ALLOWED_HOSTS.
[1579569464924] [ERROR] 2020-01-21T01:17:44.924Z 39c648fa-bd41-4c97-86de-428c90f48197 Invalid HTTP_HOST header: 'lpzyjitlr0.execute-api.us-east-1.amazonaws.com'. You may need to add 'lpzyjitlr0.execute-api.us-east-1.amazonaws.com' to ALLOWED_HOSTS.
[1579569465031] Bad Request: /dev/
[1579569465031] [WARNING] 2020-01-21T01:17:45.18Z 39c648fa-bd41-4c97-86de-428c90f48197 Bad Request: /dev/
[1579569465031] [INFO] 2020-01-21T01:17:45.19Z 39c648fa-bd41-4c97-86de-428c90f48197 66.229.9.195 - - 
[21/Jan/2020:01:17:45 +0000] "GET / HTTP/1.1" 400 65810 "" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" 0/95.331

发现问题的原因是我将数据库连接设置为postgreSQL错误。这就是返回504错误的原因,当添加到允许的URL时,它抛出了无效的主机头。一旦我连接了数据库并运行了“收集静态文件”,它就工作得很好

您是否尝试重新启动联机python服务器?其无服务器服务器我正在使用aws Lambday您的
ALLOWED_主机
中不包含
IpzyjitlrO.execute api.us-east-1.amazonaws.com
。如果您想使用通配符来允许来自amazonaws的所有主机,您可以执行
允许的\u host=[“*.execute api.us-east-1.amazonaws.com”]
。您可能还想将此设置为使用
env
变量,这样您就不需要在每次更新设置时提交了。我删除了它,因为每次添加它时,我都会收到一个504错误,因此出于一些奇怪的原因,URL无法工作。我也试过使用通配符,但也遇到了同样的问题。