一文讀懂雲函式 SCF 如何進行依賴安裝?

雲函式 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。 在“新建函式”頁面,填寫函式基本資訊。如下圖所示:

一文讀懂雲函式 SCF 如何進行依賴安裝?

建立方式

:選擇使用【自定義建立】來新建函式。

執行環境

:選擇【Node。js12。16】。

提交方法

:選擇【本地上傳zip包】。

單擊【完成】即可建立函式。

2. 線上依賴安裝

Node。js 執行時提供了線上依賴安裝功能,啟用了「線上安裝依賴」後,在每次上傳程式碼之後,雲函式後臺將檢查程式碼包根目錄的

package。json

檔案,並根據

package。json

中的依賴,嘗試使用 npm 工具安裝依賴包。

以安裝

lodash

庫為例:

登入

雲函式控制檯

,單擊左側導航欄的【函式服務】。

選擇左側導航欄【函式服務】,在“函式服務”列表頁面選擇需要線上安裝依賴的函式或單擊【新建】建立一個函式。

選擇【函式程式碼】頁籤,根據您的實際需求修改函式程式碼並新增

package。json

檔案。

package。json

內容以下文為例:

{ “dependencies”: { “lodash”: “4。17。15” }}

在 IDE 程式碼編輯視窗右上角中單擊【

一文讀懂雲函式 SCF 如何進行依賴安裝?

】,在下拉列表中選擇【自動安裝依賴:關閉】以開啟自動安裝依賴,如下圖所示:

一文讀懂雲函式 SCF 如何進行依賴安裝?

單擊【部署】,雲函式後臺會根據

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

單擊【部署】後依賴庫即可與函式程式碼一同打包上傳到雲端。如下圖所示:

一文讀懂雲函式 SCF 如何進行依賴安裝?

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。 在“新建函式”頁面,填寫函式基本資訊。如下圖所示:

一文讀懂雲函式 SCF 如何進行依賴安裝?

建立方式

:選擇使用【自定義建立】來新建函式。

執行環境

:選擇【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 中文網