你可以使用 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 包的版本。
  • 离线安装(无互联网连接的环境)
    1. 在联网环境访问阿里云开放平台,根据页面提示下载 Python SDK 核心库
    2. 将得到的压缩包上传至需要运行 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__':
    #请填写阿里云主账号或子账号 AccessKey ID.
    aliyun_user_ak = 'LTAIPQxxxxxxxxxx'
    #请填写阿里云主账号或子账号 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 版本时,请注意兼容性,Python 3.x 版本的安装步骤请参见快速开始

更多信息