检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
loudsdklts,如图3和图4所示。 图3 lts_cleanse.py 图4 为函数B添加依赖包 函数实现的功能是:将收到的日志事件数据进行base64解码,然后提取出包含“WRN”、“WARN”、“ERR”或“ERROR”关键字的告警日志,将此级别的日志投递至创建好的LT
方案概述 应用场景 端侧文件上传云服务器是Web和App应用的一类场景,例如服务运行日志的上报,Web应用图片上传等,函数可作为后端,结合APIG提供通用的API处理这类场景。本章节以NodeJS和Python语言为例,指导用户如何开发后端解析函数,获取上传的文件。 约束与限制 单次请求上传文件大小不超过6MB。
服务器端加密是指OBS服务端对客户端上传到OBS的对象进行加密存储,开启后需要选择加密密钥。 关闭 归档数据直读 必选参数。 通过归档数据直读,可以直接下载存储类别为归档存储的数据,无需提前恢复。归档数据直读会收取相应的费用。 关闭 企业项目 必选参数。 企业项目是一种云资源管理方式,企业项目
操作流程 本方案包含以下操作步骤 创建文件接收函数:接收上传的文件并解析内容。 端到端测试:绑定APIG触发器,测试文件上传及处理流程。 NodeJS语言方案 Python语言方案 父主题: 使用FunctionGraph函数实现通过API方式上传文件
连接DCS集群实例 from redis.cluster import RedisCluster as Redis from redis.cluster import ClusterNode redis_client = None def create_redis_client(context):
在“创建桶”界面,填写存储桶信息。 区域:根据实际情况设置 数据冗余存储策略:“单AZ存储” 桶名称输入:输入您自定义的桶名称,此处以“hugb-bucket-input”为例。 默认存储类别:“标准存储” 桶策略:"私有" 服务端加密:“关闭” 归档数据直读:“关闭” 单击“立即创建”,完成源桶创建。
使用FunctionGraph函数为OBS中的图片打水印 案例概述 准备 构建程序 添加事件源 处理图片 父主题: 数据处理类实践
资源规划 表1 资源规划 产品 配置示例 API网关APIG 区域:北京四 规格:可使用共享版APIG或者创建专享版APIG实例 函数工作流FunctionGraph 区域:北京四 计费模式:按需计费 父主题: 使用FunctionGraph函数实现通过API方式上传文件
转换。 通过函数工作流服务中的函数创建LTS触发器获取日志数据,经由自定义函数对日志中的关键信息进行分析和处理,过滤出告警日志。 SMN消息通知服务通过短信和邮件推送告警信息,通知业务人员进行处理。 将函数处理后的日志数据投递至OBS桶中集中存储,便于后续处理。处理流程如图1。 图1
"application/json" } } body = event['body'] #APIG触发器默认对数据进行Base64编码,这里解码 raw_data = base64.b64decode(body) for part in
调用已部署的函数。您可以发送事件数据、读取日志和查看函数调用的其他重要信息。 serverless invoke --function functionName 选项 --function或-f:要调用的服务中函数的名称,必填。 --data或-d:传递给函数的数据。 --path或-p:
Body().withKeyId(keyId).withDatakeyLength(AES_KEY_BIT_LENGTH)); // 创建数据密钥 final CreateDatakeyResponse createDatakeyResponse = kmsClient.crea
处理图片 图片上传至your-bucket-input桶,使用工具模拟客户端触发函数流运行,将上传图片旋转180°,并以流数据返回给客户端。 上传图片 登录对象存储服务控制台,进入your-bucket-input桶对象界面,上传image.jpeg图片如图1,上传完成后如图2所示。
构建程序 本例提供了为图片打水印功能的程序包,使用空白模板创建函数,用户可以下载(watermark.zip)学习使用。 创建程序包 本例使用Python语言实现为图片打水印的功能,有关函数开发的过程请参考Python函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。
处理文件 当文件上传后更新至dew-bucket-input桶时,会生成事件,触发函数运行,将文件加解密,保存在dew-bucket-output中。 上传文件生成事件 登录对象存储服务控制台,进入dew-bucket-input桶对象界面,上传image.jpg文件,如图1所示。
桶名称:输入您自定义的桶名称,此处以“your-bucket-input”为例。 数据冗余存储策略:“单AZ存储”。 默认存储类别:“标准存储”。 桶策略:"私有"。 默认加密:“关闭”。 归档数据直读:“关闭”。 其余参数保持默认,单击“立即创建”,完成源桶创建。 完成桶创建以
}); }); busboy.on('finish', function () { //这里处理数据 logger.info(buf.toString()); return { 'statusCode':
创建函数,运行时语言选择“Python2.7”,委托名称选择创建委托中的“LtsOperation”。 函数实现的功能是:将收到的日志事件数据进行base64解码,然后提取出包含“WRN”、“WARN”、“ERR”或“ERROR”关键字的告警日志,将此级别的日志投递至OBS桶中集
准备 本例提供了日志实时过滤功能的程序包及依赖包,用户可以下载 lts_cleanse.zip(包含函数A代码文件write_log.py、函数B代码文件lts_cleanse.py及依赖包huaweicloudsdklts) 、lts_cleanse.zip.sha256 学习使用。
Redis连接池 在示例代码中使用了Redis连接池(BlockingConnectionPool),配置了最大连接数(max_connections)和连接池耗尽后获取连接的最大等待时间(timeout),代码片段如下: pool = BlockingConnectio