python-3.x - 是否总是在同一台机器上启动特定的 AWS Lambda 函数?
问题描述
我们通过控制台在 Python 中创建了一个 AWS Lambda 函数,并通过单击“测试”按钮进行了测试。它工作正常。
所以现在我想明白,每次当我点击“测试”时,
- 这个 Lambda 函数是否总是在同一台机器上运行?
- AWS Lambda 是否在将执行用户函数的同一台机器上启动容器?
如果不是,如果我在处理程序函数中创建一个子进程,如何在多次调用此 Lambda 函数之间获取正在运行的子进程?
感谢您的澄清!
解决方案
AWS Lambda 函数有机会在同一台机器上重新运行同一个容器,它甚至可以重新启动在 Lambda 停止运行容器时正在容器中运行的进程。设计 Lambda 函数时要记住的重要一点是,这并不能保证。您必须编写 Lambda 函数,以便它可以处理在另一台机器上的干净环境中完成的后续执行。
请记住,AWS Lambda 函数将在运行 15 分钟后停止。请参阅:https ://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html
您可以尝试设计您的 Lambda,使其进行一些处理,然后将数据存储在其他位置,然后在前一个 Lambda 完成后,启动的下一个 Lambda 函数将执行更多处理。您通常希望将 Lambda 用于在执行更多处理之前等待特定事件或时间的工作负载。
使用 Lambda 的最佳用例之一是仅在需要时为处理能力付费。
对于您的用例,您可能需要考虑使用其他一些容器服务,例如:
EKS - https://aws.amazon.com/eks/ 或 ECS - https://aws.amazon.com/ecs/
或者甚至可能考虑 Elastic Beanstalk - https://aws.amazon.com/elasticbeanstalk/
推荐阅读
- .net - .Net Realm.All<> 连接到 Realm 后返回空列表
- vuepress - 在 Vue Press 的 MD 文件中使用 package.json 版本
- objective-c - 图像未在滚动视图中垂直居中
- python - 如何在具有多个参数的函数上使用 python Maps
- html - 使用带 # 的 href 或 routerlink
- python - 从 Python 调用时 C DLL 破解
- javascript - 在移动设备上重定向下划线到 url 的前面
- jenkins - 无法在 groovy 中将主机名作为输入参数来运行 ansible playbook
- c# - C#如何在运行时获得管理员权限
- javascript - React Native Count One Up 函数