本文以安裝第三方依賴emoji為例,介紹如何為您的Node.js代碼安裝依賴,打包并部署代碼至函數計算。
準備工作
創建一個用于測試的代碼目錄,如
mycode
。Linux或macOS系統
您可以執行
mkdir -p /tmp/mycode
創建。Windows系統
在任意位置新建文件夾,并將其命名為
mycode
即可。
在
mycode
目錄下,創建index.js
或index.mjs文件。代碼示例如下。
ES模塊
說明此示例僅支持運行在Node.js 18及以上版本的運行時環境。
// index.mjs 'use strict'; import * as emoji from 'node-emoji' export const handler = async (event, context) => { console.log('hello world'); return emoji.get(':unicorn:'); }
CommonJS模塊
// index.js 'use strict'; var emoji = require('node-emoji') exports.handler = (event, context, callback) => { console.log('hello world'); callback(null, emoji.get(':unicorn:');); }
使用npm安裝依賴并部署代碼
前提條件
操作步驟
在
mycode
目錄下執行npm install node-emoji
安裝emoji依賴庫到當前目錄。打包
mycode
目錄下的所有文件。Linux或macOS系統
進入
mycode
目錄,執行zip code.zip -r ./*
。說明請確保您具有該目錄的讀寫權限。
Windows系統
進入
mycode
目錄,選中所有文件,單擊鼠標右鍵,選擇打包為ZIP包。
說明請確保您創建的
index.js
文件位于包的根目錄。在函數計算控制臺找到目標函數,然后在函數詳情頁面的右上角,單擊上傳代碼上傳您上一步打包的ZIP包。
由于函數計算的運行環境是Linux系統,您在Windows系統或macOS系統安裝emoji依賴庫時如果帶有二進制文件,會導致您的代碼包上傳到函數計算后運行失敗。因此,建議您使用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: nodejs14 codeUri: ./ handler: index.handler memorySize: 128 timeout: 6
新增
package.json
文件。編寫文件內容如下。
{ "dependencies": { "node-emoji": "^1.11.0" } }
執行
sudo s build --use-docker
安裝依賴。執行完成后,會在
mycode
目錄下生成一個.s
目錄,依賴被安裝到.s/build/artifacts/{serviceName}/{functionName}
目錄下。執行
sudo s deploy
部署項目。執行完成后,即可部署函數到函數計算。
更多信息
您也可以使用函數計算的層功能安裝依賴,推薦您使用官方公共層或在線構建依賴層。具體操作,請參見以下文檔。