详情页标题前

阿里云日志服务SLS加工引擎启动错误-云淘科技

详情页1

本文档为您介绍加工引擎启动错误的原因以及排查处理方法。

数据加工任务的第一个环节便是启动加工引擎。该环节产生错误主要是由于在启动加工引擎过程时,检测到您编写的SLS DSL规则存在错误,导致加工引擎内部的安全审核不通过。阿里云日志服务SLS加工引擎启动错误-云淘科技

错误日志

在加工引擎启动过程中,如果检测到您编写的SLS DSL规则存在错误,会报如下形式的错误。

{
  "errorMessage": "ETL config doesn't pass security check, detail: XXXXXX"
}


说明 错误日志可以在数据加工诊断报表的异常详情中或者internal-etl-log Logstore中查看。

  • 在加工引擎启动阶段产生错误时,加工任务会一直重试,直到重试成功或被手动停止。
  • 修改加工规则后,加工任务重试成功,继续正常工作,不会产生日志的丢失或冗余。

常见错误排查

  • 基本语法错误。

    您编写了不符合SLS DSL语法的加工规则,例如:多或者少括号、逗号(,)写成冒号(:)等。

    • 错误日志
      {
        "errorMessage": "ETL config doesn't pass security check, detail: invalid syntax"
      }
      {
        "errorMessage": "ETL config doesn't pass security check, detail: unexpected EOF while parsing"
      }
      ...
    • 排查方法
      根据错误日志中的traceback信息定位具体的语法错误位置。例如:将e_set("test", v("status"))错写成e_set("test": v("status")),如下图所示。阿里云日志服务SLS加工引擎启动错误-云淘科技
  • 非法使用运算符。

    SLS DSL中所有的操作都需要通过SLS DSL提供的函数来完成。数值运算、大小比较等操作都需要通过op_*函数完成,而不能直接使用运算符。

    • 错误日志
      {
        "errorMessage": "ETL config doesn't pass security check, detail: invalid type detected:  "
      }
    • 排查方法

      检查SLS DSL规则,确保所有的操作例如运算、大小比较等都是通过SLS DSL提供的函数完成的。

    • 示例
      e_set("b", v("a") - 10) # 错误示例
      e_set("b", op_sub(v("a"), 10)) # 正确示例
      
      e_set("b", v("a") >= v("c")) # 错误示例
      e_set("b", op_ge(v("a"), v("c"))) # 正确示例
  • 函数参数类型传递错误或调用不存在的函数。
    如果传递给函数的参数类型和函数接收的参数类型不一致,或者调用了不存在的函数,会产生错误。

    • 错误日志
      {
        "errorMessage": "ETL config doesn't pass security check, detail: invalid call in detected: function_name"
      }
    • 排查方法
      • 首先检查对应的函数是否存在,函数名是否拼写错误等。如果函数存在且名称正确,则检查函数的参数类型是否传递正确。
      • 根据错误日志中的traceback信息定位产生错误的函数。例如:定位到dt_totimestamp函数产生错误,首先判断该函数是存在的,接着检查规则中调用dt_totimestamp函数的地方,是否传递了正确类型的参数给该函数。阿里云日志服务SLS加工引擎启动错误-云淘科技
    • 示例

      dt_totimestamp函数接收的参数类型是日期时间对象,此处v("time1")是字符串类型,即传递了错误类型的参数给日期时间函数,引发报错。

      您可以使用dt_parse函数将字符串转化为日期时间对象,再传递给dt_totimestamp函数。也可以使用dt_parsetimestap函数代替dt_totimestamp函数,该函数可以接收字符串类型。

      #错误示例
      e_set("time1", "2019-06-03 2:41:26")
      e_set("time2", dt_totimestamp(v("time1")))
      
      #正确示例
      e_set("time1", "2019-06-03 2:41:26")
      e_set("time2", dt_totimestamp(dt_parse(v("time1"))))
      
      #正确示例
      e_set("time1", "2019-06-03 2:41:26")
      e_set("time2", dt_parsetimestamp(v("time1")))
  • 在全局操作中调用表达式函数。
    SLS DSL语法中提供两种类型的函数:全局操作函数和表达式函数。只有全局操作函数才能作为加工规则的一个步骤,在全局操作进行调用。如果在全局操作中调用表达式函数,则会产生错误。

    • 错误日志
      {
        "errorMessage": "ETL config doesn't pass security check, detail:  invalid type detected: "
      }
    • 排查方法

      检查是否在全局操作调用了表达式函数,作为加工规则的一个步骤。

    • 示例
      #错误示例
      op_add(v("a"), v("b"))
      str_lower(v("name"))
      
      #正确示例
      e_set("add", op_add(v("a"), v("b")))
      e_set("lower", str_lower(v("name")))
  • 非法使用变量定义赋值。
    SLS DSL语法中不支持变量定义赋值,变量值只能通过无状态方式调用传递。

    • 错误日志
      {
        "errorMessage": "ETL config doesn't pass security check, detail: invalid assign detected: variable_name"
      }
    • 排查方法
      • 检查SLS DSL规则中是否使用了变量定义赋值。
      • 根据错误日志中的traceback信息定位产生错误的位置。
    • 示例
      #错误示例
      sum_value = op_add(v("a"), v("b"))
      e_set("sum", sum_value)
      
      #正确示例
      e_set("sum", op_add(v("a"), v("b")))

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

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

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

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

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

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

(0)
上一篇 2023年12月10日 上午8:17
下一篇 2023年12月10日 上午8:19
详情页2

相关推荐

  • 阿里云负载均衡SetCACertificateName – 设置CA证书名称-云淘科技

    设置CA证书名称。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试调试授权信息下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下: 操作:是指具体的权…

    阿里云负载均衡 2023年12月10日
  • 阿里云ECS云服务器如何保证幂等性-云淘科技

    您在调用ECS API时,如果发生请求超时或服务器内部错误,客户端可能会尝试重发请求。您可以在请求中设置ClientToken参数避免多次重试带来重复操作的问题。 什么是幂等性 在数学计算或者计算机科学中,幂等性(idempotence)是指相同操作或资源在一次或多次请求中具有同样效果的作用。幂等性是在分布式系统设计中具有十分重要的地位。 保证幂等性 通常情…

    阿里云服务器 2023年12月9日
  • 阿里云日志服务SLS性能指南-云淘科技

    本文档为您介绍进行数据加工时,会影响加工性能的可能的因素。帮助您解决加工性能问题。 根据加工原理,数据加工任务的总体速度取决于源Shard的数量、用户配置的规则逻辑和规则复杂度。一般可以按照每Shard处理1MB/s(压缩前)流量规划,也就是大约85 GB每天每Shard规划。例如:源Logstore的数据写入速度是每天1 TB,那么需要分裂源Logstor…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云RDS数据库ReleaseReadWriteSplittingConnection – 释放读写分离地址-云淘科技

    该接口用于释放读写分离地址。 接口说明 适用引擎 RDS MySQL RDS SQL Server 前体条件 调用该接口时,实例必须满足以下条件,否则将操作失败: MySQL实例使用的是共享代理。 实例已开通读写分离。 实例为如下版本: MySQL 5.7高可用版(本地SSD盘) MySQL 5.6 SQL Server集群版 调试 您可以在OpenAPI …

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

    本视频介绍数据加工快速预览以及授权操作。 内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家阿里云企业补贴进行中: 马上申请腾讯云限时活动1折起,即将结束: 马上收藏同尘科技为腾讯云授权服务中心。 购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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