用途 通过 Python SDK(alibabacloud_sls20201230)调用阿里云日志服务 SLS,封装列出 Project、列出日志库、查询日志三类操作,适用于「列出 Project」「列出 LogStore」「查询 SLS 日志」「搜索与分析日志」等场景。
主要能力
- ListProject:列出账号下符合条件的 Project,支持 project_name 模糊匹配、offset/size 分页(size 最大 500)、resource_group_id、fetch_quota 等参数。
- ListLogStores:列出指定 project 下的 LogStore,支持 logstore_name 模糊过滤、offset/size 分页、telemetry_type、mode。
- GetLogsV2:按时间范围与查询语句拉取日志,时间区间左闭右开 [from, to) 且 from < to;支持 query、line/offset、reverse、topic、power_sql、session(如 mode=scan)和 Accept-Encoding(如 lz4、gzip)。分析语句分页通常需用 SQL LIMIT,line/offset 往往不生效。
使用方式
- 前置检查凭证:环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID / ALIBABA_CLOUD_ACCESS_KEY_SECRET,或当前目录 .env(见 .env.example),缺失时不应继续调用 API。
- 安装依赖:pip install -r aliyun-sls-skills/scripts/requirements.txt,或手动安装 alibabacloud_sls20201230 alibabacloud_credentials alibabacloud_tea_openapi alibabacloud_tea_util python-dotenv。
- 创建 Client:endpoint 为 {region}.log.aliyuncs.com;可使用显式 AK/SK,也可用 CredentialClient() 走无 AK 链。
- 运行示例脚本,例如:cd aliyun-sls-skills 后执行 python scripts/list_project.py、python scripts/list_logstores.py --region cn-hangzhou --project your-project、python scripts/get_logs_v2.py --region cn-hangzhou --project your-project --logstore your-logstore --recent-minutes 15 --query "error"。
- 配置复用:在当前工作目录 .aliyun-config.json 保存 region、project、logstores、default_logstore、last_query_at,支持对象(单项目)与数组(多项目)两种格式;仅读写 sls 字段,不覆盖 oss、cdn 等其他产品配置。查询成功后更新对应条目的 last_query_at。
适用场景 不确定 project 名称时先 ListProject;不确定 logstore 时先 ListLogStores 再 GetLogsV2;常见于检索错误日志、SQL 分析与 scan 模式查询。
限制 凭证缺失时不能调用 API;SDK 请求字段名以 alibabacloud_sls20201230.models 为准(如 GetLogsV2Request 用 from_、to,而非 from_time/to_time);时间参数格式与 query 语法不合法会报 ParameterInvalid;参考 API 契约见 reference/ 下的 YML,最终以 SLS 官方文档与当前 SDK 模型为准。配置文件中不应存储 AK/SK 等敏感凭证。