你可以使用EDAS提供的Python SDK進行API調用。
獲取Python SDK
Python 2.7.x以上版本。
- 使用pip快速安裝(聯網環境下推薦)
root# pip install -U aliyun-python-sdk-core root# pip install -U aliyun-python-sdk-edas
說明 root#表示在Linux環境下需要用root用戶執行命令,macOS環境下請在命令前添加sudo來執行上面這兩條命令,建議每隔2~3個月就執行上面的命令更新上面的2個SDK包的版本。 - 離線安裝(無互聯網連接的環境)
- 在聯網環境訪問阿里云開放平臺,根據頁面提示下載Python SDK核心庫。
- 將得到的壓縮包上傳至需要運行Python API調用程序的目標主機中并解壓,然后依次進入aliyun-python-sdk-core和aliyun-python-sdk-edas子目錄,分別執行以下命令安裝aliyun-python-sdk-core和aliyun-python-sdk-edas這兩個Python
SDK:
root# python setup.py install
使用Python SDK調用API
實際使用時,請替換下面示例中的aliyun_user_ak、aliyun_user_sk、region_id這 3 個公共參數及其他必要的參數,公共參數的詳細信息請參見API調用公共參數 。
#!/usr/bin/env python
# -*- coding=UTF-8 -*-
import sys, json
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.profile import region_provider
from aliyunsdkedas.request.v20170801.ListApplicationRequest import ListApplicationRequest
from aliyunsdkedas.request.v20170801.ListDeployGroupRequest import ListDeployGroupRequest
if __name__ == '__main__':
#請填寫阿里云賬號或RAM用戶的AccessKey ID.
aliyun_user_ak = 'LTAIPQxxxxxxxxxx'
#請填寫阿里云賬號或RAM用戶的AccessKey Secret.
aliyun_user_sk = 'W75qdr9ORkxxxxxxxxxxxxxx'
#請填寫要執行API調用的應用及ECS、SLB、VPC等資源所在地域ID。
region_id = 'cn-shanghai'
client = AcsClient(ak=aliyun_user_ak, secret=aliyun_user_sk, region_id=region_id, timeout=300)
applist_req = ListApplicationRequest()
applist_resp = json.loads(client.do_action_with_exception(applist_req))
if applist_resp['Code'] == 200:
applist = applist_resp['ApplicationList']['Application']
for app in applist:
app_name = app['Name']
app_id = app['AppId']
print u'應用名稱 : ' + app_name + u', 應用Id : ' + app_id
dglist_req = ListDeployGroupRequest()
dglist_req.set_AppId(app_id)
dglist_resp = json.loads(client.do_action_with_exception(dglist_req))
if dglist_resp['Code'] == 200:
dglist = dglist_resp['DeployGroupList']['DeployGroup']
for dg in dglist:
dg_name = dg['GroupName']
if dg_name == '_DEFAULT_GROUP':
dg_name = u'默認分組'
dg_id = dg['GroupId']
print u'\t分組名: ' + dg_name + u', 分組ID: ' + dg_id
else:
print u'獲取' + app_name + u'應用的分組列表失敗.'
else:
print u'獲取應用列表失敗.'
說明
- 從aliyun-python-sdk-core 2.13.9+和aliyun-python-sdk-edas 2.52.1+版本開始,使用EDAS POP API的Python
SDK時,不再需要在代碼中設置product_name ( Edas ) 和region_domain(例如:edas.cn-shanghai.aliyuncs.com)這兩個參數,aliyun-python-sdk-core會自動根據region_id的值自動解析出該region_id對應的endpoint
domain,想體驗這個功能,請執行下面的操作將aliyun-python-sdk-core和aliyun-python-sdk-edas版本升級到最新。
root# pip install -U aliyun-python-sdk-core root# pip install -U aliyun-python-sdk-edas root# pip list 2>/dev/null | grep -E "aliyun-python-sdk-core|aliyun-python-sdk-edas" aliyun-python-sdk-core 2.13.9 aliyun-python-sdk-edas 2.52.1
- 該示例在Python 2.7.x版本測試可用。使用Python 3.x版本時,請注意兼容性。