检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
函数应用中心 查询应用程序模板详情 查询应用程序模板列表 查询应用程序列表 创建应用程序 查询应用程序详情 删除应用程序 父主题: API
方案概述 应用场景 端侧文件上传云服务器是Web和App应用的一类场景,例如服务运行日志的上报,Web应用图片上传等,函数可作为后端,结合APIG提供通用的API处理这类场景。本章节以NodeJS和Python语言为例,指导用户如何开发后端解析函数,获取上传的文件。 约束与限制 单次请求上传文件大小不超过6MB。
作请参见配置函数的委托权限。 挂载ECS共享目录 已创建待挂载的ECS,具体操作请参见购买ECS。 创建ECS时请记录ECS所使用的VPC和子网信息。 已在ECS上创建NFS共享目录,具体操作请参考在ECS创建NFS共享目录。 已创建挂载ECS共享目录所需的相关委托,具体操作请参见配置函数的委托权限。
约束与限制 可以使用任意基础镜像。 在云上环境会默认使用uid 1003,gid 1003 启动容器。uid、gid可以在函数页面的“设置 > 常规设置 >容器镜像覆盖”板块中修改,但不可以是root或其他保留id。 HTTP函数示例中涉及的8000端口请勿修改。 如果使用Alpi
initializer,如图12所示。 图12 函数初始化入口配置 开启预留实例或者快照式冷启动。 通过预留实例,或者快照式冷启动功能,可以加速函数启动时间,减少请求时延。预留实例使用可参考预留实例管理,快照式冷启动使用可参考配置快照式冷启动。 通过独立函数方式改造微服务。 直接函数化改造,是将微服务业务代
其中1、2和3是系统层面的冷启动开销,通过对调度以及各个环节的优化,函数服务能做到负载快速增长时稳定的延时。4是函数内部初始化逻辑,属于应用层面的冷启动开销,例如深度学习场景下加载规格较大的模型、数据库场景下连接池构建、函数依赖库加载等等。 为了减小应用层冷启动对延时的影响,Funct
FunctionGraph是一项基于事件驱动的函数托管计算服务。使用FunctionGraph函数,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。此外,按函数实际执行资源计费,不执行不产生费用。 函数使用流程如图1所示。 图1 函数使用流程
组。 在云日志服务创建日志流,此处以lts-topic-gfz3为例,创建过程请参考创建日志流。 在云日志服务配置Agent,快速将ECS等服务器上日志采集到指定的日志组,配置过程请参考安装ICAgent。 告警消息推送 在SMN消息通知服务创建主题,此处以主题名称fss_tes
Not Acceptable 服务器生成的响应无法被客户端所接受。 407 Proxy Authentication Required 用户必须首先使用代理服务器进行验证,这样请求才会被处理。 408 Request Timeout 请求超出了服务器的等待时间。 409 Conflict
本案例展示了函数工作流服务+LTS云日志服务实现日志云端处理并推送告警消息的功能,并将告警日志投递至OBS桶中集中存储。 场景介绍 通过LTS云日志服务,快速完成ECS等服务器的任务运行日志采集、加工和转换。 通过函数工作流服务中的函数创建LTS触发器获取日志数据,经由自定义函数对日志中的关键信息进行分析和处理,过滤出告警日志。
本案例展示了函数工作流服务配合使用云日志服务LTS实现日志云端处理并转储消息到LTS的功能。 场景介绍 通过云日志服务LTS,快速完成ECS等服务器的任务运行日志的采集、加工和转换。 通过函数工作流服务中的函数创建LTS触发器获取日志数据,经由自定义函数对日志中的关键信息进行分析和
HTTP函数支持HTTP/1.1协议。 在函数创建页面,新增一种函数类型“HTTP函数”; HTTP函数执行入口需要设置为bootstrap,用户直接写启动命令,端口统一开放成8000; 若运行用户JAR包,bootstrap中建议增加JVM参数-Dfile.encoding=utf-8,否则可能会出现中文乱码。
单击“确定”,完成开源Kafka触发器的创建。 激活kafka触发器 开源Kafka触发器创建完成后默认是停用状态,需要在触发器界面上单击“启动”。 如果启动失败可以在工单系统提交工单联系技术支持工程师。 配置Kafka事件触发函数 返回函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
消息通知服务SMN推送告警短信和邮件,通知业务人员处理。 使用FunctionGraph函数定时开关华为云ECS 本章节介绍如何配置实现定时开启或关闭华为公有云虚拟机ECS功能的函数。 使用FunctionGraph函数作为后端实现APIG的自定义认证能力 本章节介绍如何快速创建
"body": "..." } Command、Args、Working dir三个参数之和不能超过5120。 初次执行时需要从SWR中拉取镜像,且冷启动时需要启动容器,所以自定义镜像冷启动比较慢。后续每次冷启动,如果节点上没有镜像,都需要从SWR中拉取。 镜像类型支持公开和私有,具体详情请参考编辑镜像属性。
响应,这种情况下客户端无法实时感知函数的执行结果。如果需要设置异步请求失败重试或者获取异步请求的结果通知,可以通过设置异步配置实现。 失败重试:用户代码异常造成的失败,FunctionGraph默认不重试。如果函数中有需要重试的场景,例如调用三方服务经常失败,可配置重试提升成功率。
遥测是一种特殊的扩展,扩展进程中必须完成以下工作才能成功启用遥测功能: 在使用OpenTelemetry API之前,需要先注册拓展,具体内容可参考扩展API使用。 在拓展启动一个httpClient,向FunctionGraph发送注册Telemetry API的请求。 创建一个httpServer遥测侦听器,
会在系统空闲的情况下逐个处理排队的请求。这种情况下客户端无法实时感知函数的执行结果,如果需要获取异步请求的结果通知或者设置异步请求失败重试,请参见配置函数的异步调用策略。 如果您希望获取异步请求结果通知或者设置异步请求失败重试,请参见配置函数的异步调用策略。 使用以下触发器的函数默认为异步调用,且不可修改。
为什么首次调用函数时速度会比较慢? 因为函数是冷启动的,所以如果有初始化或者函数中有第一次执行比较耗时的操作(例如加载函数代码及依赖包),第一次请求会比较慢,后面接着的请求就会很快,因为此时容器还没有销毁。如果间隔一分钟没有请求,容器就会销毁。 如果您使用的是C#或者Go语言,因为机制原因,启动速度会比其他语言
降低冷启动概率,优化函数处理时延:例如并发三个请求,不配置单实例多并发,FunctionGraph默认启动三个实例处理请求,会有三次冷启动。若配置了单实例支持三并发,三个并发请求,FunctionGraph只启动一个实例处理请求,减少了两次冷启动。 减少总请求处理时长,节省费用:单实例单并发下,多个请求的总处理时