如何在AWS Lambda内安装Chrome

时间:2019-11-15 11:53:48

标签: java amazon-web-services amazon-ec2 aws-lambda

如何在AWS Lambda中安装Chrome?我知道我可能需要EC2实例中的特定文件,但我不知道如何检索它。

不能重复,因为微型实例ec2与lambda不会具有相同的环境

3 个答案:

答案 0 :(得分:0)

您可以使用已编译的Google Chrome创建Lambda图层。有模拟Lambda执行环境的docker容器,例如“ lambci / lambda:java8”。可能很棘手,因为您可能需要自己从源代码构建浏览器,而可能会丢失许多依赖项。

您是否尝试过寻找其他人的解决方案?例如,此存储库似乎已经使用Google Chrome Google Chrome for AWS Lambda as a layer

编译了Lambda Layer

答案 1 :(得分:0)

正如 AWS Lambda 最近宣布的(2020 年)容器镜像支持,您可以为您的 Java 代码带来自己的运行时

示例 Docker 映像可能如下所示:

System.out.println("The result is: " + compIn.compute(10f, 5f));

将此 Docker 映像推送到 ECR 后,您可以创建一个使用您的映像的 Lambda 函数。

但是,我仍然无法启动 Chrome 89(已经尝试了无数的 FROM public.ecr.aws/lambda/java:11 RUN yum install -y wget unzip libX11 RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm && \ yum install -y google-chrome-stable_current_x86_64.rpm RUN CHROME_DRIVER_VERSION=`curl -sS https://chromedriver.storage.googleapis.com/LATEST_RELEASE` && \ wget -O /tmp/chromedriver.zip https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip && \ unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/ COPY target/dependency ${LAMBDA_TASK_ROOT}/lib/ COPY target/classes ${LAMBDA_TASK_ROOT} CMD ["de.rieckpil.test.InvokeWebDriver::handleRequest"] 参数组合)......

ChromeOptions

也许将来有人会在这方面取得更大的成功,可以将其用作模板:D

答案 2 :(得分:-1)

在这种情况下,您应该放弃对Java的要求。不是你的朋友。

如果仅为此Lambda切换到Node.js,并使用alixaxel/chrome-aws-lambdaPuppeteer