Todos os produtos
Search
Central de documentação

Simple Log Service:Erros de inicialização do mecanismo de transformação de dados

Última atualização: Jul 03, 2026

A falha na inicialização do mecanismo de transformação de dados geralmente indica que suas regras SLS DSL contêm erros reprovados na verificação de segurança. Este tópico descreve os erros de inicialização mais comuns e como corrigi-los.

O mecanismo de transformação de dados executa uma verificação de segurança nas regras SLS DSL no início de cada tarefa. Se a verificação falhar, o mecanismo não inicia.加工引擎启动

Log de erros

Ao detectar um erro durante a inicialização, o mecanismo retorna uma mensagem no seguinte formato:

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

Visualize o log de erros na seção de detalhes da exceção do relatório de diagnóstico de transformação de dados ou no Logstore internal-etl-log.

  • Se ocorrer um erro de inicialização, a tarefa será repetida continuamente até obter sucesso ou até você interrompê-la manualmente.

  • Após a correção da regra de processamento, a tarefa terá êxito na próxima tentativa e retomará a operação normal. Nenhum log é perdido ou duplicado.

Solucionar erros comuns

  • Erro básico de sintaxe.

    Esse erro ocorre quando uma regra de processamento viola a gramática SLS DSL — por exemplo, parênteses incompatíveis ou dois pontos (:) usados no lugar de vírgula (,).

    • Log de erros

      {
        "errorMessage": "ETL config doesn't pass security check, detail: invalid syntax"
      }
      {
        "errorMessage": "ETL config doesn't pass security check, detail: unexpected EOF while parsing"
      }
    • Solução de problemas

      Use as informações de traceback no log de erros para localizar exatamente o erro de sintaxe. Por exemplo, o erro a seguir ocorre ao usar e_set("test": v("status")) em vez de e_set("test", v("status")).

      __source__:  172.20.3.124
      __tag__:__job_name__:  etl-preview-1563260078-834525
      __tag__:__schedule_type__:  DryRun
      __topic__:
      event_id : transform_data:init:fail
      logging : {"processName": "MainProcess", "threadName": "MainThread", "thread": "140462572971840", "funcName": "transform_data", "process": "1", "module": "logclient_operator", "levelname": "ERROR"}
      message :  ETL config doesn't pass security check, detail: invalid syntax (<unknown>, line 5)
      Traceback (most recent call last):
      File "/usr/local/python-etl/aliyunlogetl_common/core/restrict_config_parser.py", line 100, in security_check_config
      RestrictConfigParser().parse(code)
      File "/usr/local/python-etl/aliyunlogetl_common/core/restrict_config_parser.py", line 88, in parse
      self.visit(ast.parse(code))
      File "/usr/local/lib/python3.7/ast.py", line 35, in parse
      return compile(source, filename, mode, PyCF_ONLY_AST)
      File "<unknown>", line 5
      TRANSFORM_ANY_1563260645 = e_set("test": v("status"))
      SyntaxError: invalid syntax
       reason :  ETL config doesn't pass security check, detail: invalid syntax (<unknown>, line 5)
  • Uso inválido de operador.

    A SLS DSL exige funções integradas — como aquelas com prefixo op_* — para todas as operações, incluindo cálculos numéricos e comparações. O uso direto de operadores padrão não é permitido.

    • Log de erros

      {
        "errorMessage": "ETL config doesn't pass security check, detail: invalid type detected: <class `_ast.BinOp`> "
      }
    • Solução de problemas

      Revise suas regras de processamento SLS DSL e substitua qualquer uso direto de operador pelas funções integradas equivalentes.

    • Exemplos

      e_set("b", v("a") - 10) # Incorrect example
      e_set("b", op_sub(v("a"), 10)) # Correct example
      e_set("b", v("a") >= v("c")) # Incorrect example
      e_set("b", op_ge(v("a"), v("c"))) # Correct example
  • Tipo de parâmetro incorreto ou chamada de função inexistente.

    Esse erro ocorre quando o tipo de dados de um argumento não corresponde ao tipo de parâmetro esperado pela função ou ao chamar uma função inexistente.

    • Log de erros

      {
        "errorMessage": "ETL config doesn't pass security check, detail: invalid call in detected: function_name"
      }
    • Solução de problemas

      • Verifique se a função existe e se o nome está escrito corretamente. Caso o nome esteja correto, confirme se os argumentos possuem os tipos de dados adequados.

      • Use as informações de traceback do log de erros para identificar a função que causou a falha. Por exemplo, se o erro for originado na função dt_totimestamp, confirme primeiro se ela existe. Em seguida, revise a regra onde dt_totimestamp é chamada para garantir a passagem dos tipos de parâmetros corretos.

        File "/usr/local/lib/python3.7/ast.py", line 262, in visit
        return visitor(node)
        File "/usr/local/python-etl/aliyunlogetl_common/core/restrict_config_parser.py", line 50, in visit_Call
        raise InvalidETLConfig("invalid call id detected: {}".format(node.func.id))
        aliyunlogetl_common.core.restrict_config_parser.InvalidETLConfig: invalid call id detected: dt_totimestamp
        reason : ETL config doesn't pass security check, detail: invalid call id detected: dt_totimestamp
    • Exemplos

      A função dt_totimestamp espera um objeto datetime. Neste caso, v("time1") retorna uma string, causando um erro de incompatibilidade de tipo.

      Para corrigir, use dt_parse para converter a string em um objeto datetime antes de passá-la para dt_totimestamp. Como alternativa, utilize dt_parsetimestamp, que aceita argumentos do tipo string diretamente.

      # Incorrect example
      e_set("time1", "2019-06-03 2:41:26")
      e_set("time2", dt_totimestamp(v("time1")))
      # Correct example
      e_set("time1", "2019-06-03 2:41:26")
      e_set("time2", dt_totimestamp(dt_parse(v("time1"))))
      # Correct example
      e_set("time1", "2019-06-03 2:41:26")
      e_set("time2", dt_parsetimestamp(v("time1")))
  • Chamada de função de expressão como operação global.

    A SLS DSL fornece dois tipos de funções: operações globais e funções de expressão. Apenas operações globais podem ser chamadas como etapas independentes em uma regra de processamento. Chamar uma função de expressão diretamente como operação global causa erro.

    • Log de erros

      {
        "errorMessage": "ETL config doesn't pass security check, detail:  invalid type detected: <class '_ast.Expr'>"
      }
    • Solução de problemas

      Verifique suas regras de processamento para garantir que nenhuma função de expressão seja chamada como operação global independente. Envolva-as em uma função de operação global, como e_set.

    • Exemplos

      # Incorrect example
      op_add(v("a"), v("b"))
      str_lower(v("name"))
      # Correct example
      e_set("add", op_add(v("a"), v("b")))
      e_set("lower", str_lower(v("name")))
  • Atribuição de variável inválida.

    A SLS DSL não suporta atribuição de variáveis. Passe valores entre funções sem estado (stateless).

    • Log de erros

      {
        "errorMessage": "ETL config doesn't pass security check, detail: invalid assign detected: variable_name"
      }
    • Solução de problemas

      • Verifique se há alguma atribuição de variável nas suas regras de processamento SLS DSL.

      • Use as informações de traceback no log de erros para localizar a linha onde o erro ocorre.

    • Exemplos

      # Incorrect example
      sum_value = op_add(v("a"), v("b"))
      e_set("sum", sum_value)
      # Correct example
      e_set("sum", op_add(v("a"), v("b")))