All Products
Search
Document Center

Simple Log Service:Error saat mengambil data dari OSS

Last Updated:Jun 17, 2026

Jika aturan transformasi melibatkan pemuatan resource dari Object Storage Service (OSS), error pemuatan atau pembaruan resource dapat terjadi. Pelajari penyebab umum dan cara melakukan troubleshooting.

Setelah Mesin DPI membaca data dari Logstore sumber, log event tersebut ditransformasikan. Jika aturan transformasi memuat resource eksternal dari OSS, ApsaraDB RDS, atau Logstore lainnya, error pemuatan atau pembaruan resource dapat terjadi.

Dampak error

Bidang logging.levelname dalam log error menentukan tingkat error: WARNING atau ERROR.

  • Untuk error tingkat ERROR, log event yang terpengaruh akan dibuang. Output transformasi tidak menyertakan event ini, dan pemrosesan dilanjutkan ke log event berikutnya tanpa percobaan ulang.

  • Untuk error tingkat WARNING, seperti ketidaksesuaian regex, langkah DSL saat ini dilewati untuk event tersebut, dan pemrosesan dilanjutkan ke langkah berikutnya.

Troubleshooting

  • Periksa bidang logging.levelname dalam log error untuk menentukan tingkat error.

  • Periksa bidang message dalam log error untuk mengidentifikasi log event mana yang menyebabkan error. Untuk informasi lebih lanjut, lihat View error logs.

  • Periksa bidang reason dalam log error untuk menentukan penyebab error pada log event tersebut.

Berdasarkan penyebabnya, tambahkan logika ke skrip transformasi Anda untuk menangani exception ini. Anda dapat menggunakan fungsi kontrol proses, seperti e_if dan e_switch, untuk menangkap dan mengelola error ini. Berikut adalah contoh log error: Bidang message berisi detail log event yang gagal, dan bidang reason menunjukkan penyebab error, yaitu integer division or modulo by zero:

07-26 16:21:48
    __source__:
    __tag__:__job_name__: etl-preview-1564110081-604324
    __tag__:__schedule_type__: DryRun
    __topic__: __etl-log-status__
    etl_context: {
      "project": "ali-licheng-test-uk2",
      "logstore": "source_logstore",
      "shard_id": "2"}
    event_id: transorm_data:process:fail
    extra_info_params: {"src_event": {"__time__": "1563266137", "__topic__": "", "__source__": xxx, "__tag__:__client_ip__": xxx,
    "__tag__:__receive_time__": "1563774221", "body_bytes_sent": "740", "client_ip": "1.2.3.4", "host": "m.abcd.com", "status": "403"}}
    logging: {"process": "34", "levelname": "ERROR", "funcName": "_transform_events_to_logstore", "module": "logclient_operator", "threadName": "MainThread",
    "thread": "139890150307648", "processName": "ForkProcess-1"}
    message: [ali-licheng-test-uk2/source_logstore/2]transform_data: fail to process event: {"__time__": "1563266137", "__topic__": "", "__source__": xxx,
    "__tag__:__client_ip__": xxx, "__tag__:__receive_time__": "1563774221", "body_bytes_sent": "740", "client_ip": "1.2.3.4", "host": "m.abcd.com", "status": "403"},
    detail=integer division or modulo by zero
    reason: integer division or modulo by zero

Error umum saat mengambil data dari OSS

Catatan

Pada contoh berikut, AK_ID adalah singkatan dari AccessKeyId, dan AK_KEY adalah singkatan dari AccessKeySecret.

Jalur file atau format file salah

