【发布时间】:2020-08-07 14:40:57
【问题描述】:
我在 AWS 上部署了一个 Serverless .net core web api lambda 应用程序。
当我在同一个 VPC 中访问 ElasticSearch 服务时,我将它放在 VPC 中。
我有两个连接到 Elasticsearch 服务的 API 微服务。
在一段时间不使用后(4 小时、6 小时、18 小时 - 我不确定确切,但似乎是随机的),该功能变得无响应并且我收到 504 网关超时错误,“找不到端点”
我在某处读到,如果“空闲”时间过长,ENI 会被释放回 AWS 系统,再次触发 Lambda 应该会启动它。
我似乎无法通过调用该函数来“唤醒”该函数,因为它不断超时并出现上述错误(我还增加了默认超时)。
这是关键 - 如果我对特定的 lambda 函数进行任何更改,并保存这些更改(这包括更改超时值等简单的操作) - 我的 API 调用(两者,即使不同的 lambda)开始工作再次像它已经“踢”回来了。显然,这些变化是这样做的,但为什么呢?
显然,我不希望在生产环境中出现超时,无论使用多少或多少 lambda 或 API 调用。
我需要一个防弹的解决方案。当然这是一些描述的配置问题,但我只是不确定在哪里看。
我为 VPC 更改了路由表、公共/私有子网、CIDR 块、创建了互联网网关、NAT 等。这一切都有效,但是这两个需要 VPC 访问的 lambda 以某种方式一直处于“睡眠状态”。
【问题讨论】:
-
执行角色呢?也许某人/某物正在改变执行角色,从而阻止在 vpc 中正常工作?
标签: amazon-web-services aws-lambda aws-api-gateway