美文网首页我是程序员
三分钟学会如何在函数计算中使用 puppeteer

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

作者: 阿里云云栖号 | 来源:发表于2018-06-20 17:58 被阅读129次

    摘要: 使用 puppeteer 结合函数计算,可以快速的构建弹性的服务完成各种功能,包括:生成网页截图或者 PDF、高级爬虫,可以爬取大量异步渲染内容的网页、模拟键盘输入、表单自动提交、登录网页等,实现 UI 自动化测试和捕获站点的时间线,以便追踪你的网站,帮助分析网站性能问题

    简介

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

    1、生成网页截图或者 PDF

    2、高级爬虫,可以爬取大量异步渲染内容的网页

    3、模拟键盘输入、表单自动提交、登录网页等,实现 UI 自动化测试

    4、捕获站点的时间线,以便追踪你的网站,帮助分析网站性能问题

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

    下载项目

    项目结构

    如何写业务代码

    index.js 文件

    本地测试

    执行命令: 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 目录。为函数计算设置环境变量:

    1、CHROME_BUCKET(必填): chrome headless 上传到 OSS 的 bucket

    2、CHROME_REGION(必填): chrome headless 上传到 OSS 的 region

    3、CHROME_KEY(必填): chrome headless 上传到 OSS 的 key。 默认值: headless_shell.tar.gz

    部署

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

    为什么要使用函数计算

    函数计算是一个相对较新的事物,可能大部分开发人员或架构师对它很陌生。微服务架构是当下很流行的一种系统架构,微服务架构有没有不够完美的地方?答案是肯定的。基于微服务架构,我们需要考虑使用什么微服务框架来架构系统、需要多少台服务器、如何有效减轻运维负担等一些列问题。另外,按照《福布斯》杂志的统计,在商业和企业数据中心的典型服务器仅提供 5%~15% 的平均最大处理能力的输出。这无疑是一种资源的巨大浪费。

    有没有办法解决上面的不足?答案也是肯定的,阿里云函数计算就是在这样的背景下应运而生的。如果把云计算理解成一个执行环境,那么,在这个环境里,函数(即业务逻辑的载体)+ 数据(即跟业务相关的输入与输出)就是应用的核心,有了函数、数据、事件这三者,其它任何代码和框架,无非是整个应用的胶水和UI罢了。那么,最理想的情况就是用最少的时间写胶水,将更多的时间投入到核心应用的开发中,甚至,彻底实现整个软件栈的微服务化。函数计算就是这里的胶水。

    开发效率

    可靠性

    成本

    安全

    总结

    1、函数计算有如下优势:

    2、无需采购和管理服务器等基础设施

    3、专注业务逻辑的开发

    4、提供日志查询、性能监控、报警等功能快速排查故障

    5、以事件驱动的方式触发应用响应用户请求

    6、毫秒级别弹性伸缩,快速实现底层扩容以应对峰值压力

    7、按需付费。只需为实际使用的计算资源付费,适合有明显波峰波谷的用户访问场景

    本文作者:木香丘

    阅读原文

    本文为云栖社区原创内容,未经允许不得转载。

    相关文章

      网友评论

        本文标题:三分钟学会如何在函数计算中使用 puppeteer

        本文链接:https://www.haomeiwen.com/subject/wkxxyftx.html