全部产品
Search
文档中心

Simple Log Service:Bagaimana cara memperbaiki kesalahan yang terjadi selama penarikan data dari OSS?

更新时间:Jun 26, 2025

Jika aturan transformasi Logstore melibatkan penarikan data dari Object Storage Service (OSS), kesalahan penarikan atau pembaruan data dapat terjadi. Topik ini menjelaskan jenis-jenis kesalahan tersebut dan metode pemecahannya.

Setelah membaca data dari Logstore, mesin transformasi data mulai mentransformasi peristiwa log dalam Logstore. Jika aturan transformasi melibatkan penarikan data dari sumber eksternal seperti OSS, ApsaraDB for RDS, atau Logstore lainnya, kesalahan penarikan atau pembaruan data mungkin terjadi.

Dampak kesalahan

Untuk informasi lebih lanjut, lihat Dampak Kesalahan.

Metode pemecahan masalah

Untuk informasi lebih lanjut, lihat Solusi.

Kesalahan contoh

Catatan Pada contoh berikut, AK_ID mengacu pada ID AccessKey dan AK_KEY mengacu pada Rahasia AccessKey.
  • Path objek atau format salah
    Kesalahan 404 terjadi jika direktori "data" tidak ada di OSS atau format objek salah.
    • Aturan transformasi
      # Dalam contoh ini, 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 "text" 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))
    • Pesan kesalahan
      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'}}
    • Penyebab kesalahan

      Kesalahan ini terjadi karena path objek yang ditentukan salah. Jika kesalahan 404 terjadi dan pesan kesalahan melibatkan objek, maka path objek salah.

    • Metode pemecahan masalah
      Perbaiki pengaturan file dalam sintaks orkestrasi fungsi res_oss_file.
      # Dalam contoh ini, 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))
  • Kesalahan dekode objek
    Kesalahan dekode terjadi jika objek yang ditarik dari OSS gagal didekode atau metode dekode yang tidak ada digunakan.
    • 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'))
    • Pesan kesalahan
      {
        "reason": "LookupError: unknown encoding: unicode"
      }
    • Penyebab kesalahan

      Kesalahan ini terjadi karena encoding yang ditentukan salah. Jika pesan kesalahan unknown encoding: unicode dilaporkan, itu berarti parameter yang ditentukan salah.

    • Metode pemecahan masalah
      Perbaiki pengaturan encoding dalam sintaks orkestrasi fungsi res_oss_file.
      # Dalam contoh ini, format dekode adalah UTF-8.
      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'))
  • Kesalahan endpoint
    Kesalahan endpoint terjadi jika endpoint yang ditentukan dalam fungsi res_oss_file salah.
    • Endpoint yang ditentukan tidak ada.
      • 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))
      • Pesan kesalahan
        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)
      • Penyebab kesalahan

        Kesalahan ini terjadi karena endpoint yang ditentukan tidak ada. Jika nilai status adalah -2 dan pesan kesalahan melibatkan RequestError, itu berarti endpoint yang ditentukan tidak valid.

      • Metode pemecahan masalah

        Perbaiki pengaturan endpoint dalam sintaks orkestrasi fungsi res_oss_file.

    • Endpoint OSS yang ditentukan tidak sesuai dengan nama bucket.

      Dalam contoh ini, pemilik pasangan AccessKey memiliki izin untuk mengelola sumber daya di wilayah China (Hangzhou), tetapi endpoint yang ditentukan sesuai dengan wilayah China (Shanghai).

      • 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))
      • Pesan kesalahan
        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'}}
      • Penyebab kesalahan

        Kesalahan ini terjadi karena endpoint yang ditentukan dan pasangan AccessKey tidak berasal dari wilayah yang sama. Jika kesalahan 403 terjadi dan pesan kesalahan melibatkan bucket dan endpoint yang ditentukan, itu berarti endpoint dan pasangan AccessKey berasal dari wilayah yang berbeda.

      • Metode pemecahan masalah

        Perbaiki pengaturan encoding dalam sintaks orkestrasi fungsi res_oss_file.

  • Kesalahan izin
    • ID AccessKey atau Rahasia AccessKey yang ditentukan salah.
      Dalam contoh ini, ID AccessKey yang ditentukan dalam fungsi res_oss_file salah.
      • 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))
      • Pesan kesalahan
        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'}}
      • Penyebab kesalahan

        Kesalahan ini terjadi karena ID AccessKey atau Rahasia AccessKey yang ditentukan salah. Jika kesalahan 403 terjadi dan pesan kesalahan melibatkan ID AccessKey atau Rahasia AccessKey, itu berarti ID AccessKey atau Rahasia AccessKey salah.

      • Metode pemecahan masalah

        Perbaiki pengaturan AK_ID dan AK_KEY dalam sintaks orkestrasi fungsi res_oss_file.

    • Pemilik pasangan AccessKey tidak memiliki izin untuk mengakses bucket yang ditentukan.
      Dalam contoh ini, kesalahan akses bucket terjadi saat menggunakan fungsi res_oss_file.
      • 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'))
      • Pesan kesalahan
        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'}}
      • Penyebab kesalahan

        Kesalahan ini terjadi karena pemilik pasangan AccessKey tidak memiliki izin untuk mengakses bucket yang ditentukan. Jika kesalahan 403 terjadi dan pesan kesalahan melibatkan bucket yang ditentukan, itu berarti pemilik pasangan AccessKey tidak memiliki izin untuk mengakses bucket.

      • Metode pemecahan masalah

        Perbaiki pengaturan bucket dalam sintaks orkestrasi fungsi res_oss_file.

    • Bucket yang ditentukan tidak ada.
      Dalam contoh ini, kesalahan bucket terjadi saat menggunakan fungsi res_oss_file. Kesalahan terjadi karena bucket yang ditentukan tidak ada di OSS.
      • 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'))
      • Pesan kesalahan
        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'}}
      • Penyebab kesalahan

        Kesalahan ini terjadi karena bucket yang ditentukan tidak ada di OSS. Jika kesalahan 403 terjadi dan pesan kesalahan melibatkan bucket, itu berarti bucket tidak ada.

      • Metode pemecahan masalah

        Perbaiki pengaturan bucket dalam sintaks orkestrasi fungsi res_oss_file.

  • Kesalahan pembaruan objek
    Pesan kesalahan pembaruan objek termasuk dalam log. Contoh berikut menjelaskan tiga dari pesan kesalahan tersebut.
    • Pesan kesalahan berikut menunjukkan bahwa penarikan data pertama kali dari OSS gagal karena masalah jaringan dan aturan transformasi mencoba kembali menarik data.
      {
        "reason":"Gagal menarik data dari oss untuk pertama kalinya dan sedang mempersiapkan untuk menarik ulang ..."
      }
    • Pesan kesalahan berikut menunjukkan bahwa data objek yang ditentukan diperbarui secara berkala, tetapi fungsi sumber daya gagal menarik data baru dari OSS dan mencoba kembali menarik data.
      {
        "reason":"get_oss_byte mendapatkan kesalahan, mulai mencoba kembali ..."
      }
    • Pesan kesalahan berikut menunjukkan bahwa percobaan ulang gagal dan fungsi sumber daya memulai percobaan ulang lainnya. Maksimal tiga percobaan ulang dapat dilakukan.
      {
        "reason":"get_oss_byte mendapatkan kesalahan,refresh_interval ..."
      }