本文介绍如何使用阿里云日志服务Python SDK开发包,调用日志服务ListProject接口查询Project信息。
查看OpenAPI文档
在调用OpenAPI前,建议您先阅读对应接口文档,了解、学习调用该接口所需要的参数及权限等。更多信息,请参见API概览。
创建RAM用户并完成授权
阿里云账号(主账号)的AccessKey拥有所有API的访问权限,建议您创建RAM用户并按需为其分配最小权限。避免使用阿里云账号(主账号)密码或访问密钥(AccessKey),从而降低企业的安全风险。
使用阿里云账号(主账号)或RAM管理员登录RAM控制台。
创建RAM用户。
在左侧导航栏,选择
。在用户页面,单击创建用户。
在创建用户页面,设置登录名称和显示名称均为openapi-operator,访问方式选择OpenAPI调用访问。
单击确定。
重要创建RAM用户成功后,系统将自动为该RAM用户生成一个AccessKey ID和AccessKey Secret。更多信息,请参见创建AccessKey。
请保存好AccessKey ID和AccessKey Secret,您在调用OpenAPI时,需要使用RAM用户的AccessKey ID和AccessKey Secret。
为RAM用户授权。
说明创建RAM用户后,该RAM用户无任何权限,建议您遵循最小化原则,按需授予RAM用户必要的权限。本示例以授予RAM用户AliyunLogReadOnlyAccess权限为例,为您说明具体授权步骤。
在用户页面,单击目标RAM用户(openapi-operator)操作列的添加权限。
在新增授权页面,选中AliyunLogReadOnlyAccess,然后单击确认新增授权。
确认授权结果,单击关闭。
权限策略说明:
策略名称
说明
AliyunLogFullAccess
管理日志服务(Log)的权限
AliyunLogReadOnlyAccess
只读访问日志服务(Log)的权限
自定义策略
当系统策略无法满足您的需求,您可以通过创建自定义策略实现精细化权限管理。
具体操作,请参见创建自定义权限策略。
权限策略示例请参见RAM自定义授权示例和日志服务RAM授权策略。
调用OpenAPI
本文介绍阿里云Python SDK方式调用OpenAPI,其他语言SDK的用法也类似。更多信息,请参见日志服务SDK。
准备Python环境
安装Python。更多信息,请参见Python官网。
日志服务Python SDK支持Python3及以上版本。
您可以执行python -V
命令查看您已安装的Python版本。
配置环境变量
为避免将AccessKey硬编码到业务代码中,带来安全风险,推荐使用环境变量方式管理AccessKey。
Linux系统、macOS系统
将以下命令中的
<access_key_id>
和<access_key_secret>
替换为已准备好的RAM用户的AccessKey ID和AccessKey Secret,然后在终端执行如下命令。export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>
Windows系统
新建环境变量文件,添加环境变量
ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
,并写入已准备好的RAM用户的AccessKey ID和AccessKey Secret,然后重启Windows系统。
下载示例代码
访问ListProject。
在左侧的参数配置页签,填写需要的参数信息,例如输入待查询的projectName。
在右侧的SDK示例页签,选择Python语言,单击下载完整工程,下载示例代码包。
在本地解压示例代码包并进入alibabacloud_sample目录。
安装依赖
下载示例代码后,您可以查看README.md文件查看SDK版本、依赖项等信息。
pip install alibabacloud-sls20201230
运行代码
运行sample.py文件,返回示例如下:
[LOG]
{
"headers": {
"server": "AliyunSLS",
"content-type": "application/json",
"content-length": "230",
"connection": "keep-alive",
"access-control-allow-origin": "*",
"date": "Tue, 25 Jul 2023 10:08:25 GMT",
"x-log-time": "1690279705",
"x-log-requestid": "64BF9F199ED2B749708E5445"
},
"statusCode": 200,
"body": {
"count": 1,
"projects": [
{
"createTime": "1656666120",
"description": "",
"lastModifyTime": "1665978308",
"owner": "",
"projectName": "re****-nginx",
"region": "cn-hangzhou",
"resourceGroupId": "rg-a****a",
"status": "Normal"
}
],
"total": 1
}
}