开发函数计算的正确姿势——网页截图服务

前言

首先介绍下在本文出现的几个比较重要的概念:

函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息参考。
Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作。Fun 的更多文档参考。
fun install: fun install 是 fun 工具的一个子命令,用于安装 pip 和 apt 依赖,提供了命令行接口和 fun.yml 描述文件两种形式。

备注: 本文介绍的技巧需要 Fun 版本大于等于 2.9.3。

依赖工具

本项目是在 MacOS 下开发的,涉及到的工具是平台无关的,对于 Linux 和 Windows 桌面系统应该也同样适用。在开始本例之前请确保如下工具已经正确的安装,更新到最新版本,并进行正确的配置。

  • Docker
  • Fun
  • Fcli

Fun 和 Fcli 工具依赖于 docker 来模拟本地环境。

对于 MacOS 用户可以使用 homebrew 进行安装:

brew cask install docker
brew tap vangie/formula
brew install fun
brew install fcli

Windows 和 Linux 用户安装请参考:

  1. https://github.com/aliyun/fun/blob/master/docs/usage/installation.md
  2. https://github.com/aliyun/fcli/releases

安装好后,记得先执行 fun config 初始化一下配置。

初始化

使用 fun init 命令可以快捷的将本模板项目初始化到本地。

$ fun init vangie/puppeteer-example
? Please input oss bucket to upload chrome shell? chrome-headless
? Please select a region? cn-hangzhou
? Please input oss accessKeyId for upload? xxxxxxxxxxxKbBS
? Please input oss accessKeySecret for upload? xxxxxxxxxxxx5ZgM

上面会提示

  1. 输入一个 OSS 的 BUCKET,注意 OSS Bucket 是全球唯一的,上面的 chrome-headless 已经被占用了,请换一个新的名称或者一个已经创建好的(已经创建好的,请确保 region 一致)。
  2. 然后选择一个 OSS 的 Region,请保持和部署函数计算 Region 一致
  3. 输入一个具备 OSS 写权限的秘钥。

安装依赖

$ fun install
skip pulling image aliyunfc/runtime-nodejs8:build-1.2.0...
Task => [UNNAMED]=> apt-get update (if need)=> apt-get install -y -d -o=dir::cache=/code/.fun/tmp libnss3=> bash -c 'for f in $(ls /code/.fun/tmp/archives/*.deb); do dpkg -x $f /code/.fun/root; done;'=> bash -c 'rm -rf /code/.fun/tmp/archives'
Task => [UNNAMED]=> bash -c  'curl -L https://github.com/muxiangqiu/puppeteer-fc-starter-kit/raw/master/chrome/headless_shell.tar.gz --output headless_shell.tar.gz'
...

fun install 会执行 fun.yml 文件里的任务,这些任务会:

  1. 安装 puppeteer 依赖的 .so 文件;
  2. 将 puppeteer 依赖的 chrome headless 二进制文件上传到 OSS;
  3. 安装 npm 依赖。

部署

$ fun deploy
using region: cn-shanghai
using accountId: ***********4733
using accessKeyId: ***********KbBS
using timeout: 60Waiting for service puppeteer to be deployed...Waiting for function html2png to be deployed...Waiting for packaging function html2png code...package function html2png code donefunction html2png deploy success
service puppeteer deploy success

执行

$ fcli function invoke -s puppeteer -f html2png
The screenshot has been uploaded to http://chrome-headless.oss-cn-shanghai.aliyuncs.com/screenshot.png

打开上面的返回链接,看到截取出来的是全屏滚动的长图,考虑的篇幅下面只截取了部分:

如果想换一个网址,可以使用如下命令格式

fcli function invoke -s puppeteer -f html2png --event-str 'http://www.alibaba.com'

调试

如果需要在本地调试代码,可以使用如下命令

fun local invoke html2png <<<'http://www.alibaba.com'

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何关闭计算机的f12功能键,win10如何关闭快捷键?win10关闭F1~F12快捷键的方法

