Lewati ke isi

Pengembangan Skrip / Objek Konektor DFF.CONN / Layanan Log Alibaba Cloud SLS

Objek operasi Konektor Layanan Log Alibaba Cloud SLS digunakan untuk mencantumkan Project dan Logstore, serta menanyakan log.

Parameter DFF.CONN(...) adalah sebagai berikut:

Parameter Tipe Wajib / Nilai Default Deskripsi
connector_id str Wajib ID Konektor

Kredensial AccessKey berasal dari konfigurasi Konektor, tidak perlu dan tidak boleh dimasukkan dalam kode Skrip.

.list_projects()

Mengembalikan nama Project yang dapat diakses oleh kredensial saat ini, dengan format list[str].

Contoh
1
2
sls = DFF.CONN('aliyun_sls_connector_id')
projects = sls.list_projects()

Metode ini menggunakan parameter paginasi default dari SDK, mengembalikan maksimal 100 Project dalam satu kali, dan tidak mendukung penyampaian parameter paginasi.

.list_logstores(...)

Mencantumkan Logstore di bawah Project yang ditentukan, dengan parameter sebagai berikut:

Parameter Tipe Wajib / Nilai Default Deskripsi
project str Wajib Nama Project

Format nilai pengembalian adalah list[str].

Contoh
1
logstores = sls.list_logstores('example-project')

Metode ini menggunakan parameter paginasi default dari SDK, mengembalikan maksimal 100 Logstore dalam satu kali, dan tidak mendukung penyampaian parameter paginasi.

.query(...)

Mengkueri log di Project dan Logstore yang ditentukan. Parameter akan langsung diteruskan ke antarmuka kueri log aliyun-log-python-sdk:

Parameter Tipe Wajib / Nilai Default Deskripsi
project str Wajib Nama Project
logstore str Wajib Nama Logstore
from_time int/str Wajib Waktu mulai kueri, dapat diisi dengan stempel waktu Unix dalam detik atau string waktu yang dapat dibaca yang didukung SLS
to_time int/str Wajib Waktu selesai kueri, dapat diisi dengan stempel waktu Unix dalam detik atau string waktu yang dapat dibaca yang didukung SLS
topic str None Membatasi topik log
query str None Pernyataan kueri SLS
reverse bool False Apakah memprioritaskan mengembalikan log yang lebih baru
offset int 0 Offset awal dari hasil yang dikembalikan
size int 100 Jumlah maksimum yang dikembalikan; -1 berarti meminta semua hasil
power_sql bool False Apakah menggunakan mode SQL yang disempurnakan
scan bool False Apakah menggunakan mode kueri Scan
forward bool True Arah paginasi untuk kueri Scan, True berarti halaman berikutnya, False berarti halaman sebelumnya
accurate_query bool True Apakah menggunakan mode kueri presisi
from_time_nano_part int 0 Bagian nanodetik dari waktu mulai kueri
to_time_nano_part int 0 Bagian nanodetik dari waktu selesai kueri
Contoh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
sls = DFF.CONN('aliyun_sls_connector_id')

query_args = {
    'project'  : 'example-project',
    'logstore' : 'application',
    'from_time': _DFF_TRIGGER_TIME - 3600,
    'to_time'  : _DFF_TRIGGER_TIME,
    'query'    : 'error',
    'size'     : 100,
}
logs = sls.query(**query_args)

Format nilai pengembalian adalah list[dict], setiap log berisi field berikut:

Field Tipe Deskripsi
contents dict Isi log
timestamp int Waktu log, stempel waktu Unix dalam detik

Ketika kueri SDK gagal, pengecualiannya akan langsung dilemparkan ke atas.

Batasi cakupan kueri dan jumlah hasil yang dikembalikan

Kueri log dalam skala besar dapat menimbulkan biaya yang cukup tinggi. Tugas Terjadwal harus menggunakan _DFF_TRIGGER_TIME untuk membangun jendela kueri yang stabil, dan membatasi rentang waktu serta size sesuai kebutuhan aktual.