Log error 404 dihasilkan karena direktori `data` tidak ada di OSS atau format file salah.

  • Contoh aturan transformasi

    # Anggap bahwa direktori yang benar adalah test.
    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'data/test.txt', format='text', change_detect_interval=20))
    # Format ini tidak ada di direktori test.
    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'test/test.dat', format='text', change_detect_interval=20))
  • Log error

    message:  Exception: {'status': 404, 'x-oss-request-id': '5D49****878', 'details': {'Code': 'NoSuchKey', 'Message': 'The specified key does not exist.', 'RequestId': '5D4***8878', 'HostId': 'lo***g.oss-cn-hangzhou.aliyuncs.com', 'Key': 'oss/test.txt'}}
  • Troubleshooting

    Periksa log event yang menyebabkan error. Jika status dalam pesan error adalah 404 dan bidang Messages terkait dengan file, pertama-tama periksa apakah jalur file sudah benar.

  • Solusi

    Ubah parameter res_oss_file dalam orkestrasi fungsi file menjadi jalur file yang benar.

    # Anggap bahwa direktori yang benar adalah test.
    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'test/test.txt', format='text', change_detect_interval=20))

Error decoding file

Terjadi error saat file yang ditarik dari OSS didecode atau saat metode decoding yang tidak didukung digunakan.

  • Contoh aturan transformasi

    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'test/test.txt', format='text', change_detect_interval=20, encoding='unicode'))
  • Log error

    {
      "reason": "LookupError: unknown encoding: unicode"
    }
  • Troubleshooting

    Periksa log event yang menyebabkan error. Jika pesan error adalah unknown encoding: unicode, periksa apakah parameter encoding untuk decoding file sudah benar.

  • Solusi

    Ubah nilai parameter encoding dalam orkestrasi fungsi res_oss_file menjadi format decoding yang benar.

    # Anggap bahwa format decoding yang benar adalah utf8.
    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'test/test.txt', format='text', change_detect_interval=20,encoding='utf8'))

Error Endpoint

Endpoint salah saat Anda menggunakan fungsi res_oss_file.

Endpoint tidak ada

  • Contoh aturan transformasi

    e_set("oss_file",res_oss_file("https://oss-cn-asd.aliyuncs.com", ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), 'your bucket', 'test/test.txt', format='text', change_detect_interval=20))
  • Log error

    message:  get_oss_bytes get errors:{'status': -2, 'x-oss-request-id': '', 'details': "RequestError: HTTPSConnectionPool(host='log-etl-staging.oss-cn-asd.aliyuncs.com', port=443)
  • Troubleshooting

    Periksa log event error. Jika pesan error adalah -2 dan bidang Message menunjukkan RequestError, periksa apakah endpoint tersebut valid.

  • Solusi

    Ubah nilai parameter endpoint dalam orkestrasi fungsi res_oss_file menjadi nilai yang benar.

Endpoint OSS tidak sesuai dengan nama bucket

AccessKey yang diotorisasi memiliki izin untuk melakukan operasi di wilayah Hangzhou, tetapi Endpoint diatur ke wilayah Shanghai.

  • Contoh aturan transformasi

    e_set("oss_file",res_oss_file("https://oss-cn-shanghai.aliyuncs.com", ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), 'your bucket', 'test/test.txt', format='text', change_detect_interval=20))
  • Log error

    message:  get_oss_bytes get errors:{'status': 403, 'x-oss-request-id': '5D7219353A90A2852B234D14', 'details': {'Code': 'AccessDenied', 'Message': 'The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.', 'RequestId': '5D7**14', 'HostId': 'log-**.oss-cn-shanghai.aliyuncs.com', 'Bucket': 'log-**', 'Endpoint': 'oss-cn-hangzhou.aliyuncs.com'}}
  • Troubleshooting

    Periksa log event yang menyebabkan error. Jika pesan error adalah 403 dan bidang Message merujuk pada bucket dan endpoint, pastikan bahwa endpoint dan AccessKey berada di wilayah yang sama.

  • Solusi

    Pada orkestrasi fungsi res_oss_file, atur parameter encoding ke format decoding yang benar.

Error izin

AccessKey salah

