检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
函数初始化入口Initializer 概述 Initializer是函数的初始化逻辑入口,不同于请求处理逻辑入口的handler,在有函数初始化的需求场景中,设置了Initializer后,FunctionGraph首先调用initializer完成函数的初始化,之后再调用handler
使用TIMER定时触发器 本节介绍创建定时触发器,按照设置的频率,定期触发函数运行,供用户了解定时触发器的使用方法。 本节介绍如何使用函数工作流控制台创建定时触发器,按照设置的频率,定期触发函数运行。 关于定时触发器事件源的具体介绍,请参见支持的事件源。 前提条件 已创建函数,创建过程请参见创建函数
") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder().
") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder().
APIG网关事件 华为云函数工作流可以通过API网关(APIG)创建基于函数的API终端节点。 要创建HTTP终端节点作为华为云函数工作流的事件源,请使用http事件语法。 HTTP终端节点 此设置指定当有人通过GET请求访问函数API终端节点时,应运行first函数。您可以在部署服务后运行
准备 该场景涉及微服务与后端服务的调用,因此需要提前准备好对应的后端服务。用户可以使用自己搭建的后端服务,也可以使用华为云提供的云服务。 若后端服务需要通过虚拟私有云(VPC)访问,函数需要进行额外配置,若可以通过公网访问后端服务,可以跳过以下步骤2和步骤3。 创建Java函数(按照业务划分
") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder().
案例概述 场景介绍 MetaERP业务场景进行微服务Serverless化改造,如图1所示,将低频使用但资源占用大的微服务逻辑,拆分成独立函数,常驻实例缩容到0;剩余微服务逻辑以Spring兼容方式进行函数化,实现函数化后的微服务快速冷启动和弹性,常驻实例减半。 图1 MFA Serverless
构建程序 通过Web托管方式改造微服务。改造过程中,如果微服务是基于spring框架,则需要使用FunctionGraph提供的SDK,即在pom.xml文件中添加步骤1中依赖。此时,您只需修改配置以及打包方式即可将微服务改造成serverless函数。具体操作步骤如下: 配置微服务依赖
") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder().
添加事件源 添加APIG触发器(每个函数分别创建触发器),通过HTTP请求调用函数。 填写API名称,选择分组、发布环境、认证、请求协议、超时时间等配置,单击”确定”完成触发器创建,如图1所示。 图1 创建触发器 创建后可以获得一个调用URL,通过这个URL进行函数的调用,如图2所示
function字段介绍 function字段 表1 function字段说明 参数名 必填 类型 参数描述 functionName True String 函数名称 handler True String 函数执行入口,规则:xx.xx,必须包含“.” runtime True
华为云函数工作流(FunctionGraph)Yaml规范 字段解析 表1 参数说明 参数名 必填 类型 参数描述 region True Enum Enum funtion True Struct 函数 trigger False Struct 触发器 Yaml完整配置 华为云函数工作流
") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder().
") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder().
测试函数 测试托管方式改造函数,调用方法如图1所示。 图1 测试函数调用的方法 调用时,遵循原来的请求方法。 请求url为添加事件源创建的APIG触发器地址。 需要在headers里配置requestPath,值为图1中的@Path(可能会包含一些服务前缀,对应微服务改造之前的请求
您可以通过 EXTENSION_API_ADDR 环境变量得到FunctionGraph平台开放的提供注册的扩展API地址,例如对于Python,EXTENSION API 的获取方式为os.getenv("EXTENSION_API_ADDR ")。
") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder().
") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder().
") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder().