All Products
Search
Document Center

Simple Log Service:Kesalahan startup mesin transformasi data

Last Updated:Jun 11, 2026

Jika mesin transformasi data gagal memulai, kemungkinan besar aturan SLS DSL Anda mengandung kesalahan yang tidak lolos pemeriksaan keamanan mesin. Topik ini menjelaskan kesalahan startup paling umum dan cara memperbaikinya.

Mesin transformasi data menjalankan pemeriksaan keamanan terhadap aturan SLS DSL Anda pada awal setiap task transformasi. Jika pemeriksaan gagal, mesin tidak akan dimulai.加工引擎启动

Log error

Saat mesin mendeteksi error selama startup, ia mengembalikan pesan dalam format berikut.

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

Lihat log error di bagian detail exception Laporan diagnostik transformasi data atau di Logstore internal-etl-log.

  • Jika terjadi kesalahan startup, task akan terus mencoba ulang hingga berhasil atau Anda menghentikannya secara manual.

  • Setelah Anda memperbaiki aturan pemrosesan, task akan berhasil pada percobaan ulang berikutnya dan melanjutkan operasi normal. Tidak ada log yang hilang atau duplikat.

Penyelesaian masalah error umum

  • Kesalahan sintaks dasar.

    Error ini terjadi ketika aturan pemrosesan melanggar tata bahasa SLS DSL — misalnya, tanda kurung tidak seimbang atau penggunaan titik dua (:) menggantikan koma (,).

    • Log error

      {
        "errorMessage": "ETL config doesn't pass security check, detail: invalid syntax"
      }
      {
        "errorMessage": "ETL config doesn't pass security check, detail: unexpected EOF while parsing"
      }
    • Pemecahan masalah

      Gunakan informasi traceback dalam log error untuk menemukan lokasi pasti kesalahan sintaks. Sebagai contoh, error berikut terjadi ketika e_set("test": v("status")) digunakan menggantikan 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)
  • Penggunaan operator yang tidak valid.

    SLS DSL mewajibkan penggunaan fungsi bawaan — seperti yang memiliki awalan op_* — untuk semua operasi, termasuk perhitungan numerik dan perbandingan. Penggunaan langsung operator standar tidak diperbolehkan.

    • Log error

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

      Tinjau aturan pemrosesan SLS DSL Anda dan ganti semua penggunaan operator langsung dengan fungsi bawaan SLS DSL yang setara.

    • Contoh

      e_set("b", v("a") - 10) # Contoh salah
      e_set("b", op_sub(v("a"), 10)) # Contoh benar
      e_set("b", v("a") >= v("c")) # Contoh salah
      e_set("b", op_ge(v("a"), v("c"))) # Contoh benar
  • Tipe parameter tidak sesuai atau pemanggilan fungsi yang tidak ada.

    Error ini terjadi ketika tipe data argumen tidak sesuai dengan tipe parameter yang diharapkan oleh fungsi, atau ketika Anda memanggil fungsi yang tidak ada.

    • Log error

      {
        "errorMessage": "ETL config doesn't pass security check, detail: invalid call in detected: function_name"
      }
    • Pemecahan masalah

      • Verifikasi bahwa fungsi tersebut ada dan penulisannya benar. Jika nama sudah benar, periksa apakah argumennya memiliki tipe data yang sesuai.

      • Gunakan informasi traceback dari log error untuk mengidentifikasi fungsi yang menyebabkan error. Misalnya, jika error berasal dari fungsi dt_totimestamp, pertama-tama pastikan fungsi tersebut memang ada. Kemudian, tinjau aturan tempat dt_totimestamp dipanggil untuk memastikan Anda meneruskan tipe parameter yang benar.

        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
    • Contoh

      Fungsi dt_totimestamp mengharapkan objek datetime. Di sini, v("time1") mengembalikan string, sehingga menyebabkan error ketidaksesuaian tipe.

      Untuk memperbaikinya, gunakan dt_parse untuk mengonversi string menjadi objek datetime sebelum meneruskannya ke dt_totimestamp. Atau, gunakan dt_parsetimestamp, yang menerima argumen string secara langsung.

      # Contoh salah
      e_set("time1", "2019-06-03 2:41:26")
      e_set("time2", dt_totimestamp(v("time1")))
      # Contoh benar
      e_set("time1", "2019-06-03 2:41:26")
      e_set("time2", dt_totimestamp(dt_parse(v("time1"))))
      # Contoh benar
      e_set("time1", "2019-06-03 2:41:26")
      e_set("time2", dt_parsetimestamp(v("time1")))
  • Memanggil fungsi ekspresi sebagai operasi global.

    SLS DSL menyediakan dua jenis fungsi: fungsi operasi global dan fungsi ekspresi. Hanya fungsi operasi global yang dapat dipanggil sebagai langkah mandiri dalam aturan pemrosesan. Memanggil fungsi ekspresi secara langsung sebagai operasi global akan menyebabkan error.

    • Log error

      {
        "errorMessage": "ETL config doesn't pass security check, detail:  invalid type detected: <class '_ast.Expr'>"
      }
    • Pemecahan masalah

      Periksa aturan pemrosesan Anda untuk memastikan tidak ada fungsi ekspresi yang dipanggil sebagai operasi global mandiri. Bungkus fungsi tersebut di dalam fungsi operasi global seperti e_set.

    • Contoh

      # Contoh salah
      op_add(v("a"), v("b"))
      str_lower(v("name"))
      # Contoh benar
      e_set("add", op_add(v("a"), v("b")))
      e_set("lower", str_lower(v("name")))
  • Penugasan variabel tidak valid.

    SLS DSL tidak mendukung penugasan variabel. Teruskan nilai antar fungsi secara tanpa status (stateless).

    • Log error

      {
        "errorMessage": "ETL config doesn't pass security check, detail: invalid assign detected: variable_name"
      }
    • Pemecahan masalah

      • Periksa aturan pemrosesan SLS DSL Anda untuk menemukan penugasan variabel apa pun.

      • Gunakan informasi traceback dalam log error untuk menemukan baris tempat error terjadi.

    • Contoh

      # Contoh salah
      sum_value = op_add(v("a"), v("b"))
      e_set("sum", sum_value)
      # Contoh benar
      e_set("sum", op_add(v("a"), v("b")))