【发布时间】:2021-07-15 20:09:01
【问题描述】:
我有一个 Django 应用设置,可以使用 django-allauth 连接到 Twitter。该流程全部在本地运行,我在 Lambda 上按照相同的设置步骤添加我的令牌、站点等。
当我尝试访问登录网址 (/accounts/twitter/login/) 时,请求最终超时,并显示来自 AWS Lambda 的这条消息:
{"message": "Endpoint request timed out"}
在超时事件之前来自zappa tail的最后一条消息是:
[1619019159940] [DEBUG] 2021-04-21T15:32:39.939Z 7f66a0e3-58de-4612-82c0-54590d69676f Starting new HTTPS connection (1): api.twitter.com:443
我已经看到网关有 30 秒的超时,但我认为无论如何都不应该花这么长时间。在本地,这需要几秒钟。
了解这些平台的人是否知道瓶颈可能在哪里以及问题可能在哪里?或者有什么尖锐的问题可以帮助调试?
我已经检查并(暂时)排除的事情:
- 数据库后端是 AWS Aurora Serverless,我确实担心双无服务器设置可能会导致速度变慢。但是,简单调用 Django 管理命令(
zappa manage dev migrate返回需要不到一秒钟,所以我暂时排除了这种情况。另外,管理仪表板加载正常,它也在访问数据库。 - 我已将开发 URL 和实时 URL 作为有效的 OAuth 回调 URL 添加到 Twitter 的仪表板中。
【问题讨论】:
-
您是否尝试使用AWS X-Ray 来确定您的性能瓶颈?
-
不,我不知道这个功能。如果不能完全解决,我会检查并发布任何有用的结果。
-
那里没什么用,很遗憾。我在测试时一直在查看日志,这是关于失败的 Twitter 请求的相同消息。
-
您的 Lambda 在 VPC 中。这与“性能”无关。这是网络问题。
-
@Jens 是的,很好。我假设我能够通过网络连接,lambda 也能够进行出站连接。我将研究是否需要允许 80 和 443 上的出站连接。
标签: django twitter aws-lambda oauth zappa