npm 包 aws-lambda-chrome 使用教程

阅读时长 4 分钟读完

简介

在 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

纠错
反馈