我已经构建了一个无服务器应用程序(共享驱动器),用户可以通过网页将视频和图像上传到S3存储桶中。对上传的媒体进行一些处理是在上传操作时完成的(视频的转码,图像的缩略图创建)。为此,编写了两个Lambda函数。无服务器应用程序使用AWS Lambda。
我想知道是否可以将此应用程序移动到像Elastic Beanstalk这样的PaaS平台(使用类似Docker的东西)。
发布于 2018-04-14 13:15:49
是的,但是根据您实现lambda所使用的语言,您可能必须提供一些轻量级的填充,以便将lambda包装在一个轻量级HTTP服务器框架中。
将代码移出lambda的最大障碍不是lambda接口,它非常简单。但是,您的lambda可能调用的任何AWS服务都很可能得到SDK和API的支持,这些SDK和API也可以在lambda之外的任何上下文中使用,例如在docker容器中运行的代码。
在您的例子中,处理媒体上传到S3的代码将需要使用AWS SDK与S3对话。该SDK在Lambda内部和外部都工作得同样好。
如果你用Python编写代码,那么Zappa是一个流行的包,它抽象了AWS Lambda接口,使你的代码更容易移动到运行gunicorn & gunicorn的docker容器中,甚至是不同的云提供商。
您还必须自己配置和构建docker容器。
https://stackoverflow.com/questions/49814377
复制相似问题