win10如何使用快捷键关闭?在win10系统中我们按下F1~F12原本可以正常使用系统中的功能。而然在笔记本中F1~F12竟然被笔记本中的功能所替代了&#xff0c;例如&#xff1a;打开/关闭 无线网卡&#xff0c;屏幕亮度加减、系统音量大小等&#xff0c;导致我们在使用F1~F12的时候只…

阿里巴巴宣布架构调整;英伟达放大招!重磅发布 ​TensorRT 7 ,支持超千种计算变换;苹果、谷歌和亚马逊罕见结盟……...

戳蓝字“CSDN云计算”关注我们哦&#xff01; 嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周五第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

阿里开源分布式事务解决方案 Fescar 全解析

广为人知的阿里分布式事务解决方案&#xff1a;GTS&#xff08;Global Transaction Service&#xff09;&#xff0c;已正式推出开源版本&#xff0c;取名为“Fescar”&#xff0c;希望帮助业界解决微服务架构下的分布式事务问题&#xff0c;今天我们一起来深入了解。 FESCAR o…

鲜为人知的混沌工程,到底哪里好?

混沌工程属于一门新兴的技术学科&#xff0c;行业认知和实践积累比较少&#xff0c;大多数IT团队对它的理解还没有上升到一个领域概念。阿里电商域在2010年左右开始尝试故障注入测试的工作&#xff0c;希望解决微服务架构带来的强弱依赖问题。通过本文&#xff0c;你将了解到&a…

将视觉深度学习模型应用于非视觉领域

介绍 近些年来&#xff0c;深度学习技术已经彻底改变了计算机视觉领域。由于迁移学习和各种各样的学习资源的出现&#xff0c;任何人都可以通过使用预训练的模型&#xff0c;将其应用到自己的工作当中&#xff0c;以此获得非常好的结果。随着深度学习越来越商业化&#xff0c;…

如何在Flutter上优雅地序列化一个对象

序列化一个对象才是正经事 对象的序列化和反序列化是我们日常编码中一个非常基础的需求&#xff0c;尤其是对一个对象的json encode/decode操作。每一个平台都会有相关的库来帮助开发者方便得进行这两个操作&#xff0c;比如Java平台上赫赫有名的GSON&#xff0c;阿里巴巴开源…

腾讯汤道生:2020年加大投入产业互联网生态建设

新一轮产业革命正在不断深化&#xff0c;为全球经济发展提供了历史性机遇。如何通过数字化、智能化等手段打通产业链不同环节&#xff0c;优化产业效率&#xff0c;实现产业协同&#xff0c;加速产业转型升级&#xff1f; “与合作伙伴‘共创’是产业互联网发展最重要的路径&am…

优酷IPv6改造纪实:视频行业首家拥抱下一代网络技术

阿里妹导读&#xff1a;2018年双11前&#xff0c;优酷开启了IPV6的大门。9月份PC端业务开启灰度&#xff0c;迎来首位IPV6 VIP用户后&#xff0c;优酷移动客户端也马不停蹄地加入灰度大军。从0到1&#xff0c;花了几个月&#xff1b;从10到1000&#xff0c;花了几天&#xff1b…

服务器上的文件怎么取名,给新的服务器取名你会取神马?

亲爱的谕霸们&#xff1a;本周话题 emmmm.....又一次想话题想到脑壳痛&#xff0c;忽然想到&#xff0c;要不然大家也来想一个&#xff0c;于是乎就是......噢对了&#xff0c;看到论坛的宝宝们都晒出来2018年新年历了&#xff0c;怎么能少了APP的宝宝们&#xff1f;&#xff1…

NVIDIA发布全新推理软件,开创交互式会话AI新时代!

近日&#xff0c; NVIDIA发布了一款突破性的推理软件。借助于该软件&#xff0c;全球各地的开发者都可以实现会话式AI应用&#xff0c;大幅减少推理延迟。而此前&#xff0c;巨大的推理延迟一直都是实现真正交互式互动的一大阻碍。 NVIDIA TensorRT™ 7作为NVIDIA第七代推理软件…

可应用于实际的14个NLP突破性研究成果(二)

