我可以在AWS Lambda上使用xvfb吗?

时间:2017-01-06 16:25:02

标签: python amazon-web-services aws-lambda

我想将一些代码卸载到AWS Lambda,它抓取URL的屏幕截图的一部分并将其存储在S3中。它使用chrome-browser,后者又需要在Ubuntu上xvfb运行。我相信我可以下载Linux 64位版本的chrome-browser并用我的应用程序压缩它。我不确定我是否可以xvfb执行此操作。目前我使用apt-get install xvfb,但我认为您无法在AWS Lambda中执行此操作?

有没有办法在AWS Lambda上使用或安装xvfb?

2 个答案:

答案 0 :(得分:2)

不,这打破了lambda范例,即准备好一个完全构建的容器。

此外,您对xvfb所做的任何事情都可能会变慢。作为一般规则,lambdas应该在一秒钟内执行,否则你应该只有一台服务器。

我建议创建一个docker容器并制作一个自动缩放组。

答案 1 :(得分:2)

是的,您可以使用位配置在aws lambda上使用Xvfb。有关工作示例,请参阅https://github.com/nisaacson/aws-lambda-xvfb

要使其正常工作,您需要使用一些特殊配置值编译Xvfbxkbcomp。然后,您需要使用lambda函数捆绑一些共享库...

使用以下标志编译xorg-server以获取Xvfb二进制文件

./configure
    --with-xkb-path=/var/task/xkb \
    --with-xkb-output=/tmp \
    --with-xkb-bin-directory=/var/task/bin

使用以下标志

编译xkbcomp
./configure \
    --prefix=/usr \
    --with-xkb-config-root=/var/task/xkb

使用以下标志

编译xkeyboard-config
./configure \
  --prefix=/usr \
  --with-xkb-base=/var/task/xkb