本文以安装第三方依赖emoji为例,介绍如何为您的Node.js代码安装依赖,打包并部署代码至函数计算

准备工作

  1. 创建一个用于测试的代码目录,如mycode
    • Linux或macOS系统

      您可以执行mkdir -p /tmp/mycode创建。

    • Windows系统

      在任意位置新建文件夹,并将其命名为mycode即可。

  2. mycode目录下,建立index.js文件。
    文件内容如下。
    'use strict';
    var emoji = require('node-emoji')
    
    exports.handler = (event, context, callback) => {
      console.log('hello world');
      callback(null, emoji.get('thumbsup'));
    }

使用npm安装依赖并部署代码

前提条件

操作步骤

  1. mycode目录下执行npm install node-emoji -t .安装emoji依赖库到当前目录。
  2. 打包mycode目录下所有文件。
    • Linux或macOS系统

      进入mycode目录,执行zip code.zip -r ./*

      说明 请确保您具有该目录的读写权限。
    • Windows系统

      进入mycode目录,选中所有文件,单击鼠标右键,选择打包为ZIP包。

    说明 请确保您创建的index.js文件位于包的根目录。
  3. 函数计算控制台找到目标函数,然后在函数详情页面的右上角,单击上传代码上传您上一步打包的ZIP包。
注意 由于函数计算的运行环境是Linux系统,您在Windows系统或macOS系统上安装emoji依赖库时如果带有二进制文件,会导致您的代码包上传到函数计算后运行失败。此时,建议您使用Serverless devs工具安装依赖并部署项目

使用Serverless devs工具安装依赖并部署项目

前提条件

操作步骤

  1. 执行cd /tmp/mycode进入mycode目录。
  2. 新增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
  3. 新增package.json文件。
    编写文件内容如下。
    {
      "dependencies": {
        "node-emoji": "^1.11.0"
      }
    }
  4. 执行s build --use-docker安装依赖。
    执行完成后,会在mycode目录下生成一个.s目录,依赖被安装到.s/build/artifacts/{serviceName}/{functionName}目录下。
  5. 执行s deploy部署项目。
    执行完成后,即可部署函数到函数计算

更多信息

您也可以使用函数计算的层功能安装依赖。具体操作,请参见构建层