我已经在AWS Lambda中使用Django和Django-REST-Framework与Zappa实现了API服务器。我使用 Auth0 作为标识。当我尝试从本地主机注册或登录时,它运行良好,但是当我尝试从 AWS 域执行相同的操作时,它会抛出timeout
错误。
网址:https://api.bearete.com/api/v1/signup/
原木:
启动新的 HTTPS 连接 (1(:arete.auth0.com
任务在 30.03 秒后超时
我需要帮助来解决这个问题。谢谢。
正如@MattHealy正确建议的那样,AWS Lambda在VPC中运行,默认情况下lambda不提供互联网访问权限。
启用 VPC 后,您的 Lambda 函数将失去默认的互联网访问权限。如果您的函数需要外部互联网访问,请确保您的安全组允许出站连接,并且您的 VPC 具有 NAT 网关。
要解决此问题,请创建几个已分配给IGW
(互联网网关(的公有子网(至少 2 个(,并创建几个已分配给NAT
网关的私有子网(至少 2 个(,并相应地修改路由表,以便IGW
和NAT
完成连接。现在,将私有子网分配给 Lambda 和相应的安全组,您的 lambda 将具有互联网连接。