简介
在 serverless 架构中,运行无头浏览器(Headless Browser) 是非常常见的需求。aws-lambda-chrome 就是一个能够在 AWS Lambda 上运行无头浏览器的 Node.js 模块。
本文将为大家详细介绍 aws-lambda-chrome 的使用教程,包含环境配置、初始化及使用方法,并附带示例代码。
环境配置
在使用 aws-lambda-chrome 之前,需要安装 Node.js 和 npm 环境。
初始化
在项目根目录下,通过 npm 安装 aws-lambda-chrome:
npm install aws-lambda-chrome
使用方法
初始化 puppeteer
在入口文件里,引入 aws-lambda-chrome 和 puppeteer(建议使用 v2.0.0 版本或以上,因为在 v2.0.0 版本后 Puppeteer 对 aws-lambda-chrome 的支持更加完善),并初始化 puppeteer:
-- -------------------- ---- ------- ----- -------------- - ----------------------------- ----- --------- - -------------------------- --------------- - ----- ------- -------- -- - ----- ------ - ----- ----------------------- ------------ -------------- --------------- --- ------ ------- - ----- ------------------- ------------------ ----- --------------------- ---------------- ---- --- -- --- ---------- --
其中,chromeFlags: ['--headless', '--no-sandbox'] 是告诉 Chrome 来使用无头模式运行,且在沙箱中运行。
defaultViewport: null 是告诉 Puppeteer 禁止设置视口,在 AWS Lambda 上运行时这个设置可以提高效率。
执行操作
在 puppeteer 的示例代码中,我们会给出一个简单的搜索示例。
-- -------------------- ---- ------- --------------- - ----- ------- -------- -- - ----- ------ - ----- ----------------------- ------------ -------------- --------------- --- ----- ------- - ----- ------------------- ------------------ ----- --------------------- ---------------- ---- --- ----- ---- - ----- ------------------ ----- ------------------------------------ ----- -------------------------- --------- --------- ----- --------------------------------- ----- ------------------------- ----------------- -------- ----- -------------- ----- ---------- - ----- ------------------ ----- ---------------- ----- -------------- ------ - ------------- ---- ---------- - --------------- ----------- -- ------- ------------------------------ ------------------ ---- -- --
这个示例代码访问谷歌并搜索 "Headless Chrome",最后返回谷歌搜索结果的页面截图。
在代码的末尾,我们关闭了 browser 和 chromeLauncher 并返回了运行结果。
结束语
通过本文,我们学习了 aws-lambda-chrome 的使用方法,并编写了一个简单的搜索示例。aws-lambda-chrome 是一个非常有用的 npm 包,可以让我们在 AWS Lambda 上更加灵活和高效的使用无头浏览器。
完整示例代码可以在以下链接中找到: https://github.com/shadowize/aws-lambda-chrome-example
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005692981e8991b448e4b79