【问题标题】:"message": "Endpoint request timed out"}: AWS Lambda .net core: {“消息”:“端点请求超时”}:AWS Lambda .net 核心:{
【发布时间】:2020-11-16 15:15:49
【问题描述】:
我总是有 {"message": "Endpoint request timed out"}。
我使用 swagger 和 swagger ui for api。
我做了什么:
- 在 RDS 中创建了一个 mysql 数据库
- 确保一切正常并连接(是)可公开访问
- 创建了一个 Lambda 函数来包装我现有的 aspnet 核心项目
- 添加了自定义运行时以支持 2.2
- 发布了我的 lambda 函数
- 设置 vpc 和角色之间的权限
- 当我尝试访问我的 lambda 函数时,我总是遇到:{"message": "Endpoint request timed out"}
我认为这是我错过的一个小配置。
我如何进行调查以了解问题所在?
您对这个问题有什么想法吗?
【问题讨论】:
标签:
amazon-web-services
asp.net-core
aws-lambda
aws-serverless
【解决方案1】:
此超时将是网络连接问题的结果。
我首先要说的是,您应该保持 Lambda 和 RDS 之间的网络连接为私有。如果 RDS 是公共的,您需要将大量 IP 列入白名单以允许入站访问(以覆盖该区域中的所有 Lambda)。这意味着任何 Lambda 都可以连接到您的 RDS。
相反,您应该将 RDS 保留为私有实例和 configure your Lambda to operate within a VPC。然后,当您的 Lambda 连接到 RDS 时,它将通过专用网络连接,而无需遍历公共 Internet。
最后确保您的 RDS 的安全组允许来自附加到 Lambda 的安全组(这在您将 Lambda 添加到 VPC 时决定)或 Lambda 所在的子网 CIDR 范围的入站访问。