当前位置: 首页 > news >正文

美丽乡村网站建设青岛外贸网站建站

美丽乡村网站建设,青岛外贸网站建站,wordpress插件微信,网站asp背景 最近在处理线上工单的时候#xff0c;遇到一个用户使用 nodejs runtime 时因为函数计算运行环境的 gcc 版本过低导致无法运行的问题#xff0c;觉得非常有意思#xff0c;所以深入的帮用户寻找了解决方案。觉得这个场景应该具有一定的通用性#xff0c;所以在这篇文章…背景 最近在处理线上工单的时候遇到一个用户使用 nodejs runtime 时因为函数计算运行环境的 gcc 版本过低导致无法运行的问题觉得非常有意思所以深入的帮用户寻找了解决方案。觉得这个场景应该具有一定的通用性所以在这篇文章里面重点的介绍一下如何使用函数计算的周边工具 fun 解决因为 runtime 中系统版本导致的各种兼容性问题。 场景介绍 用户问题 简要描述一下用户当时遇到的问题: 用户使用函数计算的 nodejs8 runtime在本地自己的开发环境使用 npm install couchbase 安装了 couchbase 这个第三方库。couchbase 封装了 C 库依赖系统底层动态链接库 libstdc.so.6。因为用户自己的开发环境的操作系统内核比较新所以本地安装、编译和调试都比较顺利。所以最后按照函数计算的打包方式成功创建了 Function但是执行 InvokeFunction 时遇到了这样的错误: errorMessage: /usr/lib/x86_64-linux-gnu/libstdc.so.6: version CXXABI_1.3.9 not found (required by /code/node_modules/couchbase/build/Release/couchbase_impl.node),errorType: Error,stackTrace: [Error: /usr/lib/x86_64-linux-gnu/libstdc.so.6: version CXXABI_1.3.9 not found (required by /code/node_modules/couchbase/build/Release/couchbase_impl.node), ... 错误发生的原因如堆栈描述即没有 CXXABI_1.3.9 这个版本可以看到函数计算 nodejs 环境中的支持情况: root1fe79eb58dbd:/code# strings /usr/lib/x86_64-linux-gnu/libstdc.so.6 |grep CXXABI_ CXXABI_1.3 CXXABI_1.3.1 CXXABI_1.3.2 CXXABI_1.3.3 CXXABI_1.3.4 CXXABI_1.3.5 CXXABI_1.3.6 CXXABI_1.3.7 CXXABI_1.3.8 CXXABI_TM_1 升级底层系统版本的代价比较大需要长时间的稳定性、兼容性测试和观察所以为了支持这类使用场景我们希望能够有比较简单的方式绕行。 场景复现和问题解决 前提先按照 fun 的安装步骤安装 fun工具并进行 fun config 配置。 在本地很快搭建了一个项目目录: - test_code/- index.js- template.yml 其中 index.js 和 template.yml 的 内容分别为 # index.js const couchbase require(couchbase).Mock;module.exports.handler function(event, context, callback) {var cluster new couchbase.Cluster();var bucket cluster.openBucket();bucket.upsert(testdoc, {name:Frank}, function(err, result) {if (err) throw err;bucket.get(testdoc, function(err, result) {if (err) throw err;console.log(result.value);// {name: Frank}});});callback(null, {hello: world}) }# template.yml ROSTemplateFormatVersion: 2015-09-01 Transform: Aliyun::Serverless-2018-04-03 Resources:fc: # service nameType: Aliyun::Serverless::ServiceProperties:Description: fc testhelloworld: # function nameType: Aliyun::Serverless::FunctionProperties:Handler: index.handlerRuntime: nodejs8CodeUri: ./Timeout: 60 为了能够在本地模拟函数计算的真实环境进行依赖包安装和调试这里生成一个 fun.yml 文件用于 fun install 安装使用内容如下: runtime: nodejs8 tasks: - shell: |-if [ ! -f /code/.fun/root/usr/lib/x86_64-linux-gnu/libstdc.so.6 ]; thenmkdir -p /code/.fun/tmp/archives/curl http://mirrors.ustc.edu.cn/debian/pool/main/g/gcc-6/libstdc6_6.3.0-18deb9u1_amd64.deb -o /code/.fun/tmp/archives/libstdc6_6.3.0-18deb9u1_amd64.debbash -c for f in $(ls /code/.fun/tmp/archives/*.deb); do dpkg -x $f /code/.fun/root; done;rm -rf /code/.fun/tmp/archivesfi - name: install couchbaseshell: npm install couchbase fun.yml中参数说明: 前面的分析已经了解到函数计算 nodejs8 runtime 的 libstdc.so.6 的版本偏低所以我们找到一个更新的版本来支持见新版本的 libstdc.so.6 的 CXXABI_ 参数: $strings .fun/root/usr/lib/x86_64-linux-gnu/libstdc.so.6|grep CXXABI_ CXXABI_1.3 CXXABI_1.3.1 CXXABI_1.3.2 CXXABI_1.3.3 CXXABI_1.3.4 CXXABI_1.3.5 CXXABI_1.3.6 CXXABI_1.3.7 CXXABI_1.3.8 CXXABI_1.3.9 CXXABI_1.3.10 CXXABI_TM_1 CXXABI_FLOAT128 执行 fun install 命令 安装各种第三方依赖显示如下: 本地执行情况 执行 fun local invoke helloworld可以看到执行成功的效果: $fun local invoke helloworld begin pullling image aliyunfc/runtime-nodejs8:1.4.0............................................................... pull image finishedpull image finished FC Invoke Start RequestId: 78e20963-b314-4d69-843a-35a3f465796c load code for handler:index.handler FC Invoke End RequestId: 78e20963-b314-4d69-843a-35a3f465796c {hello:world}2019-02-19T08:16:45.073Z 78e20963-b314-4d69-843a-35a3f465796c [verbose] { name: Frank } 发布上线 使用 fun deploy 发布上线然后到控制台执行一下线上实际的运行效果: 总结 fun install 功能能够将代码和依赖文件分离开独立安装系统依赖文件而且 fun local 和 fun deply 都能够自动帮你设置第三方库的依赖引用路径让您无需关心环境变量问题。 本文的解法只是提供了一个对于系统版本偏低无法满足用户一些高级库使用需求时的简单绕行方案仅供参考对于一些复杂的环境依赖问题可能还需要具体情况具体分析。 原文链接 本文为云栖社区原创内容未经允许不得转载。
http://www.pierceye.com/news/939421/

