检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
开发Go函数 登录已经安装了Go 1.x SDK的linux服务器。
请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。
创建csharp函数时,需要定义某个类中的方法作为函数执行入口,该方法可以通过定义IFunctionContext类型的参数来访问当前执行函数的信息。
简化运维,用户只需开通相关云服务并在函数服务中编写业务逻辑,无需配置或管理服务器,专注于业务创新。业务爆发时可以自动调度资源运行更多函数实例以满足处理需求。 按需计费,只有对函数执行的时间及各智能服务处理进行计费,无需购买冗余的资源用于非峰值处理。
配置函数的触发器 FunctionGraph支持的触发事件 使用TIMER定时触发器 使用APIG专享版触发器 使用APIG共享版触发器 使用APIC触发器 使用CTS触发器 使用DDS触发器 使用DIS触发器 使用Kafka触发器 使用开源Kafka触发器 使用RabbitMQ触发器
函数流组件配置说明 配置函数流的EG服务组件 配置函数流的函数服务组件 配置函数流的子流程控制器组件 配置函数流的并行分支控制器组件 配置函数流的开始控制器组件 配置函数流的异常处理控制器组件 配置函数流的循环控制器组件 配置函数流的时间等待控制器组件 配置函数流的服务控制器组件
登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,进入函数列表界面。 单击“创建函数”,进入创建函数流程。 选择“创建空白函数”,填写函数配置信息。 输入基础配置信息,完成后单击“创建函数”。 函数类型:事件函数。
link String 函数代码链接。
FunctionGraph支持的编程语言说明 FunctionGraph支持多种运行时语言,包括Python 、Node.js、Java、Go、C#、PHP、Cangjie及自定义运行时等,不同语言所支持的版本有所差异。 表1 运行时语言 支持版本 开发指导 Node.js 6.10
登录函数工作流控制台,单击函数名称进入函数详情页,单击右上方操作栏下的“导出函数”,继续单击“导出函数代码”。 通过导出函数API接口获取函数代码。 父主题: 创建函数
案例概述 场景介绍 MetaERP业务场景进行微服务Serverless化改造,如图1所示,将低频使用但资源占用大的微服务逻辑,拆分成独立函数,常驻实例缩容到0;剩余微服务逻辑以Spring兼容方式进行函数化,实现函数化后的微服务快速冷启动和弹性,常驻实例减半。
CTS支持的FunctionGraph操作列表 云审计支持的FunctionGraph操作列表如表1所示。 表1 云审计服务支持的FunctionGraph操作列表 操作名称 资源类型 事件名称 创建函数 Functions createFunction 删除函数 Functions
在函数中引入动态链接库 在函数中引入动态链接库的方式如下: 函数运行环境中已经默认将代码根目录和根目录下的lib目录加入到LD_LIBRARY_PATH中,只需要将动态链接库放到此处即可。 在代码中直接修改LD_LIBRARY_PATH环境变量。
fgs_func_qos_limit:用户函数实例数配额 unit String 资源的计数单位。
实际业务中,用户可根据需要修改代码保存数据到对象存储OBS、日志服务LTS等云服务或直接处理。 图3 查看日志 父主题: 操作流程
实现流程 在IoTDA创建IoTDA实例(测试时可以创建标准版免费体验)。 在FunctionGraph创建函数。 在IoTDA设置转发规则或者在FunctionGraph创建IoT触发器。 在IoTDA转发规则发送测试消息。
new_config.get('strategyConfig', None) if strategy_config is not None: concurrency = strategy_config.get('concurrency', None) # 单实例并发数
description: additionalVersionWeight: createdTime: 2021-11-08T06:51:36Z lastModifiedTime: 2021-11-08T06:51:36Z 如果需要对别名进行升级
③API和云产品事件源触发函数执行 通过RESTful API或者云产品事件源触发函数执行,生成函数实例,实现业务功能。 ④弹性执行 函数在执行过程中,会根据请求量弹性扩容,支持请求峰值的执行,此过程用户无需配置,由FunctionGraph完成,并发数限制请参考约束与限制。
可选,用户可以自定义函数初始化时(接收请求之前)需要进行的操作。一个例子: public void initFunction(Context context) { // 业务自身逻辑,可以去远程拉取一些配置数据等 } 配置初始化入口:包名.类名.方法名,如图17所示。