检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
案例概述 场景介绍 MetaERP业务场景进行微服务Serverless化改造,如图1所示,将低频使用但资源占用大的微服务逻辑,拆分成独立函数,常驻实例缩容到0;剩余微服务逻辑以Spring兼容方式进行函数化,实现函数化后的微服务快速冷启动和弹性,常驻实例减半。 图1 MFA Serverless改造前后架构
创建SFS Turbo文件系统 登录华为云弹性文件服务控制台,选择“SFS Turbo”,单击“创建文件系统”,进入“创建文件系统”界面。 在“创建文件系统”界面填写如下参数: 计费模式:根据实际情况选择,推荐按需计费。 弹性文件服务的计费介绍请参见计费说明,计费价格请参见价格计算器。
limitListEnterpriseResourceRequestBody:= "5" withoutAnyTagListEnterpriseResourceRequestBody:= true request.Body = &model.ListEnterpriseResourceRequestBody{
Offset = &offsetRequest enterpriseProjectRequest:= "<enterprise_project>" request.EnterpriseProject = &enterpriseProjectRequest modeRequest:=
in the local environment ak = __import__('os').getenv("CLOUD_SDK_AK") sk = __import__('os').getenv("CLOUD_SDK_SK") credentials = BasicCredentials(ak
制。 文件系统/云服务器名称:选择创建的文件系统或者云服务器资源,注意函数配置的VPC和委托要有访问权限。 共享目录路径:如果选择ECS挂载需要配置远端共享目录,请参见ECS创建nfs共享目录。 函数访问路径:为本地文件系统挂载目录,不能是系统已存在目录。建议使用/mnt/ 下二级子目录,例如/mnt/test。
hashicorp.com/terraform/downloads)。 下面以Linux CentOS (系统需要有访问公网权限)为例指导安装Terraform。 使用root用户登录系统,新建目录/home/Terraform,cd到Terraform目录执行如下命令: sudo yum
InitializerHandler: "" //函数初始化入口 InitializerTimeout: 0 //函数初始化超时时间 EnterpriseProjectId: "0" //企业项目 FuncType: v2 URN: "" //函数URN,函数下载后生成
在Windows系统中重新安装,操作步骤如下: 退出Docker容器(原生Linux系统忽略)。 exit 删除项目目录中的“node_modules”子目录(如果您使用的是Linux操作系统,可以将项目中的package.json文件复制到windows系统的任意目录中,后续操作一致)。
必须包含允许“FunctionGraph:function:list”的授权项,该接口才能调用成功。 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下:
js项目,本案例采用本地运行Docker node:18.15.0镜像的方式,同样适用于其他Linux系统。关于Docker镜像和Linux操作系统的使用并非本案例主要内容,不做过多赘述。 启动Docker容器并进入code目录(原生Linux系统忽略)。 docker run -it --network=host
可以看到当前目录下会生成一个node_modules文件夹。 Linux系统 Linux系统下可以使用以下命令生成zip包。 zip -rq mysql-node8.10.zip node_modules 即可生成最终需要的依赖包。 windows系统 用压缩软件将node_modules目录压缩成zip文件即可。
mount_config参数说明 参数 类型 是否必选 说明 mount_user mount_user 否 文件系统用户配置 func_mounts func_mounts 否 文件系统列表 表7 mount_user参数说明 参数 类型 是否必选 说明 user_id Int mount_user非空时必选
onGraph”,如图5所示。 图5 FunctionGraph 在“Location”栏中选择工程的路径 ,在“Project Interpreter: New Virtualenv environment”中选择使用python的版本。如图6所示。 图6 选择版本 在“More
Administrator),可以支持在函数中操作当前区域内的所有资源,请参见配置委托权限。 创建文件系统 进入弹性文件服务,创建SFS容量型或者SFS Turbo文件系统,,请参见创建文件系统。 添加SFS容量型文件系统 设置委托 进入需要进行挂载配置的函数详情页,在配置页选择已有的委托(委托需要拥有当前Region的sfs
用等操作。 获取CLI工具 CLI工具支持64位的Linux x86系统及64位Windows系统,以及Mac系统,具体下载地址如表1所示。 表1 下载地址 系统 软件包及校验文件 参考文档 Linux 各系统类型软件包及校验文件下载请参见CLI软件和校验文件下载。 KooCLI介绍
h的所有系统权限。 表1 系统权限说明 系统角色/策略名称 描述 类别 依赖关系 FunctionGraph Administrator 函数工作流(FunctionGraph)管理员,具有管理函数、工作流、触发器以及调用函数的权限(该权限后期会下线,建议您不使用) 系统角色 Tenant
变量 Serverless Framework提供了一个强大的变量系统,您可以将动态数据添加到serverless.yml中。使用Serverless变量,您将能够执行以下操作: 引用并加载环境变量中的变量。 引用并加载CLI选项中的变量。 递归引用同一serverless.yml文件中的任何类型的属性。
选择"数据接入服务(DIS)"模板,使用系统内置dis事件模板。 事件名称 事件名称必须以大写或小写字母开头,支持字母(大写或小写),数字和下划线“_”(或中划线“-”),并以字母或数字结尾,长度为1-25个字符。例如输入dis-123test。 测试事件 自动加载系统内置dis事件模板,本例不做修改。
"strategy_config": { "concurrency": -1 }, "StrategyConfig": {}, "enterprise_project_id": "0" } 父主题: 应用示例