论文摘要 尽管最近在训练高质量的句子嵌入上做出了很多的努力&#xff0c;但是大家仍然对它们所捕捉的内容缺乏了解。基于句子分类的‘Downstream’tasks通常用于评估句子表示的质量。然而任务的复杂性使得它很难推断出句子表示中出现了什么样的信息。在本文将介绍10个probing…

可应用于实际的14个NLP突破性研究成果(三)

论文摘要 当前最先进的语义角色标记&#xff08;SRL&#xff09;使用深度神经网络&#xff0c;但没有明确的语言特征。之前的工作表明&#xff0c;抽象语法树可以显著改善SRL&#xff0c;从而提高模型准确性。在这项研究中&#xff0c;我们提出了语言学的自我关注&#xff08;…

服务器cpu虚拟插槽,服务器更换cpu插槽

服务器更换cpu插槽 内容精选换一换弹性云服务器创建成功后&#xff0c;您可以根据需求&#xff0c;修改云服务器的名称。系统支持批量修改多台弹性云服务器的名称&#xff0c;修改完成后&#xff0c;这些弹性云服务器的名称相同。登录管理控制台。单击管理控制台左上角的&#…

云+X案例展 | 民生类:贝斯平云助力500强跨国企数字化转型

本案例由贝斯平云投递并参与评选&#xff0c;CSDN云计算独家全网首发&#xff1b;更多关于【云X 案例征集】的相关信息&#xff0c;点击了解详情丨挖掘展现更多优秀案例&#xff0c;为不同行业领域带来启迪&#xff0c;进而推动整个“云行业”的健康发展。在全球化的科技进步和…

基于Alluxio系统的Spark DataFrame高效存储管理技术

介绍 越来越多的公司和组织开始将Alluxio和Spark一起部署从而简化数据管理&#xff0c;提升数据访问性能。Qunar最近将Alluxio部署在他们的生产环境中&#xff0c;从而将Spark streaming作业的平均性能提升了15倍&#xff0c;峰值甚至达到300倍左右。在未使用Alluxio之前&#…

云+X案例展 | 金融类:青云QingCloud助力泰康人寿云计算演进之路

本案例由荣之联投递并参与评选&#xff0c;CSDN云计算独家全网首发&#xff1b;更多关于【云X 案例征集】的相关信息&#xff0c;点击了解详情丨挖掘展现更多优秀案例&#xff0c;为不同行业领域带来启迪&#xff0c;进而推动整个“云行业”的健康发展。泰康保险泰康云平台 青…

阿里云Kubernetes容器服务上体验Knative

概述 Knative Serving是一种可缩放至零、请求驱动的计算运行环境&#xff0c;构建在 Kubernetes 和 Istio 之上&#xff0c;支持为 serverless 应用、函数提供部署与服务。Knative Serving的目标是为Kubernetes提供扩展功能&#xff0c;用于部署和运行无服务器工作负载。 下面…

IoT Studio + LoRa打造“又猛又持久”的智能厕所

概述 为了增加厕所使用效率&#xff0c;减少被味道“熏陶”的等待时间&#xff0c;同时也为了增加厕所的清洁效率&#xff0c;我们决定做一个非侵入式的智能厕所改造方案。它可以通过红外热释电检测每个坑位有没有人&#xff0c;在web/app上实时显示&#xff0c;方便如厕人员查…

分布式事务中间件Fescar—全局写排它锁解读

前言 一般&#xff0c;数据库事务的隔离级别会被设置成 读已提交&#xff0c;已满足业务需求&#xff0c;这样对应在Fescar中的分支&#xff08;本地&#xff09;事务的隔离级别就是 读已提交&#xff0c;那么Fescar中对于全局事务的隔离级别又是什么呢&#xff1f;如果认真阅…

萤石网络摄像头服务器稳定吗,萤石摄像头画面稳定性如何?

稳定性很好&#xff0c;体现在&#xff1a;1、C1S互联网摄像头提供400万像素的摄像头&#xff0c;拥有双向实时语音功能&#xff0c;包括内置温湿度传感器、内置备用电池以及“放大镜”功能。2、萤石爱家神器C2采用内置6块光学镜片的监控镜头&#xff0c;720P图像会保证视频画面…