AWS Lambda 是否适合作为连接非 AWS 服务的端点?

AWS Lambda 是否适合作为连接非 AWS 服务的端点?

简单背景介绍——我想测试从客户端到我正在构建的服务的连接速度,该服务在世界不同地方有服务端点(这些服务端点不一定是 AWS 数据中心)。

因此,最好的方法似乎是在世界各地设置 AWS Lambda,让它们真正地完成这项工作,在不同的 AWS 数据中心(区域)对我的服务进行定时访问,并查看 Lambda 在不同地方的表现。Lambda 打开一个 websocket 连接,向服务发出一堆请求,并计算不同负载量下的延迟等信息。

然后,Lambda 将这些发现返回到一个可以很好地显示它们的“应用程序”。

但我发现 Lambda 使用相同的 JS 逻辑断开了连接,而该逻辑在 UNIX 机器上的 node.js 上运行得很好。

所以我的问题是——这适合 Lambda 吗?我是否滥用了 Lambda 的用途?

答案1

应该工作。

但是请记住,Lambda 执行时间限制为 15 分钟,并且还有一些其他限制,例如打开套接字的数量可能会让您感到困扰。在此处查看限制:AWS Lambda 限制

当它失败你看到了什么样的失败?

  • 时间不够了?内存不够了?
  • 您是否检查过 CloudWatch Logs 中是否有确切的错误消息?
  • 您能否在 Lambda 中启用更多调试来缩小失败的原因?

还可以考虑使用AWS Fargate与 Lambda 相比,Fargate 可以让你更好地控制容器内部发生的事情,并且没有任何执行时间限制。

或者如果你想要一个真正的分布式测量也许看看RIPE Atlas- 这是一个部署在世界各地的微型探测器网络,您可以雇用它进行自定义测量。它可能适合您的用例,也可能不适合。

希望有帮助:)

相关内容