日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

函数运行环境系统动态链接库版本太低?函数计算 fun 神助力分忧解难

發布時間:2024/8/23 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 函数运行环境系统动态链接库版本太低?函数计算 fun 神助力分忧解难 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

最近在處理線上工單的時候,遇到一個用戶使用 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 環境中的支持情況:

root@1fe79eb58dbd:/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::Service'Properties:Description: 'fc test'helloworld: # function nameType: 'Aliyun::Serverless::Function'Properties: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/libstdc++6_6.3.0-18+deb9u1_amd64.deb -o /code/.fun/tmp/archives/libstdc++6_6.3.0-18+deb9u1_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 都能夠自動幫你設置第三方庫的依賴引用路徑,讓您無需關心環境變量問題。

本文的解法只是提供了一個對于系統版本偏低無法滿足用戶一些高級庫使用需求時的簡單繞行方案,僅供參考,對于一些復雜的環境依賴問題,可能還需要具體情況具體分析。


原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。

總結

以上是生活随笔為你收集整理的函数运行环境系统动态链接库版本太低?函数计算 fun 神助力分忧解难的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品一区二区免费在线观看 | a级无遮挡超级高清-在线观看 | 少妇av一区 | 国产盗摄av| 天堂av中文在线 | 日韩精品视频久久 | 国产福利精品在线观看 | 超碰在线国产 | 亚洲成熟毛多妇女av毛片 | 成人日批 | 国产精品51麻豆cm传媒 | 国产区欧美区日韩区 | 性饥渴的农村熟妇 | 久久久亚洲av波多野结衣 | 九九九九九精品 | 在线观看日韩欧美 | 久久影院午夜理论片无码 | 女优在线观看 | 手机成人在线视频 | 在线观看视频亚洲 | 老司机精品视频在线播放 | 国产亚洲视频在线 | 美女污软件 | 久久99精品久久久久婷婷 | 国产奶水涨喷在线播放 | 欧美日韩久久久久久 | 一区二区三区免费看视频 | 欧美在线一区二区三区四区 | 一区二区三区免费观看视频 | 在线观看jizz | 黄色网址你懂得 | 91麻豆网 | 好吊色在线视频 | 精品一区二区视频 | 亚洲操片 | 午夜精品久久久久久 | 亚洲国产日韩a在线播放性色 | 亚洲综人网 | 成人免费黄色小视频 | 热久久免费视频 | 五月婷婷狠狠干 | 午夜理伦三级理论 | 成年人视频在线免费看 | 综合狠狠开心 | 国内福利视频 | 欧美日韩色 | 91看片免费版 | 日韩欧美亚洲一区二区 | 麻豆福利影院 | 日本人做受免费视频 | 制服丝袜第二页 | 中文字幕在线观看三区 | 大香依人| 欧美图片一区二区三区 | 色综合成人| 免费网站在线高清观看 | 日本啪啪动态图 | 欧亚成人av| 国产一区二区视频播放 | 日韩免费专区 | 国产精品日 | 亚洲第一成人在线 | 亚洲人成网站999久久久综合 | 欧美 日韩 国产 成人 在线 | 中文字幕在线观看第二页 | 国产精品精华液网站 | 亚洲色综合 | 新天堂av | 都市激情自拍 | 91精品免费 | 精品黑人一区二区三区久久 | 91午夜精品亚洲一区二区三区 | 久久久久久久久久久久久女过产乱 | 久草最新网址 | 777理伦三级做爰 | 三级福利片 | 少妇紧身牛仔裤裤啪啪 | 黄色av网页 | 国产吞精囗交免费视频网站 | 久久久一二三四 | 久久久亚洲国产精品 | 亚洲精品中文字幕在线观看 | 欧美在线色视频 | 国产精品久久久久久在线观看 | a免费在线 | 91丨porny丨国产 | 国产综合精品一区二区三区 | 手机在线免费视频 | 加勒比视频在线观看 | 91大片在线观看 | 欧美亚洲一区二区在线观看 | 亚洲精品毛片av | 欧美一区二区三区网站 | 午夜在线不卡 | 暖暖日本视频 | 日韩美女三级 | 91色伦| 视频1区| 婷婷伊人五月 |