コンテンツにスキップ

スクリプト開発 / コネクターオブジェクト DFF.CONN / Alibaba Cloud Log Service SLS

Alibaba Cloud Log Service 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 のデフォルトのページングパラメータを使用します。1回の呼び出しで最大 100 個の Project を返し、ページングパラメータの指定はサポートされていません。

.list_logstores(...)

指定した Project 配下の Logstore を一覧表示します。パラメータは次のとおりです。

パラメータ 必須 / デフォルト値 説明
project str 必須 Project 名

戻り値の形式は list[str] です。

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

このメソッドは SDK のデフォルトのページングパラメータを使用します。1回の呼び出しで最大 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 を制限してください。