相关文章:

  • 西安烽盈网站建设有人上相亲网站做传销燕窝
  • 您身边的网站建设专家四川省建设注册资格中心网站
  • 东莞公司网站做优化做企业网站的合同
  • 网站域名空间怎么提交北京公司网站制作方法
  • 网站伪静态是什么意思中国知名网站排行榜
  • 国外网站注册软件用python做购物网站
  • 网站设计 素材如何攻克房地产网站
  • 上不了国外网站 怎么做贸易网页浏览器设置在哪里
  • delphi可以做网站吗百色建设局网站
  • 网站建设及维护课件免费请人做装修设计上什么网站
  • 川沙网站建设淘客插件wordpress
  • 门户网站开发技术服务合同免费网页游戏源码
  • 网站批量查询工具做影视外包的网站
  • 营销型网站建设试题html5网站网址
  • 网站建设策划书(建设前的市场分析)环球资源网的定位
  • 上海企业都用什么网站网站公司建站
  • 华为云速建站可以做英文网站高端服装产品网站建设
  • 网站建设中html 下载哪个平台做网站比较好
  • 成都网站设计哪家比较好邯郸市空船网络科技有限公司
  • 网站制作类软件推荐南昌网站建设推广专家
  • 做英文兼职的网站四川路桥建设股份有限公司网站
  • 电商网站开发的意义传统营销
  • 怎么自己创建网站或者app足球世界排名
  • 营站快车代理平台跑腿网站开发
  • 免费自助建站系统下载html5手机网站制作
  • 工信部网站怎么查网址邹平县建设局网站
  • 郑州有学网站制作网站背景修改
  • 免费建建网站域名没过期 网站打不开怎么办
  • 单页企业网站模板WordPress社团展示
  • 网站建设需要具备什么条件网站首页新世纪建设集团有限公司