AccessKey salah saat Anda menggunakan fungsi res_oss_file.

  • Contoh aturan transformasi

    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), 'your bucket', 'test/test.txt', format='text', change_detect_interval=20))
  • Log error

    message: Exception: {'status': 403, 'x-oss-request-id': '5D***BEB6', 'details': {'Code': 'InvalidAccessKeyId', 'Message': 'The OSS Access Key Id you provided does not exist in our records.', 'RequestId': '5D4***BEB6', 'HostId': 'lo***g.oss-cn-hangzhou.aliyuncs.com', 'OSSAccessKeyId': 'LT***Ai'}}
  • Troubleshooting

    Periksa log event yang menyebabkan error. Jika pesan error adalah 403 dan bidang Message terkait dengan AccessKey, periksa apakah AccessKey tersebut benar.

  • Solusi

    Perbaiki Informasi AccessKey dalam orkestrasi fungsi res_oss_file.

Error izin bucket

Terjadi error bucket saat Anda menggunakan fungsi res_oss_file.

  • Contoh aturan transformasi

    e_set("oss_file",res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com',ak_id=os.getenv("SLS_ACCESS_KEY_ID"),
                         ak_key=os.getenv("SLS_ACCESS_KEY_SECRET"),
                         bucket='log', file='test.txt',
                         change_detect_interval=30, encoding='utf8'))
  • Log error

    message: Exception: {'status': 403, 'x-oss-request-id': '5D674CE8BE0EBC45166026C5', 'details': {'Code': 'AccessDenied', 'Message': 'You have no right to access this object because of bucket acl.', 'RequestId': '5D4***BEB6', 'HostId': 'log.oss-cn-hangzhou.aliyuncs.com'}}
  • Troubleshooting

    Periksa log event yang menyebabkan error. Jika pesan error adalah 403 dan bidang Message terkait dengan bucket, periksa apakah Anda memiliki izin untuk mengoperasikan bucket tersebut.

  • Solusi

    Perbaiki informasi bucket dalam orkestrasi fungsi res_oss_file.

Bucket tidak ada

Bucket yang ditentukan tidak ada di OSS.

  • Contoh aturan transformasi

    e_set("oss_file",res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com',ak_id=os.getenv("SLS_ACCESS_KEY_ID"),
                         ak_key=os.getenv("SLS_ACCESS_KEY_SECRET"),
                         bucket='twiss', file='test.txt',
                         change_detect_interval=30, encoding='utf8'))
  • Log error

    message: Exception: {'status': 404, 'x-oss-request-id': '5D75F6E9BB4097C678A381EF', 'details': {'Code': 'NoSuchBucket', 'Message': 'The specified bucket does not exist.', 'RequestId': '5D75F6E9BB4097C678A381EF', 'HostId': 'twiss.oss-cn-hangzhou.aliyuncs.com', 'BucketName': 'twiss'}}
  • Troubleshooting

    Periksa log event error. Jika kode error adalah 403 dan bidang Message terkait dengan bucket, pastikan bahwa bucket tersebut ada.

  • Solusi

    Perbaiki informasi bucket dalam orkestrasi fungsi res_oss_file.

Log error untuk pembaruan file terjadwal

Log error berikut hanya muncul dalam catatan log backend selama pembaruan file terjadwal.

  • Log berikut menunjukkan bahwa upaya pertama untuk mengambil resource gagal, kemungkinan karena masalah jaringan, dan sedang dipersiapkan untuk mencoba ulang.

    {
      "reason":"Failed to pull data from oss for the first time and it is preparing to re-pull ..."
    }
  • Log berikut menunjukkan bahwa backend melakukan pembaruan secara berkala, tetapi fungsi resource baru gagal mengambil data dan sedang mempersiapkan percobaan ulang.

    {
      "reason":"get_oss_byte get errors,begin retry ..."
    }
  • Log berikut menunjukkan bahwa percobaan ulang gagal dan sedang dipersiapkan percobaan ulang lainnya. Maksimal tiga kali percobaan ulang dilakukan.

    {
      "reason":"get_oss_byte get errors,refresh_interval ..."
    }