本文介紹如何使用阿里云日志服務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
}
}