检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
案例概述 场景介绍 MetaERP业务场景进行微服务Serverless化改造,如图1所示,将低频使用但资源占用大的微服务逻辑,拆分成独立函数,常驻实例缩容到0;剩余微服务逻辑以Spring兼容方式进行函数化,实现函数化后的微服务快速冷启动和弹性,常驻实例减半。 图1 MFA Serverless改造前后架构
构建程序 通过Web托管方式改造微服务。改造过程中,如果微服务是基于spring框架,则需要使用FunctionGraph提供的SDK,即在pom.xml文件中添加步骤1中依赖。此时,您只需修改配置以及打包方式即可将微服务改造成serverless函数。具体操作步骤如下: 配置微服务依赖。
function (event, context) { } event 如果函数由指定的APIG事件触发,则传递给执行入口的event如下: // JSON.parse(event) { events: { "body": "", "requestContext": {
常规设置”重新设置函数执行时间,在原基础上增加超时时间。 支持的依赖库说明 FunctionGraph支持引入标准库及第三方依赖库。 标准库 对于标准库,无论是在线编辑或是线下开发打包上传至FunctionGraph,均可以直接在代码中引入,使用其功能。 FunctionGraph支持的非标准库 Fu
添加事件源 添加APIG触发器(每个函数分别创建触发器),通过HTTP请求调用函数。 填写API名称,选择分组、发布环境、认证、请求协议、超时时间等配置,单击”确定”完成触发器创建,如图1所示。 图1 创建触发器 创建后可以获得一个调用URL,通过这个URL进行函数的调用,如图2所示。
创建函数 创建一个运行时语言为Python 2.7版本的函数,代码示例如下: # -*- coding:utf-8 -*- import json import os def handler(event, context): os.system("curl -iv www
测试函数 测试托管方式改造函数,调用方法如图1所示。 图1 测试函数调用的方法 调用时,遵循原来的请求方法。 请求url为添加事件源创建的APIG触发器地址。 需要在headers里配置requestPath,值为图1中的@Path(可能会包含一些服务前缀,对应微服务改造之前的请求Path即可),如图2所示。
部署环境准备 本章节以Linux主机为例,指导您基于KooCLI和软件开发生产线CodeArts搭建一套FunctionGraph函数的CI/CD。 云服务器ECS 该服务器作为CodeArts部署任务的部署主机,用于部署更新FunctionGraph函数。 规格:1vCPUs |
使用CodeArts托管函数代码 步骤一:新建项目 步骤二:函数代码托管 步骤三:配置部署主机 步骤四:搭建函数部署脚本更新流水线 步骤五:搭建函数更新流水线 父主题: 自动化部署
FunctionGraph: 通知到函数服务。 枚举值: OBS SMN DIS FunctionGraph param 否 String 通知目标服务对应参数,json字符串。 OBS:包含bucket桶,对象目录前缀prefix,对象默认expires过期时间[0~365]天,0默认不过期。 SMN:包含smn
件满足设置时,触发函数执行。 使用流程 如何使用FunctionGraph 构建并触发函数 函数编程模型 创建程序包 构建函数 配置函数 在线调试 配置触发器 调用函数 查看函数日志 开发指南 Node.js Python Java Go C# PHP 常见问题 了解更多常见问题、案例和解决方案
添加依赖包 各个依赖包和代码包之间尽量不要有相同的目录或文件,比如依赖包depends.zip,里面有index.py这个文件,如果代码采用在线编辑方式,函数执行入口为index.handler,这样在函数执行的时候会产生一个代码文件index.py,跟依赖包里面的index.py
支持使用已有模板或空模板。 发布区域:所有部署函数工作流服务的区域均可使用。 创建程序包 创建并初始化函数 函数管理 函数创建完成后,支持在线编辑函数,修改函数代码,修改函数配置等功能。 发布区域:所有部署函数工作流服务的区域均可使用。 环境变量 支持设置函数的加密配置和环境变量
cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud
在开始使用之前,请确保您安装的是最新版本的SDK。使用过时的版本可能会导致兼容性问题或无法使用最新功能。您可以在SDK中心查询版本信息。 在线生成SDK代码 API Explorer能根据需要动态生成SDK代码功能,降低您使用SDK的难度,推荐使用。 SDK列表 表1提供了Fun
单击“创建函数”,完成函数的创建。 在“代码”页签下,复制如下代码至代码窗并单击“部署”。 # -*- coding:utf-8 -*- import json def handler (event, context): body = "<html><title>Functiongraph
创建的RabbitMQ实例的唯一标识符。 EG示例事件 RocketMQ自定义事件源 { "datacontenttype": "application/json", "data": { "context": "yyyyy" }, "subject": "R
创建的RabbitMQ实例的唯一标识符。 EG示例事件 RocketMQ自定义事件源 { "datacontenttype": "application/json", "data": { "context": "yyyyy" }, "subject": "R
选择的区域一致。 function_urn:函数的URN,此处填写test1的URN地址。 Body:自定义配置,格式为“string:JSON字符串”,举例“aaa:123”。 其他参数保持默认,单击“调试”。 图3 异步执行函数参数配置 查看函数异步执行结果 返回函数工作流控制台,在左侧的导航栏选择“函数
步骤一:新建项目 登录软件开发生产线CodeArts控制台,进入CodeArts操作页面。 单击“立即使用”,跳转至“新建项目”页面。 单击“新建项目”,选择“项目模板 > Scrum”。 输入项目名称“function”,其他配置保持默认。 完成后单击“确定”。 父主题: 使用CodeArts托管函数代码