赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 函数计算 FC 3.0
  4. 操作指南
  5. 代码开发
  6. Node.js
  7. 部署代码包

部署代码包

  • Node.js
  • 发布于 2025-04-16
  • 0 次阅读
文档编辑
文档编辑

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

准备工作

  1. 创建一个用于测试的代码目录,如mycode。

    • Linux或macOS系统

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

    • Windows系统

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

  2. 在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安装依赖并部署代码

前提条件

  • 您的本机已安装npm,且具有执行npm命令的权限。

  • 您已在函数计算控制台创建Node.js函数。具体操作,请参见创建事件函数。

操作步骤

  1. 在mycode目录下执行npm install node-emoji安装emoji依赖库到当前目录。

  2. 打包mycode目录下的所有文件。

    • Linux或macOS系统

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

      说明

      请确保您具有该目录的读写权限。

    • Windows系统

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

    说明

    请确保您创建的index.js文件位于包的根目录。

  3. 在函数计算控制台找到目标函数,然后在函数详情页面的右上角,单击上传代码上传您上一步打包的ZIP包。

    上传完成后,您可以在代码页签,单击测试函数验证代码正确性。

重要

由于函数计算的运行环境是Linux系统,您在Windows系统或macOS系统安装emoji依赖库时如果带有二进制文件,会导致您的代码包上传到函数计算后运行失败。因此,建议您使用WebIDE打包函数第三方依赖或者使用Serverless devs工具安装依赖并部署项目。

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

前提条件

  • 安装Serverless Devs工具及依赖

  • 配置Serverless Devs

操作步骤

  1. 执行cd /tmp/mycode进入mycode目录。

  2. 新增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
  3. 新增package.json文件。

    编写文件内容如下。

    {
      "dependencies": {
        "node-emoji": "^1.11.0"
      }
    }
  4. 执行sudo s build --use-docker安装依赖。

    执行完成后,会在mycode目录下生成一个.s目录,依赖被安装到.s/build/artifacts/{functionName}目录下。

  5. 执行sudo s deploy部署项目。

    执行完成后,即可部署函数到函数计算。

更多信息

如果您的代码包过大,可以将依赖分离出来,构建层挂载,上传的代码只保留业务代码即可。具体操作,请参见以下文档。

  • 通过控制台创建自定义层

  • 通过控制台配置官方公共层

相关文章

请求处理程序(Handler) 2025-04-16 14:38

您可以使用Node.js请求处理程序响应接收到的事件并执行相应的业务逻辑。本文介绍Node.js请求处理程序的相关概念、结构特点和示例。 什么是请求处理程序

上下文 2025-04-16 14:38

本文介绍在函数计算中使用Node.js运行时开发代码时,所涉及的Context(上下文)的相关概念。

部署代码包 2025-04-16 14:38

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

日志 2025-04-16 14:38

您可以在Node.js运行环境中打印和查看日志,通过日志快速定位问题或分析日志了解函数执行过程和耗时等,提升系统的可靠性和稳定性。 打印日志 函数往标准输出stdout打印的日志内容会被收集到创建服务时指定的Logstore中,您可以使用如下几种方式打印日志至标准输

错误处理 2025-04-16 14:38

本文介绍Node.js运行环境的错误处理相关内容。 错误类型 捕获异常 如果函数在执行过程中抛出异常,函数计算会捕获到错误,并生成一个包含错误信息、类型和堆栈信息的JSON格式的数据,示例如下所示。

函数实例生命周期回调方法 2025-04-16 14:38

当您实现并配置函数实例生命周期回调后,函数计算将在相关实例生命周期事件发生时调用对应的回调程序。当前,Node.js运行时支持Initializer和PreStop函数实例生命周期回调。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号