本文以安装第三方依赖emoji为例,介绍如何为您的Node.js代码安装依赖,打包并部署代码至函数计算。
准备工作
创建一个用于测试的代码目录,如
mycode
。Linux或macOS系统
您可以执行
mkdir -p /tmp/mycode
创建。Windows系统
在任意位置新建文件夹,并将其命名为
mycode
即可。
在mycode目录下,建立
index.mjs
或者index.js
代码文件。代码示例如下。
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: 3.0.0 name: fcDeployApp access: "default" vars: # 全局变量 region: "cn-hangzhou" resources: hello_world: component: fc3 # 组件名称 props: region: ${vars.region} # 关于变量的使用方法,可以参考:https://docs.serverless-devs.com/serverless-devs/yaml#%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC functionName: "emoji" description: 'this is emoji' runtime: "nodejs18" code: ./ handler: index.handler memorySize: 128 timeout: 30
新增
package.json
文件。编写文件内容如下。
{ "dependencies": { "node-emoji": "^1.11.0" } }
执行
sudo s build --use-docker
安装依赖。执行完成后,会在
mycode
目录下生成一个.s
目录,依赖被安装到.s/build/artifacts/{functionName}
目录下。执行
sudo s deploy
部署项目。执行完成后,即可部署函数到函数计算。
更多信息
如果您的代码包过大,可以将依赖分离出来,构建层挂载,上传的代码只保留业务代码即可。具体操作,请参见以下文档。