赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 数据加工
  6. 数据加工(旧版)
  7. 数据加工(旧版)常见问题
  8. 加工引擎启动错误

加工引擎启动错误

  • 数据加工(旧版)常见问题
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

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

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

错误日志

在加工引擎启动过程中,如果检测到您编写的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 DSL中所有的操作都需要通过SLS DSL提供的函数来完成。数值运算、大小比较等操作都需要通过op_*函数完成,而不能直接使用运算符。

    • 错误日志

      {
        "errorMessage": "ETL config doesn't pass security check, detail: invalid type detected: <class `_ast.BinOp`> "
      }
    • 排查方法

      检查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函数的地方,是否传递了正确类型的参数给该函数。函数错误信息

    • 示例

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

      您可以使用dt_parse函数将字符串转化为日期时间对象,再传递给dt_totimestamp函数。也可以使用dt_parsetimestamp函数代替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: <class '_ast.Expr'>"
      }
    • 排查方法

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

    • 示例

      #错误示例
      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")))
相关文章

加工引擎启动错误 2025-04-22 10:53

本文档为您介绍加工引擎启动错误的原因以及排查处理方法。 数据加工任务的第一个环节便是启动加工引擎。该环节产生错误主要是由于在启动加工引擎过程时,检测到您编写的SLS DSL规则存在错误,导致加工引擎内部的安全审核不通过。

加工规则错误 2025-04-22 10:53

本文档为您介绍数据加工规则错误的原因以及排查处理方法。 读取源Logstore数据成功后,加工引擎开始对源Logstore的日志事件进行加工。

源Logstore读取错误 2025-04-22 10:53

本文介绍数据加工服务读取源Logstore错误的原因以及排查处理方法。 加工引擎启动成功后,开始读取源Logstore的数据。数据加工引擎对源Logstore采用流式读取,在加工过程中会持续不断的读取源Logstore中的数据。

资源加载错误 2025-04-22 10:53

本文介绍在数据加工规则中加载资源数据错误的原因及排查处理的方法。 错误处理机制 资源加载错误的处理机制请参见res_log_

目标Logstore输出错误的原因和排查方法 2025-04-22 10:53

本文档为您介绍数据加工服务进行数据加工后,将加工结果写入目标Logstore产生错误的常见原因和排查处理方法。 工作原理 日志事件被加工完之后,会被输出到预先配置好的目标Logstore中。LOG DSL引擎每次读取一个批次的源日志(从1条到近万条不等),数据加工后,并不是加工一条日志就输出一条,而

获取Logstore数据(维表)错误 2025-04-22 10:53

如果加工规则中涉及其他Logstore资源的加载,则有可能会产生资源的加载或刷新错误。本文档主要介绍从其他Logstore获取数据的常见错误以及排查处理方法。 在成功读取源Logstore数据后,加工引擎开始对源Logstore的日志事件进行加工。如果加工规则中涉及OSS、RDS、Logstore等

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号