Hoody's Blog
阿里云 API JDK 使用

通过阿里云API 获取ECS 系统状态

阿里云提供了非常完善的API SDK 和文档

OpenAPI Explorer 快速检索、可视化调试 API、在线命令行工具、同步动态生成可执行 SDK Example 代码 Java SDK使用手册 for 云监控 API 网关错误代码表 检查API 错误信息

Aliyun JDK的 使用

1. 添加依赖

根据需要使用到的API接口,添加对应的包.最新版本需要自己去 JDK 页面查看

  • aliyun-java-sdk-core 核心,必须引入
  • aliyun-java-sdk-cms 云监控API(获取CUP/MEM等信息,需要访问)
  • aliyun-java-sdk-ecs ECS API(可以创建,查询ECS 实例,我用来查询名下的所有实例) pom.xml
          <dependency>
              <groupId>com.aliyun</groupId>
              <artifactId>aliyun-java-sdk-core</artifactId>
              <version>4.4.2</version>
          </dependency>
          <dependency>
              <groupId>com.aliyun</groupId>
              <artifactId>aliyun-java-sdk-cms</artifactId>
              <version>7.0.4</version>
          </dependency>
          <dependency>
              <groupId>com.aliyun</groupId>
              <artifactId>aliyun-java-sdk-ecs</artifactId>
              <version>4.16.11</version>
          </dependency>

2. 申请AccessKey

访问 AccessKey管理页面 创建成功后会获得最重要的数据AccessKeyIdAccessKeySecret 注意保存CSV文件,这个数据只会显示一次.别直接关闭提示窗

3. 创建请求

OpenAPI Explorer 可以生成简单SDK源码,非常适合用来测试 这里我创建一个查询 DescribeMetricLastDemo.java

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import java.util.*;
import com.aliyuncs.cms.model.v20190101.*;

public class DescribeMetricLastDemo {

    public static void main(String[] args) {
    /**  创建配置文件
     *   regionId: 你的ECS的地域信息,我的是在华东杭州所以是"cn-hangzhou",可以在API页面查到其他地域的字符串,
         *   accessKeyId 和 accessSecret 则是上一步申请的字符串
     */
        DefaultProfile profile = DefaultProfile.getProfile("<regionId>", "<accessKeyId>", "<accessSecret>");
    // 创建发送请求的客户端
        IAcsClient client = new DefaultAcsClient(profile);

    //我需要查询指定监控对象的最新监控数据
    //根据文档,我需要使用 DescribeMetricLastRequest 进行请求,基本上JDK里面,API名字+Request就是需要调用的对象
        DescribeMetricLastRequest request = new DescribeMetricLastRequest();
    //命名空间,表明监控数据所属产品,如 “acs_ecs_dashboard”,“acs_rds_dashboard”等
        request.setNamespace("acs_ecs_dashboard");
    //监控项名称。 根据"预设监控项参考",CUP 信息对应的是 CPUUtilization
        request.setMetricName("CPUUtilization");

        try {
        //发送请求,得到对应response
            DescribeMetricLastResponse response = client.getAcsResponse(request);
            System.out.println(new Gson().toJson(response));
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            System.out.println("ErrCode:" + e.getErrCode());
            System.out.println("ErrMsg:" + e.getErrMsg());
            System.out.println("RequestId:" + e.getRequestId());
        }
    }
}

阿里云API JDK 小结:

  • API名称 + Request/Response就是需要使用的对象
  • 使用都是分成2步,创建Request然后设置参数,然后通过IAcsClient发送
  • IAcsClient 创建后可以多次调用
添加新评论,支持Markdown格式