检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
本例提供一个图片旋转的样例代码供学习使用。 创建程序包 本例使用Golang语言实现图片旋转的功能,有关函数开发的过程请参考Golang函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。 图1 样例代码目录 创建函数 创建函数的时候,必须选择委托包含OBS访问权限的委托,否则不能使用OBS服务。
务实现日志云端处理并推送告警消息的功能,并将告警日志投递至OBS桶中集中存储。 场景介绍 通过LTS云日志服务,快速完成ECS等服务器的任务运行日志采集、加工和转换。 通过函数工作流服务中的函数创建LTS触发器获取日志数据,经由自定义函数对日志中的关键信息进行分析和处理,过滤出告警日志。
7”,委托名称选择创建委托中的“LtsOperation”。 函数实现的功能是:将收到的日志事件数据进行base64解码,然后提取出包含“WRN”、“WARN”、“ERR”或“ERROR”关键字的告警日志,将此级别的日志投递至OBS桶中集中存储。可根据您的业务日志的具体内容配置相应的日志提取条件。
1个OBS桶(上传需要处理的图像) 1个图片处理的函数(test-rotate) 1个编排函数的函数流(test-rotate-workflow) 父主题: 使用FunctionGraph函数流对OBS中的图片进行旋转
ox等工具的下载,以及在线费用计算器的使用。 2018-10-18 函数实现与云监控服务的对接,函数上报云监控服务的监控指标、指标的命名空间和维度,用户可以通过云监控服务提供的API接口来检索函数产生的监控指标和告警信息。 函数新增Node.js Runtime集成的三方件:sm
若日志包含“WRN”、“WARN”、“ERR”或“ERROR”关键字的告警日志,可收到SMN发送的通知消息邮件,如图1所示。同时可以查看OBS桶中的log.txt文件,可查看到具体的告警日志内容,如图2所示。 图1 告警消息邮件通知 图2 告警日志详情 可以通过函数指标查看函数的调用情况,如图3所示。 图3 函数指标
添加事件源 创建LTS触发器 选择准备中创建的日志组和日志主题,创建LTS触发器。LTS触发器配置如图1所示。 LTS日志服务的消费端在日志累积大小或日志累积时间满足条件时消费LTS日志数据,并根据订阅该组LTS日志数据的函数URN触发函数执行。 图1 创建LTS触发器 父主题:
上传图片 使用postman触发函数流执行 上面的字节流保存成图片后如下图所示: 父主题: 使用FunctionGraph函数流对OBS中的图片进行旋转
执行一次函数初始化。函数初始化的执行时间也会被计量,用户需要为此付费,计费方式与函数的调用处理一致。 一般场景下,多个请求处理可以共享的业务逻辑适合放到初始化函数,以降低函数时延。例如深度学习场景下加载规格较大的模型、数据库场景下连接池构建。 约束与限制 函数初始化入口需要和函数执行入口在同一文件下。
函数运行超时时间,单位秒,范围3~900秒。 userData 否 是 用户自定义的name/value信息,在函数中使用的参数。 encryptedUserData 否 是 用户自定义的name/value信息,用于需要加密的配置。 initializerTimeout 否 是 初始化超时时间
7为例,指导您在本地编码,然后将代码文件上传到OBS桶,实现通过OBS链接创建函数。 API的调用方法请参见如何调用API。 前提条件 已在OBS服务中创建OBS桶。 约束与限制 请确保函数与OBS桶创建在同一区域下。 总体思路 在本地进行函数编码后,将代码文件上传到OBS桶,并使用OBS链接创建函数。步骤如下:
函数流配置完成后,需要启动函数流才能完成业务功能实现。 约束与限制 当函数流的配置有改动后,必须先保存信息,才能启动函数流任务。 启动函数流 在函数流编排页面右上角单击“启动”或在函数流列表页面选择“更多 > 启动”,弹出的启动执行页面。 在弹出的启动执行页面,支持定义输入值或者直接启动。此处
函数工作流服务每个月都会提供一定数量的免费额度,免费额度是子主账户共同使用,具体详情请参见免费额度。 当免费额度使用完后,若您继续使用函数工作流时,账户的可用额度小于待结算的账单时,即被判定为账户欠费。欠费后,可能会影响您的服务资源的正常运行,请及时充值,具体详情请参考账户充值。 为用户添加函数的操作权限。
上传程序包 函数执行入口中的index与步骤定义FunctionGraph函数的文件名保持一致,通过该名称找到FunctionGraph函数所在文件。 函数执行入口中的handler为函数名,与步骤定义FunctionGraph函数中创建的index.py文件中的handler名称保持一致。
快速模式面向业务执行时长较短,需要极致性能的场景,只支持流程执行时长低于5分钟的场景,不支持执行历史持久化,支持同步和异步调用。 商用 创建函数流任务 2022年03月 序号 功能名称 功能描述 阶段 相关文档 1 函数工作流全新改版 增加函数信息的自定义展示能力;增加对函数的排序与置顶能力;优化函数的搜索体验;取消应用层级;
ionGraph即可运行,无需其它的部署操作。 制作ZIP包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。 对于Go runtime,必须在编译之后打zip包,编译后的动态库文件名称必须与函数执行入口的插件名称保持一致,例如:动态库名称为testplugin
不同区域的资源之间内网不互通,请就近选择靠近您业务的区域,可以降低网络时延、提高访问速度。 项目 默认与选择的区域一致。 函数名称 函数名称,命名规则如下: 可包含字母、数字、下划线和中划线,长度不超过60个字符。 以大/小写字母开头,以字母或数字结尾。 企业项目 默认“defaul
方法二:单击触发器名称,跳转至API网关服务,直接修改path去除函数名。 常见问题 我的代码可以访问哪些目录? 根据上文中的bootstrap文件里的命令,可以看出上传的代码包最终被存在函数实例(指函数运行的环境/计算资源,可以理解为容器)/opt/function/code/ 路径。但是该目录只可以读,不可以写入。
如下信息:函数类型选择“事件函数”、输入您自定义的函数名称,此处以“access-redis-demo”为例,选择运行时“Python3.9”,最后单击创建函数。 图1 创建函数 创建函数选择的“区域”与要访问的Redis实例所在的区域一致。 根据Redis实例类型选择示例代码覆盖函数代码详情页中index
函数工作流服务每个月都会提供一定数量的免费额度,免费额度是子主账户共同使用,具体详情请参见免费额度。 当免费额度使用完后,若您继续使用函数工作流时,账户的可用额度小于待结算的账单时,即被判定为账户欠费。欠费后,可能会影响您的服务资源的正常运行,请及时充值,具体详情请参考账户充值。 为用户添加函数的操作权限。