检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Node.js语言 √表示支持,×表示不支持 语言版本 是否支持 开发指导 Node.js 6.10 √ 接口定义、有关SDK接口说明和函数开发指导请参见Node.js函数开发指南。 Node.js 8.10 √ Node.js 10.16 √ Node.js 12.13 √ Node
创建Next.js项目 本案例以Next.js框架的默认demo为例演示部署过程,需要在Linux环境中创建一个全新的Next.js项目,本案例采用本地运行Docker node:18.15.0镜像的方式,同样适用于其他Linux系统。关于Docker镜像和Linux操作系统的使用并非本案例主要内容,不做过多赘述。
Node.js 开发事件函数 开发HTTP函数 nodejs模板 制作依赖包
资产识别与管理 在函数的环境变量中,若有敏感信息例如账号和密码、Ak/Sk等,建议通过配置加密环境变量。不配置加密环境变量,则会在界面或API返回结果中明文展示。 在使用触发器、配置VPC访问、使用自定义镜像、挂载SFS等场景下,FunctionGraph需要与其他云服务协同工作
js中定义的handler函数。 Node.js 8.10、Node.js 10.16、Node.js 12.13、Node.js14.18、Node.js16.17、Node.js18.15函数定义 Node.js 8.10、Node.js 10.16、Node.js 12.13、Node.js14.18、Node
华为云账号未欠费,且有足够金额购买本案例所涉及的资源。 已创建OBS桶,用于存放打包好的依赖包文件,更多详情请参见创建桶。 开始使用本案例前请在本地安装好18.15.0版本的Node.js运行环境。 当前华为云函数工作流服务支持的Node.js运行时最高版本为18.15.0、Next.js支持最高版本为13
目代码存放路径/opt/function/code。 index.js:项目入口文件,可自定义名称。 目前支持的Nodejs语言和对应的路径请参见表1。 表1 Nodejs语言对应路径 语言 路径 Node.js6 /opt/function/runtime/nodejs6.10
Node.js SDK使用范例 以同步执行函数为例,提供封装后的SDK。为了保证您成功使用以下示例代码,您需要先添加对应语言的SDK依赖。 表1 Node.js SDK信息说明 SDK信息 说明 安装 npm i @huaweicloud/huaweicloud-sdk-functiongraph
在Nextjs-app函数详情页面,选择“设置 > 触发器”,复制APIG触发器的调用URL。 图1 复制APIG触发器URL 在浏览器中打开URL,即可看到如图2页面。 图2 返回结果 父主题: 通过FunctionGraph部署Next.js项目
通过FunctionGraph部署Next.js项目 方案概述 创建Next.js项目 创建依赖包 构建程序 处理结果
区域:选择“华东-上海一”。 函数名称:输入您自定义的函数名称,此处以“Nextjs-app”为例。 其他参数保持默认即可。 函数创建完成后进入详情页面,选择“代码”页签,选择“上传自 > Zip文件”。 图1 上传zip文件 选择之前打包的“nextjs-func-code.zip”文件,然后单击“确定”。
0环境中进行。使用其他系统打包可能会因为底层依赖库的原因,运行出问题,比如找不到动态链接库。 如果安装的依赖模块需要添加依赖库,请将依赖库归档到zip依赖包文件中,例如,添加.dll、.so、.a等依赖库。 请参考依赖包管理,了解更多。 为Nodejs函数制作依赖包 需要先保证环境中已经安装了对应版本的Nodejs。
'body': JSON.stringify(event), } return output; } 父主题: Node.js
如果您使用的是Linux操作系统,可以将项目中的package.json文件复制到windows系统的任意目录中,后续操作一致)。 图1 删除node_modules 在项目目录中执行依赖安装命令。 npm install --save 图2 依赖包执行安装 将新生成的“node
Serverless是一个Node.js CLI工具,因此您需要先在计算机上安装Node.js。 请访问Node.js官方网站,下载并按照安装说明在本地计算机上安装Node.js。 您可以通过在终端中运行node --version来验证Node.js是否安装成功,即可以看到打印出来的对应Node.js版本号。
构建高可用,自动伸缩的Web/移动应用后端。比如小程序、网页/App、聊天机器人、BFF等。 其优势有: 高可用,利用OBS,Cloud Table的高可用性实现网站数据的高可靠性,利用API Gateway和FunctionGraph的高可用性实现网站逻辑的高可用。 灵活扩展,
性能更优的代码。 用户函数代码更新时,系统能够保证用户函数的平滑升级,规避应用层初始化冷启动带来的性能损耗。新的函数实例启动后能够自动执行用户的初始化逻辑,在初始化完成后再处理请求。 在应用负载上升,需要增加更多函数实例时,系统能够识别函数应用层初始化的开销,更准确的计算资源伸
更新serverless.yml。 更新项目serverless.yml中的region和credentials。 部署。 使用如下命令的场景为首次部署服务,以及在更改serverless.yml中的函数、事件或资源之后,希望同时部署服务中的所有更改。该命令详情请参考Deploy命令。 serverless
hello: world runtime runtime 目前支持如下: Node.js14.18、Node.js12.13、Node.js10.16、Node.js8.10、Node.js6、Node.js4.4 Python3.9、Python3.6、Python2.7 Java11、Java8
函数工作流的常见使用场景? Web类应用:比如小程序、网页/App、聊天机器人、BFF等。 事件驱动类应用:文件处理、图片处理、视频直播/转码、实时数据流处理、IoT规则/事件处理等。 AI类应用:三方服务集成、AI推理、车牌识别。 具体请参考应用场景。 父主题: 通用问题