检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
MetaERP业务场景进行微服务Serverless化改造,如图1所示,将低频使用但资源占用大的微服务逻辑,拆分成独立函数,常驻实例缩容到0;剩余微服务逻辑以Spring兼容方式进行函数化,实现函数化后的微服务快速冷启动和弹性,常驻实例减半。 图1 MFA Serverless改造前后架构 案例价值点
次数是所有函数的请求总数。 执行时间费用(非预留实例) 执行时间费用包含两个变量:函数分配的内存大小和执行时长。以下介绍计算资源消耗的方式: 函数计算资源消耗是函数所选内存和函数执行时长的乘积,执行时长是从函数代码开始执行的时间算起到其返回或终止的时间为止,计量的粒度是1毫秒,不足1毫秒按1毫秒计费。
数和消息最大有限期(最大有限期为24小时)进行重试。重试次数和配置的最大重试次数一致,重试有效期和配置的消息最大有效期一致。 幂等性 在编程中,幂等性指应用程序或组件具备识别重复事件和防止重复、不一致或数据丢失的能力。若需要函数保持幂等性,则可以通过函数逻辑设计来正确处理重复的事件。
1个开始节点和1个结束节点 假设5月份期间: 该标准函数流累计执行次数为1万次; 所有函数节点都是未使用预留实例,且每个函数内存配置是512MB、执行一次时间是500毫秒; 1个循环节点,其中循环节点内包含2个函数节点 1个并行分支节点,且分支出2个支线,分别是1个函数节点和1个子流程节点
else { fmt.Println(err) } } 更多 更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。 状态码 状态码 描述 200 Success 400 Bad Request 500
/PCI等)的安全合规认证,用户可自行申请下载合规资质证书。 图1 合规证书下载 资源中心 华为云还提供以下资源来帮助用户满足合规性要求,具体请查看资源中心。 图2 资源中心 销售许可证&软件著作权证书 另外,华为云还提供了以下销售许可证及软件著作权证书,供用户下载和参考。具体请查看合规资质证书。
上面的例子是APIG触发器的事件类型,如果是其他触发器类型需要修改main函数的内容,例如cts触发器修改为runtime.Register(CtsTest),目前只支持注册一个入口。 当函数的事件源是APIG时,相关约束条件请参考Base64解码和返回结构体的说明。 编译和打包 函数代码编译完成后,按照如下方式编译和打包。
DDS触发器 异步调用 Kafka触发器 异步调用 日志和监控 提供调用函数的监控指标和运行日志的采集和展示,实时的图形化监控指标展示,在线查询日志,方便用户查看函数运行状态和定位问题。 日志的查询过程请参考配置和查看函数的调用日志。 单个监控指标请参考监控信息说明。 租户函数监控指标请参考总览页面介绍。
自动将所有遥测数据发送到您的扩展,您可以对数据进行处理,例如存储到OBS、写入文件中或转发给其他可观测性工具。 扩展可以使用遥测 API 订阅三种不同的遥测流: 平台遥测:日志、指标和跟踪,描述与执行环境运行时生命周期、扩展生命周期和函数调用相关的事件和错误。 函数日志:Func
展是否已完成引导启动,且扩展注册的请求头必须包含本扩展启动的httpServer的地址和端口。例如,请求头的格式为: headers = { 'Content-type': 'application/json', 'FunctionGraph-Extension-Name': "extensionDemo
查看监控指标与配置告警 FunctionGraph支持的监控指标 查看FunctionGraph的监控数据 配置FunctionGraph的监控告警 配置和查看函数的调用日志 配置和查看函数的调用链信息
欠费说明 您使用函数工作流时,账户的可用额度小于待结算的账单,即被判定为账户欠费。欠费后,可能会影响您的服务资源的正常运行,请及时充值。 当账号进入欠费状态时,需要在约定时间内支付欠款,详细操作请参考欠费还款。 欠费原因 在按需计费模式下账户的余额不足。 欠费影响 欠费后,您无法创建、执行函数及对资源执行任何操作。
日志 查看特定函数的日志。 serverless logs --function functionName 选项 --函数或-f:获取日志的函数,必填。 --count或-c:显示的日志数。 示例 检索日志 serverless logs --function functionName
自定义运行 自定义函数执行的脚本和文件。 函数日志 函数调用过程中产生的日志信息。 函数监控 函数执行过程中的监控信息。 函数版本 函数从开发、测试、生产过程中发布一个或多个版本,实现对函数代码的管理。对于发布的每个版本的函数、环境变量会另存为相应版本的快照,函数代码发布后,可以根据实际需要修改版本配置信息。
Framework提供了一个强大的变量系统,您可以将动态数据添加到serverless.yml中。使用Serverless变量,您将能够执行以下操作: 引用并加载环境变量中的变量。 引用并加载CLI选项中的变量。 递归引用同一serverless.yml文件中的任何类型的属性。 递归引用其他
性能更优的代码。 用户函数代码更新时,系统能够保证用户函数的平滑升级,规避应用层初始化冷启动带来的性能损耗。新的函数实例启动后能够自动执行用户的初始化逻辑,在初始化完成后再处理请求。 在应用负载上升,需要增加更多函数实例时,系统能够识别函数应用层初始化的开销,更准确的计算资源伸
如果您使用的是Linux操作系统,可以将项目中的package.json文件复制到windows系统的任意目录中,后续操作一致)。 图1 删除node_modules 在项目目录中执行依赖安装命令。 npm install --save 图2 依赖包执行安装 将新生成的“node
准备一个zip包,zip包中用于扩展进程的编写,可以拉起一个扩展进程,zip包中限制如下: zip包中必须含有extension命名的文件夹,extension的文件夹中必须包含以extension为前缀,.sh文件类型的脚本文件,用于后续扩展启动扩展进程,例如zip包的文件结构如下: extension
您可以在代码中执行多个任务,但不建议在没有充分理由的情况下这样做。分离关注点是最好的,Framework旨在帮助您轻松开发和部署函数,以及管理它们。 事件 任何触发华为云函数工作流的函数执行的事物都被Framework视为事件。事件是指华为云函数工作流上的平台事件,例如:API网关服务和API(例如,REST
测试托管方式改造函数,调用方法如图1所示。 图1 测试函数调用的方法 调用时,遵循原来的请求方法。 请求url为添加事件源创建的APIG触发器地址。 需要在headers里配置requestPath,值为图1中的@Path(可能会包含一些服务前缀,对应微服务改造之前的请求Path即可),如图2所示。 图2