雲函式 SCF 各個執行時已內建部分常用依賴庫,您可前往各執行時程式碼開發中查詢:
Node。js
、
Python
、
PHP
。但僅有內建依賴庫是不足以滿足使用者的程式碼執行訴求的,在此基礎上,SCF 提供了豐富的依賴安裝方式。我們將分為上下兩篇進行講解,本文將介紹對 Node。js 和 Python 執行時的依賴安裝方法,下篇將為大家介紹 PHP、Java、Go 的依賴安裝方法。
01。 Node。js 執行時
Node。js 執行時支援以下三種依賴庫安裝方法:
1. 依賴庫同程式碼一起打包上傳
透過依賴管理工具,例如 npm,在本地安裝依賴後同函式程式碼一同打包上傳。
打包時函式入口檔案需要在
zip
包的根目錄下。如果打包整個資料夾並上傳
zip
包,則會因解壓後無法在根目錄找到入口檔案而導致函式建立失敗。
本文以安裝
lodash
庫為例:
在本地終端中執行
mkdir test-package
命令,建立一個目錄用於存放函式程式碼和依賴庫。
執行以下命令,在該目錄下安裝
lodash
依賴庫。
cd test-packagenpm install lodash
在該目錄下建立函式入口檔案
index。js
並在程式碼中引用
lodash
庫。
‘use strict’;const _ = require(‘lodash’);exports。main_handler = async (event, context) => { console。log(“Hello World”) console。log(event) console。log(event[“non-exist”]) console。log(context) return event};
將函式程式碼及依賴庫一同壓縮為 zip 包,在
雲函式控制檯
中上傳打包的 zip 包並建立一個新函式。操作步驟如下:
i。 登入
雲函式控制檯
,單擊左側導航欄的【函式服務】。
ii。 在主介面上方選擇期望建立函式的地域,並單擊【新建】,進入函式建立流程。
iii。 在“新建函式”頁面,填寫函式基本資訊。如下圖所示:
建立方式
:選擇使用【自定義建立】來新建函式。
執行環境
:選擇【Node。js12。16】。
提交方法
:選擇【本地上傳zip包】。
單擊【完成】即可建立函式。
2. 線上依賴安裝
Node。js 執行時提供了線上依賴安裝功能,啟用了「線上安裝依賴」後,在每次上傳程式碼之後,雲函式後臺將檢查程式碼包根目錄的
package。json
檔案,並根據
package。json
中的依賴,嘗試使用 npm 工具安裝依賴包。
以安裝
lodash
庫為例:
登入
雲函式控制檯
,單擊左側導航欄的【函式服務】。
選擇左側導航欄【函式服務】,在“函式服務”列表頁面選擇需要線上安裝依賴的函式或單擊【新建】建立一個函式。
選擇【函式程式碼】頁籤,根據您的實際需求修改函式程式碼並新增
package。json
檔案。
package。json
內容以下文為例:
{ “dependencies”: { “lodash”: “4。17。15” }}
在 IDE 程式碼編輯視窗右上角中單擊【
】,在下拉列表中選擇【自動安裝依賴:關閉】以開啟自動安裝依賴,如下圖所示:
單擊【部署】,雲函式後臺會根據
package。json
自動安裝依賴。
? 線上依賴安裝功能目前僅支援
Node。js
執行時,其他執行時敬請期待。
3. 使用 Serverless Web IDE
雲函式線上編輯器
Serverless Web IDE
提供了終端功能,並在終端中內建了包管理工具
npm
。本文以在終端中安裝
lodash
庫為例:
登入
雲函式控制檯
,在左側選擇【函式服務】。
在函式列表中,單擊函式名,進入該函式的詳情頁面。
在“函式管理”頁面中,選擇【函式程式碼】>【程式碼編輯】,檢視並編輯函式。
在 IDE 頂部的選單欄【終端】中選擇【新終端】,開啟終端視窗。
在終端中執行如下命令,安裝依賴庫
lodash
:
cd src # 依賴庫需要安裝在與函式入口檔案同一級的目錄下,即需要進入`src`目錄後再執行依賴安裝操作。npm install lodash
安裝完成後,在 IDE 左側的檔案樹中檢視
package。json
和
node_modules
。
單擊【部署】後依賴庫即可與函式程式碼一同打包上傳到雲端。如下圖所示:
02。 Python 執行時
Python 執行時支援以下兩種依賴庫安裝方法:
1. 依賴庫同程式碼一起打包上傳
透過依賴管理工具,例如 pip,在本地安裝依賴後同函式程式碼一同打包上傳。
打包時函式入口檔案需要在
zip
包的根目錄下。如果打包整個資料夾並上傳
zip
包,則會因解壓後無法在根目錄找到入口檔案而導致函式建立失敗。
由於執行環境不同,可自行將
pip
替換為
pip3
或
pip2
。
函式執行系統為 CentOS 7,您需要在相同環境下進行安裝。若環境不一致,則可能導致上傳後執行時出現無法找到依賴的錯誤。您可參考
雲函式容器映象
進行依賴安裝或使用線上 IDE 進行安裝。
若部分依賴涉及動態連結庫,則需手動複製相關依賴包到依賴安裝目錄後再打包上傳。詳情請參見
使用 Docker 安裝依賴
或使用線上 IDE 進行安裝。
本文以安裝
numpy
庫為例:
在本地終端中執行
mkdir test-package
命令,建立一個目錄用於存放函式程式碼和依賴庫。
執行以下命令,在該目錄下安裝
numpy
依賴庫。
cd test-packagepip install numpy -t 。
在該目錄下建立函式入口檔案
index。py
並在程式碼中引用
numpy
庫。
# -*- coding: utf8 -*-import jsonimport numpydef main_handler(event, context): print(“Received event: ” + json。dumps(event, indent = 2)) print(“Received context: ” + str(context)) print(“Hello world”) return(“Hello World”)
將函式程式碼及依賴庫一同壓縮為 zip 包,在
雲函式控制檯
中上傳打包的 zip 包並建立一個新函式。操作步驟如下:
i。 登入
雲函式控制檯
,單擊左側導航欄的【函式服務】。
ii。 在主介面上方選擇期望建立函式的地域,並單擊【新建】,進入函式建立流程。
iii。 在“新建函式”頁面,填寫函式基本資訊。如下圖所示:
建立方式
:選擇使用【自定義建立】來新建函式。
執行環境
:選擇【Python 3。6】。
提交方法
:選擇【本地上傳zip包】。
單擊【完成】即可建立函式。
2. 使用 Serverless Web IDE
雲函式線上編輯器
Serverless Web IDE
提供了終端功能,並在終端中內建了包管理工具
pip
。本文以在終端中安裝
numpy
庫為例:
登入
雲函式控制檯
,在左側選擇【函式服務】。
在函式列表中,單擊函式名,進入該函式的詳情頁面。
在“函式管理”頁面中,選擇【函式程式碼】>【程式碼編輯】,檢視並編輯函式。
在 IDE 頂部的選單欄【終端】中選擇【新終端】,開啟終端視窗。
在終端中執行如下命令,安裝依賴庫
numpy
:
cd src # 依賴庫需要安裝在與函式入口檔案同一級的目錄下,即需要進入`src`目錄後再執行依賴安裝操作。pip3 install numpy -t 。
安裝完成後,在 IDE 左側的檔案樹中檢視已安裝的依賴庫。
單擊【部署】後依賴庫即可與函式程式碼一同打包上傳到雲端。
您可以使用
pip freeze > requirements。txt
生成本地環境下所有依賴的
requirements。txt
檔案。
在 IDE 的終端中執行
pip3 install -r requirements。txt -t 。
即可根據
requirements。txt
的配置安裝依賴包。
One More Thing
立即體驗騰訊雲 Serverless Demo,領取 Serverless 新使用者禮包
騰訊雲 Serverless 新手體驗
歡迎訪問:
Serverless 中文網
!