本文以安裝第三方依賴emoji為例,介紹如何為您的Python代碼安裝依賴,打包並部署代碼至Function Compute。
準備工作
- 建立一個用於測試的代碼目錄,如
mycode
。- Linux或macOS系統
您可以執行
mkdir -p /tmp/mycode
建立。 - Windows系統
在任意位置建立檔案夾,並將其命名為
mycode
即可。
- Linux或macOS系統
- 在
mycode
目錄下,建立index.py
檔案。檔案內容如下。from emoji import emojize def handler(event, context): return emojize(":thumbs_up:")
使用pip安裝依賴並部署代碼
前提條件
- 您的本機已安裝Python 3,且具有執行pip3的許可權。
- 您已在Function Compute控制台建立Python函數。具體操作,請參見建立函數。
操作步驟
- 在
mycode
目錄下執行pip3 install emoji -t .
安裝emoji依賴庫到目前的目錄。 - 打包
mycode
目錄下所有檔案。- Linux或macOS系統
進入
mycode
目錄,執行zip code.zip -r ./*
。請確保您具有該目錄的讀寫權限。 - Windows系統
進入
mycode
目錄,選中所有檔案,單擊滑鼠右鍵,選擇打包為ZIP包。
- Linux或macOS系統
- 在Function Compute控制台找到目標函數,然後在函數詳情頁面的右上方,單擊上傳代碼上傳您上一步打包的ZIP包。
由於Function Compute的運行環境是Linux系統,您在Windows系統或macOS系統安裝emoji依賴庫時如果帶有二進位檔案,會導致您的程式碼封裝上傳到Function Compute後運行失敗。因此,建議您使用WebIDE打包函數第三方依賴或者使用Serverless Devs工具安裝依賴並部署專案。
使用Serverless Devs工具安裝依賴並部署專案
前提條件
操作步驟
- 執行
cd /tmp/mycode
進入mycode
目錄。 - 新增
s.yaml
檔案。編寫檔案內容樣本如下。edition: 1.0.0 # 命令列YAML規範版本,遵循語義化版本(Semantic Versioning)規範 name: fcDeployApp # 專案名稱 access: "default" # 密鑰別名 services: fc-deploy-test: # 服務名稱 component: fc # 組件名稱 props: # 組件的屬性值 region: cn-shanghai service: name: fctest description: 'test' internetAccess: true function: name: emoji description: this is a emoji runtime: python3 codeUri: ./ handler: index.handler memorySize: 128 timeout: 6
- 新增
requirements.txt
檔案。編寫檔案內容如下:emoji==2.0.0
- 執行
sudo s build --use-docker
安裝依賴。執行完成後,會在mycode
目錄下產生一個.s
目錄,依賴被安裝到.s/build/artifacts/{serviceName}/{functionName}
目錄下。 - 執行
sudo s deploy
部署專案。執行完成後,即可部署函數到Function Compute。
更多資訊
您也可以使用Function Compute的層功能安裝依賴,推薦您使用官方公用層或線上構建依賴層。具體操作,請參見以下文檔。