详情页标题前

阿里云日志服务SLS自定义函数开发指南-云淘科技

详情页1

当您通过函数计算消费日志数据时,在不同场景您可以选择使用日志服务提供的函数模板或自定义函数。本文介绍如何构建一个自定义函数。

函数Event

函数Event即运行函数计算的入口参数,格式为一个JSON Object序列化后字符串。

  • 参数说明
    参数 说明
    jobName 日志服务ETL Job名称。函数计算服务上的日志服务触发器对应一个日志服务的ETL Job。
    taskId 对于一个ETL Job,taskId是某一次确定性的函数调用标识。
    cursorTime 本次函数调用包括的数据中,最后一条日志到达日志服务的服务器端的unix_timestamp。
    source 该字段由日志服务生成,日志服务根据ETL Job定义的任务间隔定时触发函数执行,source字段是函数Event中的重要组成部分,定义了本次函数调用的消费范围。

    • endpoint:Project所属地域的服务入口,详情请参见服务入口。
    • projectName:Project名称。
    • logstoreName:Logstore名称。
    • shardId:Logstore下的某一个确定Shard。
    • beginCursor:需要从Shard的什么位置开始消费数据。
    • endCursor:需要消费Shard数据到什么位置。


      说明 Shard对应的[beginCursor,endCursor)是一个左闭右开区间。

    parameter JSON Object类型,在您创建触发器函数配置时设置。自定义日志服务ETL函数运行时解析该字段,可以获取到函数所需要的运行参数。详情请参见创建触发器。
  • 示例
    {
        "source": {
            "endpoint": "http://cn-shanghai-intranet.log.aliyuncs.com", 
            "projectName": "fc-****************", 
            "logstoreName": "demo", 
            "shardId": 0, 
            "beginCursor": "MTUwNTM5MDI3NTY1ODcwNzU2Ng==", 
            "endCursor": "MTUwNTM5MDI3NTY1ODcwNzU2OA=="
        }, 
        "parameter": {
            ...
        }, 
        "jobName": "fedad35f51a2a97b466da57fd71f315f539d2234", 
        "taskId": "9bc06c96-e364-4f41-85eb-b6e579214ae4",
        "cursorTime": 1511429883
    }

    在函数调试时候,您可以调用GetCursor接口获取cursor并按上述示例构建一个函数Event用于测试。

函数开发

您可以通过Java、Python、Node.js等多种语言实现函数开发,日志服务提供了相应Runtime的SDK,以便您在函数中进行集成,详情请参见SDK参考。

以下内容以Java 8 Runtime为例,介绍如何开发日志服务ETL函数。关于Java 8函数编程细节,详情请参见函数计算服务Java编程指南。

  • Java函数模板

    目前,日志服务提供了基于Java8 Runtime的自定义数模板,您可以在这基础上完成自定义需求的实现。

    模板已实现以下功能:

    • 函数Event中source、taskId、jobName字段的解析。
    • 根据source中定义的数据源,通过Log Service Java SDK获取数据,并对每一批数据调用processData接口进行处理。

    在模板中,您还需要实现以下功能:

    • 函数Event中parameter字段的解析,通过UserDefinedFunctionParameter.java实现。
    • 函数内针对数据的自定义业务逻辑,通过UserDefinedFunction.java的processData接口实现。
    • 为您的函数取一个可以描述功能的名字,替换UserDefinedFunction
  • processData接口实现

    您可以在processData内完成对一批数据的消费、加工、投递。例如在LogstoreReplication中,实现了将数据从一个Logstore中读出后写到另一个Logstore。


    说明

    • processData处理数据成功则返回true,处理数据遇到异常无法重试成功则返回false,但此时函数还会继续运行下去,且日志服务判定这是一次成功的ETL任务,会忽略其中处理异常的数据。
    • 如果遇到致命错误或业务逻辑上认为有异常需要提前终止函数执行,会通过throw Exception方式跳出函数运行,日志服务可以据此判断函数运行异常,并会按照ETL
      Job设置的规则重新调用函数执行。
    • 如果Shard流量较大,请为函数配置足够的内存规格,以避免函数OOM导致异常终止。
    • 如果在函数内执行耗时操作或者Shard流量较大,请您设置较短的函数触发间隔和较长的函数运行超时时间。
    • 请您为函数服务配置足够的权限,例如在函数内写OSS就需要配置OSS写权限。

