跳轉到

指令碼開發 / 聯結器物件 DFF.CONN / 阿里雲日誌服務 SLS

阿里雲日誌服務 SLS 聯結器操作物件用於列出 Project 和 Logstore,並查詢日誌。

DFF.CONN(...) 引數如下:

引數 型別 必須 / 預設值 說明
connector_id str 必須 聯結器 ID

AccessKey 憑據來自聯結器配置,不需要也不應在指令碼程式碼中傳入。

.list_projects()

返回當前憑據有權訪問的 Project 名稱,格式為 list[str]。

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

此方法使用 SDK 的預設分頁引數,單次最多返回 100 個 Project,且不支援傳入分頁引數。

.list_logstores(...)

列出指定 Project 下的 Logstore,引數如下:

引數 型別 必須 / 預設值 說明
project str 必須 Project 名稱

返回值格式為 list[str]。

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

此方法使用 SDK 的預設分頁引數,單次最多返回 100 個 Logstore,且不支援傳入分頁引數。

.query(...)

查詢指定 Project 和 Logstore 中的日誌。引數會直接傳給 aliyun-log-python-sdk 的日誌查詢介面:

引數 型別 必須 / 預設值 說明
project str 必須 Project 名稱
logstore str 必須 Logstore 名稱
from_time int/str 必須 查詢開始時間,可傳入 Unix 秒時間戳或 SLS 支援的可讀時間字串
to_time int/str 必須 查詢結束時間,可傳入 Unix 秒時間戳或 SLS 支援的可讀時間字串
topic str None 限定日誌主題
query str None SLS 查詢語句
reverse bool False 是否優先返回較新的日誌
offset int 0 返回結果的起始偏移量
size int 100 最大返回條數;-1 表示請求全部結果
power_sql bool False 是否使用增強 SQL 模式
scan bool False 是否使用 Scan 查詢模式
forward bool True Scan 查詢的翻頁方向,True 表示下一頁,False 表示上一頁
accurate_query bool True 是否使用精確查詢模式
from_time_nano_part int 0 查詢開始時間的納秒部分
to_time_nano_part int 0 查詢結束時間的納秒部分
示例
 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)

返回值格式為 list[dict],每條日誌包含以下欄位:

欄位 型別 說明
contents dict 日誌內容
timestamp int 日誌時間,Unix 秒時間戳

SDK 查詢失敗時,其異常會直接向上丟擲。

限制查詢範圍和返回數量

大範圍日誌查詢可能產生較高開銷。定時任務應使用 _DFF_TRIGGER_TIME 構造穩定的查詢視窗,並根據實際需求限制時間範圍和 size。