Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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
Django 扎帕+;RDS连接问题_Django_Amazon Web Services_Amazon Rds_Zappa - Fatal编程技术网

Django 扎帕+;RDS连接问题

Django 扎帕+;RDS连接问题,django,amazon-web-services,amazon-rds,zappa,Django,Amazon Web Services,Amazon Rds,Zappa,我希望有人能帮我解决一些关于VPC的问题。我是AWS的新手,我只是尝试构建一个示例web应用程序,让我的脚沾满所有东西。我大致遵循了以下步骤,尝试使用Zappa+Django设置一个基本项目。我已经到了配置VPC并尝试添加Django/zappa可以对话的Postgres实例的状态。根据那篇文章,我将我的网络设置为: 连接到VPC的Internet网关 4公共子网 4个专用子网 2个专用子网中的Lambda函数 在其他2个专用子网中具有子网组的RDS 1个公共子网中的EC2框,允许SSH从本地

我希望有人能帮我解决一些关于VPC的问题。我是AWS的新手,我只是尝试构建一个示例web应用程序,让我的脚沾满所有东西。我大致遵循了以下步骤,尝试使用Zappa+Django设置一个基本项目。我已经到了配置VPC并尝试添加Django/zappa可以对话的Postgres实例的状态。根据那篇文章,我将我的网络设置为:

  • 连接到VPC的Internet网关
  • 4公共子网
  • 4个专用子网
  • 2个专用子网中的Lambda函数
  • 在其他2个专用子网中具有子网组的RDS
  • 1个公共子网中的EC2框,允许SSH从本地IP转发端口5432到RDS实例
当我尝试使用“python manage.py makemigrations”在本地机器上运行迁移时,我的问题就出现了。我不断收到一个错误,上面写着“服务器是否在主机上运行”zappadbinstance.xxxxx.rds.amazonaws.com(192.168.x.xxx),并在端口5432上接受TCP/IP连接

我不确定我错过了哪一步。我跟随并设置了bastion主机,我知道它正在工作,因为我能够(1)从终端使用ssh,以及(2)在本地机器上使用PSequel建立数据库连接


我觉得我真的很接近,但我肯定错过了什么。任何帮助或指点都将不胜感激。

首先,这是一个相当大的挑战。我同意你的看法,你就快到了。由于您可以从本地系统连接PSequel,因此从网络角度验证您的机器是否正确连接到VPC RDS

接下来要看的是Django设置。如果本地机器Django设置不正确,这将导致错误。因此,设置文件中的数据库部分在本地计算机上应该不同。正如你在上面的评论中所描述的,我相信你已经做到了

“主机”:“xxxxx.us-east-2.rds.amazonaws.com”
运行
python manage.py makemigrations
时,django会尝试使用该主机名并连接到它。不幸的是,这绕过了精心构建的ssh隧道

要解决此问题,您可以:

  • 编辑您的local settings.py以拥有
    “主机”:“127.0.0.1”
  • 编辑
    /etc/hosts
    文件以指向上面的FQDN(但我不建议这样做,因为我经常忘记删除编辑)

  • 应该很容易尝试上面的#1,看看是否有效。

    你能发布你的Django和Zappa数据库设置吗?FWIW,我从未尝试过这种方法,但已经成功地从Zappa本身(例如,
    Zappa manage dev migrate
    )以及VPC内的EC2实例运行了迁移。我也尝试过Zappa manage dev migrate,但得到了相同的错误。在我的settings.py文件中,我在数据库下配置了以下内容:“ENGINE”:“django.db.backends.postgresql_psycopg2”,“NAME”:“zappadb”,“USER”:“zappauser”,“PASSWORD”:“xxxxx”,“HOST”:“xxxxx.us-east-2.rds.amazonaws.com”,“端口”:“5432”在我的zappa settings.json文件中,我的vpc有以下内容:“vpc_config”:{“SubnetIds”:[“subnet-07ddc89a2c33a1d65”,“subnet-0c038ee74b4456b75],“SecurityGroupIds”:[“sg-0dbe5b442c882c461”]哇!!!Edgar我真是太感谢你了。“django试图使用该主机名并连接到它”---我不知道我是怎么忽略了这一点的,但我想我当时正忙于VPC的设置,所以我从来没有想到过。非常感谢你花时间阅读这篇文章并找出答案!