ETL日志

  • ETL调度日志

    调度日志记录ETL任务开始时间、结束时间、任务是否成功以及成功返回的信息。如果ETL任务出错会生成ETL出错日志,并向系统管理员发送报警邮件或短信。请您在创建触发器时设置触发器日志Logstore,并为该Logstore开启并配置索引,详情请参见开启并配置索引。

    对于函数执行结果的统计,可以通过函数返回,例如在Java8 Runtime函数的outputStream中体现。日志服务提供的函数模板会写出一个JSON Object序列化后的字符串,该字符串将记录在ETL任务调度日志中,方便您进行统计、查询。

  • ETL过程日志

    这一部分日志是在ETL执行过程中每执行一步记录的关键点和错误信息,包括某一步骤的开始和结束时间、初始化动作完成情况、模块出错信息等。ETL过程日志的意义是随时可以感知ETL运行情况,如果发生错误,可以及时通过过程日志查找原因。

    您可以通过context.getLogger()记录过程日志并存放在日志服务指定Project的Logstore中,建议您为该Logstore开启索引查询功能。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/163057.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云日志服务SLS日志字段详情-云淘科技

    本文介绍CloudLens for SLS相关日志的字段详情。 审计日志 字段 说明 APIVersion API版本。 AccessKeyId 访问日志服务时使用的访问密钥。 CallerType 访问用户的类型。 ClientIp 客户端IP地址。 Config Logtail采集配置。 ConsumerGroup 操作的消费组名称。 Dashboard…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLS如何查看Logtail采集错误信息-云淘科技

    您在使用Logtail采集日志时,可能遇到正则解析失败、文件路径不正确、流量超过Shard服务能力等错误。日志服务控制台提供诊断功能,支持诊断Logtail采集错误。 操作步骤 登录日志服务控制台。 在Project列表区域,单击目标Project。 在日志库列表中,单击目标Logstore右侧的图标,然后单击诊断。 查看日志采集错误。日志采集错误面板中将展…

    2023年12月10日
  • 阿里云日志服务SLS事件配置-云淘科技

    事件配置为原始日志提供可视化、易操作的日志钻取功能,方便您获取更详尽的日志信息,包括预设事件配置和高级事件配置。本文介绍如何在日志服务控制台为原始日志配置事件。 前提条件 已开启并配置索引。更多信息,请参见配置索引。 如果配置高级事件为打开日志库,则需提前创建目标日志库。更多信息,请参见创建Logstore。 如果配置高级事件为打开快速查询,则需提前创建目标…

    2023年12月10日
  • 阿里云RDS数据库查看数据复制方式-云淘科技

    本文介绍如何查看RDS SQL Server主备实例之间的数据复制方式。 使用限制 仅高可用系列和集群系列的实例支持查看数据复制方式。 暂不支持修改数据复制方式。 复制方式介绍 同步 应用发起的更新在主实例执行完成后,会将日志同步传输到备实例,备实例收到日志,事务就完成了提交,不需要等待备实例执行日志内容。 当备实例不可用或者主备实例间出现网络异常时,同步会…

    阿里云数据库 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS查看全局数据-云淘科技

    本文介绍如何在日志审计服务中查看从云产品接入的全局数据。 查看日志审计全局数据视图 登录日志服务控制台。 在日志应用区域的审计与安全页签下,单击日志审计服务。 单击审计配置 > 云产品接入 > 全局数据,查看日志审计全局数据视图。 查看云产品全局数据视图 登录日志服务控制台。 在日志应用区域的审计与安全页签下,单击日志审计服务。 单击审计报表 &…

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。