检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
方案概述 前提条件 已拥有华为云账号且已实名认证。 华为云账号未欠费,且有足够金额购买本案例所涉及的资源。 已创建OBS桶,用于存放打包好的依赖包文件,更多详情请参见创建桶。 开始使用本案例前请在本地安装好18.15.0版本的Node.js运行环境。 当前华为云函数工作流服务支持的Node
华为云函数工作流(FunctionGraph)Yaml规范 字段解析 表1 参数说明 参数名 必填 类型 参数描述 region True Enum Enum funtion True Struct 函数 trigger False Struct 触发器 Yaml完整配置 华为云
FunctionGraph最佳实践汇总 本文汇总了基于函数工作流服务(FunctionGraph)常见应用场景的操作实践,为每个实践提供详细的方案描述和操作指导,帮助用户轻松构建基于函数工作流的业务。 表1 FunctionGraph最佳实践一览表 最佳实践 说明 使用函数压缩图片
配置网络 访问公网 函数创建成功后,默认具有公网访问权限,即函数可直接访问公网上的服务。函数访问公网上的服务需要固定公网出口IP的场景(例如被访问服务需要白名单验证),可以通过开启VPC,在VPC内配置公网NAT网关绑定EIP的方式实现,具体请参见配置固定公网IP。 访问VPC
开通lts日志上报功能 功能介绍 开通lts日志上报功能。 调用方法 请参见如何调用API。 URI POST /v2/{project_id}/fgs/functions/enable-lts-logs 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String
version publish命令 version publish命令,是用于发布版本的命令。 当执行命令version publish -h/version publish --help时,可以获取帮助文档。 当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考
remove trigger命令 remove trigger命令,是删除指定触发器的命令。 当执行命令remove trigger -h/remove trigger --help时,可以获取帮助文档。 参数解析 表1 参数说明 参数全称 参数缩写 Yaml模式下必填 Cli模式下必填
添加事件源 创建API API分组、自定义认证函数、后端函数均创建成功以后,可以创建API,设置安全认证为自定义认证,并定义后端服务类型为FunctionGraph,步骤如下。 登录APIG控制台,在左侧导航栏选择“API管理 > API列表”,单击右上方的“创建API”。 配置API基本信息,详细如图1、图2所示。
remove function命令 remove function命令,是删除指定函数的命令。默认会把整个函数删除,包含所有的版本、别名以及触发器。 当执行命令remove function -h/remove function --help时,可以获取帮助文档。 参数解析 表1
Yaml文件 字段解析 表1 参数说明 参数 必填 类型 参数描述 region True Enum 地域 function True Struct 函数 triggers False Struct 触发器 Yaml完整配置 华为云函数工作流(FunctionGraph)组件的Yaml字段如下:
创建触发器 功能介绍 创建触发器。 可以创建的触发器类型包括TIMER、APIG、CTS、DDS、DMS、DIS、LTS、OBS、SMN、KAFKA。(当前OBS触发器暂不支持中国站。) DDS和KAFKA触发器创建时默认为DISABLED状态,其他触发器默认为ACTIVE状态。
如何通过版本和别名实现绑定APIG触发器的HTTP函数的灰度升级? 基于latest创建版本V1、V2,创建别名alias绑定对应版本V1,权重100%,为alias创建APIG触发器。 图1 发布新版本V1和V2 图2 创建alias别名并绑定V1版本 图3 在alias下创建触发器
创建函数 登录函数工作流控制台,在左侧导航栏选择“总览”,单击“创建函数”进入创建函数界面。 选择“创建空白函数”,在创建函数界面配置如下信息:函数类型选择“事件函数”、输入您自定义的函数名称,此处以“access-redis-demo”为例,选择运行时“Python3.9”,最后单击创建函数。
准备 创建IoTDA 转发规则前,需要先创建IoTDA实例,在正常的使用中还需要创建产品,设备。在本案例中我们只测试,只需要先创建IoTDA 实例。 创建IoTDA IoT实例 登录IoTDA控制台,左侧导航栏选择“IoTDA实例”,进入选择界面。 在“IoTDA实例”界面右侧,单击“购买实例
准备 创建函数前,需要创建1个OBS桶,用来保存用户上传的图片。 OBS桶创建以后,需要创建“委托”,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到OBS资源。 创建OBS桶 上传图片的源桶和函数必须处于同一个区域下。 操作步骤 在服务控制台左侧导航栏,选择“存储
使用API模式 通过Serverless应用中心和管理中台部署的Stable-Diffusion应用默认未开启API访问,您可以通过配置函数环境变量的方式开启,请参考配置环境变量为Stable-Diffusion函数配置如下环境变量并保存。 表1 环境变量 Key Value EXTRA_ARGS
创建委托 使用华为云Serverless应用中心部署Stable-Diffusion WebUI应用需要FunctionGraph服务与其他云服务协同工作,因此需要通过配置委托给FunctionGraph授权必要的云服务资源的操作权限,且委托授权的生效需要15-30分钟才能生效,所以强烈建议您提前创建委托。
alias publish命令 alias publish命令,是对别名进行发布和更新的命令。 当执行命令alias publish -h/alias publish --help时,可以获取帮助文档。 参数解析 表1 参数说明 参数全称 参数缩写 Yaml模式下必填 Cli模式下必填
项目迁移fun2s fun2s 命令是将函数的配置信息转换成 Serverless Devs 所识别的 s.yaml的命令。 命令解析 参数解析 操作案例 命令解析 当执行命令fun2s -h/fun2s --help时,可以获取帮助文档。 参数解析 表1 参数说明 参数全称 参数缩写
开发事件函数 函数定义 建议使用Node.js 12.13版本。 Node.js 6.10函数定义 Node.js6.10 函数的接口定义如下所示。 export.handler = function(event, context, callback) 入口函数名(handler):入口函数名称,