【以下的问题经过翻译处理】 我正在使用 NodeJS 14.x lambda 控制 ecs 服务。由于我不需要 ecs 任务一直运行,我在集群内创建了一个服务,以便我可以随意调整所需的数量以启动或停止它。我还创建了两个 lambdas,一个用于查询当前所需计数和当前公共 IP,另一个用于更新所需计数(如果我想启动或停止它,则为 0 或 1)。
我已经将 aws-sdk v3 打包到 lambda layer 中,以免在每个 lambda 中打包它。这似乎是有效的,因为我之前遇到了运行时错误,但现在没有了。
从我的工作站运行代码也很正常,我能够在本地执行它并获得所需的结果(对 ecs api 的查询正常工作)。
但是当我从 lambdas 进行测试时,我只会得到超时......它通常在我的本地工作站上执行不到 3 秒,但即使设置了 3 分钟的 lambda 超时,我仍然会得到以下结果:
START RequestId: XXXX-XX-XXXX Version: $LATEST
2022-01-11T23:57:59.528Z XXXX-XX-XXXX INFO before ecs client send
END RequestId: XXXX-XX-XXXX
REPORT RequestId: XXXX-XX-XXXX Duration: 195100.70 ms Billed Duration: 195000 ms Memory Size: 128 MB Max Memory Used: 126 MB Init Duration: 1051.68 ms
2022-01-12T00:01:14.533Z XXXX-XX-XXXX Task timed out after 195.10 seconds
消息“before ecs client send”是我为了调试目的在 ecs.send 请求之前添加的 console.log。
我认为我已经正确设置了策略以及带有默认出站规则的 Lambda VPC,允许所有端口使用所有协议以及所有IP进行连接, 所以 我现在不知道还能从哪些方面排查?
我也没有找到像V2版本那样 可以通过在配种中添加日志来进行调试, 也许通过调试可以更好的理解报错的问题.