当前位置: 首页 > 后端技术 > Python

开发函数计算的正确姿势——PDF转JPG借助GhostscriptLite版本000

时间:2023-03-26 17:57:53 Python

前言首先介绍一下本文中出现的几个重要概念:FunctionCompute:FunctionComputing是一个eventDrivenservices,通过函数计算,用户无需管理服务器的运行,只需要编写代码并上传即可。函数计算以弹性伸缩的方式准备计算资源和运行用户代码,用户只需为实际代码运行消耗的资源付费。有关更多信息,请参阅函数计算。Fun:Fun是一款支持Serverless应用部署的工具,可以帮助您轻松管理函数计算、API网关、日志服务等资源。它通过一个资源配置文件(template.yml)协助您开发、构建和部署。Fun的更多文档参考。Ghostscript:Ghostscript是一套基于Adobe、PostScript和可移植文档格式(PDF)的页面描述语言编写而成的免费软件。参见维基百科词条备注:本文介绍的技术需要Fun版本大于等于3.0.0-beta.7。依赖工具本项目是在MacOS下开发的,所涉及的工具是平台无关的,应该同样适用于Linux和Windows桌面系统。在开始本示例之前,请确保以下工具已正确安装、更新到最新版本并正确配置。DockerFunFun工具依赖于docker来模拟本地环境。MacOS用户可以使用homebrew安装:brewcaskinstalldockerbrewtapvangie/formulabrewinstallfunWindows和Linux用户请参考:https://github.com/aliyun/fun/blob/master/docs/usage/installation.md安装完成后记得先执行funconfig初始化配置。注意,如果你已经安装了fun,请确保fun的版本在3.0.0-beta.7以上。$fun--version3.0.0-beta.7initialization使用funinit命令在本地快速初始化这个模板项目。funinitvangie/ghostscript-example安装依赖$funinstall递归安装fun.ymlskippullingimagealiyunfc/runtime-python3.6:build-1.6.1...Task=>update-gsfontmap=>bash-c'mkdir-p/code/.fun/root/etc/ghostscript/cidfmap.d/&&mkdir-p/code/.fun/root/etc/ghostscript/fontmap.d/&&mkdir-p/etc/ghostscript/&&mkdir-p/var/lib/ghostscript/&&mkdir-p/code/.fun/root/var/lib/ghostscript/fonts&&ln-s/code/.fun/root/etc/ghostscript/cidfmap.d/etc/ghostscript/&&ln-s/code/.fun/root/etc/ghostscript/fontmap.d/etc/ghostscript/&&ln-s/code/.fun/root/var/lib/ghostscript/fonts/var/lib/ghostscript/'Task=>[UNNAMED]=>apt-getupdate(ifneed)=>apt-getinstall-y-d-o=dir::cache=/code/.fun/tmp/installghostscript--reinstall=>bash-cforfin$(ls/code/.fun/tmp/install/archives/*.deb);执行dpkg-x$f/code/.f联合国/根;mkdir-p/code/.fun/tmp/install/deb-control/${f%.*};dpkg-e$f/code/.fun/tmp/install/deb-control/${f%.*};如果[-f"/code/.fun/tmp/install/deb-control/${f%.*}/postinst"];然后FUN_INSTALL_LOCAL=true/code/.fun/tmp/install/deb-control/${f%.*}/postinst配置;菲;done;Creatingconfigfile/etc/papersizewithnewversion=>bash-c'rm-rf/code/.fun/tmp/install/archives'本地调用$funlocalinvokepdf2jpgusingtemplate:template.ymlskippullingimagealiyunfc/runtime-nodejs10:1.6.1...FC调用开始RequestId:21d9c646-1db4-403c-b018-cd4246e193d3处理程序的加载代码:index.handler2019-09-18T09:45:38.400Z21d9c646-1db4-403c-b018-cd4246e193d3[verbosed3]stdout===================START2019-09-18T09:45:38.400Z21d9c646-1db4-403c-b018-cd4246e193d3[详细]GPLGhostscript9.26(2018-11-20)版权所有(C)2018ArtifexSoftware,Inc.保留所有权利。此软件附带NO保修:有关详细信息,请参阅文件PUBLIC。处理第1页到第1页。第12019-09-18T09:45:38.401Z21d9c646-1db4-403c-b018-cd4246e193d3[详细]stdout===================ENDFCInvokeEndRequestId:21d9c646-1db4-403c-b018-cd4246e193d3convertsuccess.JPG文件保存到/tmp/test.jpg2019-09-18T09:45:38.416Z21d9c646-1db4-403c-b018-cd4246e193d3[error](node:21)[DEP0005]DeprecationWarning:Buffer()由于安全和可用性问题已被弃用。请改用Buffer.alloc()、Buffer.allocUnsafe()或Buffer.from()方法。RequestId:21d9c646-1db4-403c-b018-cd4246e193d3计费持续时间:2132毫秒内存大小:1998MB使用的最大内存:78MB可以查看文件.fun/tmp/invoke/ghostscript/pdf2jpg/test.jpg,预留转换后的效果部厅$fundeployusingtemplate:template.ymlusingregion:cn-shanghaiusingaccountId:************4733usingaccessKeyId:************EUz3usingtimeout:60Waitingforserviceghostscriptbedeployed...Waitingforfunctionpdf2jpgtobedeployed...Waitingforpackagingfunctionpdf2jpgcode...函数pdf2jpg已经打包。一共压缩了1054个files文件,最终大小为23.44MB======FC调用启动RequestId:1411066b-1ad0-4750-922d-2350652ca5a6处理程序的加载代码:index.handler2019-09-18T09:52:39.802Z1411066b-1ad0-4750-922d-2350652ca5a6[详细]stdout===================START2019-09-18T09:52:39.802Z1411066b-1ad0-4750-922d-2350652ca5a6[详细]GPLGhostscript9.26(2018-11-20)版权所有(C)2018ArtifexSoftware,Inc.保留所有权利。本软件不附带任何保证:有关详细信息,请参阅文件PUBLIC。处理第1页到第1页。Page12019-09-18T09:52:39.802Z1411066b-1ad0-4750-922d-235averbose[]stdout====================ENDFC调用结束RequestId:1411066b-1ad0-4750-922d-2350652ca5a6Duration:513.34毫秒,计费持续时间:600毫秒,内存大小:128MB,使用的最大内存:56.49MB=========FC调用日志结束=========FCInvokeResult:convertsuccess.JPGfilesaveto/tmp/test.jpg你将Ghostscript移植到了函数计算平台作者:一闲阅读原文为云栖社区原创内容,不得转载未经许可不得转载