GaussDB(DWS) 运维接口集成简介
【摘要】 【摘要】某些场景下,客户可能会需要将GaussDB(DWS)集群的运维功能集成到自己的平台上方便进行统一运维管理,此时客户可以通过GaussDB(DWS)提供的标准REST API进行和GaussDB(DWS)的管理平台对接
1. 使用场景
一般情况下,客户可以在GaussDB(DWS)的管理平台对集群进行运维管理,如创建、删除、扩容、重启集群等操作,同时这些运维接口已标准REST协议对外开放,客户如果有自己的统一运维管理平台,如有需要可以将这些运维操作对接到自己的统一管理平台。
2. 对接流程
首先客户需要使用登录GaussDB(DWS)管理平台的用户名密码从IAM服务获取token,然后在请求中携带获取的token调用GaussDB(DWS)提供的REST API接口,如下图
3. 示例
接下来,我们以Spring框架中的RestTemplate作为REST客户端,以HCS 8.0.2环境为例进行接口调用的详细步骤演示。
1). 从HCS的lld配置中获取IAM服务的endpoint,如:iam-cache-proxy.hcs.com:26336,根据《华为云Stack8.0.2数据仓库服务用户指南》5.6.6章节中的方式获取dws服务的endpoint,如:dws.cn-global-1.hcs.com;
2). 构造获取token的请求体并发送请求获取token
String body = String.format("{\"auth\":{\"identity\":{\"methods\":[\"password\"],\"password\":{\"user\":{\"name\":\"%s\",\"password\":\"%s\",\"domain\":{\"name\":\"%s\"}}}},\"scope\":{\"project\":{\"name\":\"%s\"}}}}", appProperties.getMo_user_name(), appProperties.getMo_user_pass(), appProperties.getMo_user_domain_name(), appProperties.getMo_user_project_name());
ResponseEntity<String> responseEntity = restTemplate.exchange("https://iam-cache-proxy.eihcs.com:26335/v3/auth/tokens", HttpMethod.POST, httpEntity, String.class);
String token=responseEntity.getHeaders().getFirst("X-Subject-Token");
3). 通过GaussDB(DWS)的REST运维接口查询集群列表
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("X-Auth-Token", token);
HttpEntity<String> httpEntity = new HttpEntity<>(headers);
ResponseEntity<String> responseEntity = restTemplate.exchange("https://dws.cn-global-1.eihcs.com/v1.0/${project_id}/clusters", HttpMethod.GET, httpEntity, String.class);
String clusters=responseEntity.getBody();
GaussDB(DWS)当前已支持的开放API以及API的详细说明请参考《华为云Stack8.0.2数据仓库服务用户指南》第5章节“接口参考”。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)