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
- 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
filedalam sintaks orkestrasi fungsires_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))
- Aturan transformasi
- 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
encodingyang ditentukan salah. Jika pesan kesalahanunknown encoding: unicodedilaporkan, itu berarti parameter yang ditentukan salah. - Metode pemecahan masalah Perbaiki pengaturan
encodingdalam sintaks orkestrasi fungsires_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'))
- Aturan transformasi
- Kesalahan endpoint Kesalahan endpoint terjadi jika
endpointyang ditentukan dalam fungsires_oss_filesalah.- 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
-2dan pesan kesalahan melibatkanRequestError, itu berarti endpoint yang ditentukan tidak valid. - Metode pemecahan masalah
Perbaiki pengaturan
endpointdalam sintaks orkestrasi fungsires_oss_file.
- Aturan transformasi
- 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
endpointyang 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
encodingdalam sintaks orkestrasi fungsires_oss_file.
- Aturan transformasi
- Endpoint yang ditentukan tidak ada.
- Kesalahan izin
- ID AccessKey atau Rahasia AccessKey yang ditentukan salah. Dalam contoh ini, ID AccessKey yang ditentukan dalam fungsi
res_oss_filesalah.- 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.
- Aturan transformasi
- 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
- Metode pemecahan masalah
Perbaiki pengaturan bucket dalam sintaks orkestrasi fungsi
res_oss_file.
- Aturan transformasi
- 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.
- Aturan transformasi
- ID AccessKey atau Rahasia AccessKey yang ditentukan salah.
- 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 ..." }
- Pesan kesalahan berikut menunjukkan bahwa penarikan data pertama kali dari OSS gagal karena masalah jaringan dan aturan transformasi mencoba kembali menarik data.