简介
欢迎使用京东云开发者Java工具套件(Java SDK)。使用京东云Java SDK,您无需复杂编程就可以访问京东云提供的各种服务。
为了方便您理解SDK中的一些概念和参数的含义,使用SDK前建议您先查看 OpenAPI使用入门。要了解每个API的具体参数和含义,请参考程序注释或参考OpenAPI&SDK下具体产品线的API文档。
环境准备
京东云Java SDK适用于jdk7及以上版本。
在开始调用京东云open API之前,需提前在京东云用户中心账户管理下的 AccessKey管理页面 申请accesskey和secretKey密钥对(简称AK/SK)。AK/SK信息请妥善保管,如果遗失可能会造成非法用户使用此信息操作您在云上的资源,给你造成数据和财产损失。
SDK使用方法
如果您使用Apache Maven来管理Java项目,只需在项目的pom.xml文件加入相应的依赖项即可,如下所示:
<!-- 对应产品线的SDK -->
<dependency>
<groupId>com.jdcloud.sdk</groupId>
<artifactId>yunding</artifactId>
<version>2.0.8</version>
</dependency>
您还可以下载 SDK源代码 自行使用。
SDK使用中的任何问题,欢迎您在 SDK使用问题反馈页面 交流。
注意: 京东云并没有提供其他下载方式,请务必使用上述官方下载方式!
version 的版本号需要使用京东云产品提供的最新版本号。例如:示例中VM所使用的最新版本号可到官方提供的API 更新历史 中查询到。
每支云产品都有自己的Client,当调用该产品API时,需使用该产品的Client。例如:使用云主机的VmClient只能调用云主机(Vm)的接口;使用高可用组的AgClient只能调用高可用组(Ag)的接口。
调用SDK
Java SDK的调用主要分为4步:
设置accessKey和secretKey
创建Client
设置请求参数
执行请求得到响应
以下是应用部署的调用示例
import com.jdcloud.sdk.auth.CredentialsProvider;
import com.jdcloud.sdk.auth.StaticCredentialsProvider;
import com.jdcloud.sdk.http.HttpRequestConfig;
import com.jdcloud.sdk.http.Protocol;
import com.jdcloud.sdk.service.yunding.client.YundingClient;
import com.jdcloud.sdk.service.yunding.model.*;
public class YdappClientExample {
public static void main(String[ ] args) {
//1. 设置accessKey和secretKey
String accessKeyId = "{accessKey}";
String secretAccessKey = "{secretKey}";
CredentialsProvider credentialsProvider = new StaticCredentialsProvider(accessKeyId, secretAccessKey);
//2. 创建XXXClient
YundingClient client = YundingClient.builder()
.credentialsProvider(credentialsProvider)
.httpRequestConfig(new HttpRequestConfig.Builder().protocol(Protocol.HTTPS).build()) //默认为HTTPS
.build();
//3. 设置请求参数
DescribeInstanceInfoRequest request = new DescribeInstanceInfoRequest();
request.setRegionId("cn-north-1");
request.setInstanceId("xxx");
//4. 执行请求
DescribeInstanceInfoResponse response = client.describeInstanceInfo(request);
//5. 处理响应
System.out.println(new Gson().toJson(response));
}
}
如果需要设置额外的header,例如要调用开启了MFA操作保护的接口,需要传递x-jdcloud-security-token,则按照如下方式:
vmClient.setCustomHeader("x-jdcloud-security-token", "xxxx");
如果需要设置访问点,配置超时等,请参考如下更复杂的例子:
Environment env = new Environment.Builder().endpoint("nativecontainer.internal.cn-north-1.jdcloud-api.com").build(); //指定非默认Endpoint Step1
//2. 创建ncClient
NativecontainerClient ncClient = NativecontainerClient.builder()
.credentialsProvider(credentialsProvider)
.httpRequestConfig(new HttpRequestConfig.Builder()
.connectionTimeout(10000) //设置连接超时为10s
.socketTimeout(10000) //设置读响应超时为10s
.protocol(Protocol.HTTP) //设置使用HTTP而不是HTTPS,vpc专用域名不支持HTTPS
.build()) //默认为HTTPS
.environment(env) //指定非默认Endpoint Step2
.build();
如果需要读取请求response的各种信息(例如某个header的值),可按照如下方式:
HttpHeaders headers = response.getJdcloudHttpResponse().getHeaders();
List<String> headerValue = headers.getHeaderStringValues("headerKey");
更多调用示例参考 SDK使用Demo
其他语言
其他开发语言SDK请参考 https://docs.jdcloud.com/cn/?act=3
API 列表
| 接口名称 | 请求方式 | 功能描述 |
|---|---|---|
| assignSecondaryIps | POST | 给网卡分配secondaryIp接口 |
| attachNetworkInterface | POST | 云主机绑定一块弹性网卡。 云主机状态必须为running或stopped状态,并且没有正在进行中的任务才可操作。 弹性网卡上如果绑定了弹性公网IP,那么其所在az需要与云主机的az保持一致,或者为全可用区型弹性公网IP,才可挂载该网卡。 云主机挂载弹性网卡的数量,不能超过实例规格的限制。可查询DescribeInstanceTypes接口获得指定规格可挂载弹性网卡的数量上限。 弹性网卡与云主机必须在相同vpc下。 |
| batchDescribeMetricData | GET | 查看某资源多个监控项数据,metric介绍:Metrics,可以使用接口describeMetrics:查询产品线可用的metric列表。 |
| createNetworkInterface | POST | 创建网卡接口,只能创建辅助网卡 |
| createRdsAccount | POST | 创建数据库账号,用户可以使用客户端,应用程序等通过该账号和密码登录RDS数据库实例。 为便于管理和恢复,RDS对账号进行了限制,数据库账号只能通过控制台或者OpenAPI进行创建、删除账号以及对账号授权等,用户不能通过SQL语句对账号进行相关操作。 |
| createRdsDatabase | POST | 创建一个数据库。 为了实例的管理和数据恢复,RDS对用户权限进行了限制,用户仅能通过控制台或本接口创建数据库 |
| createSubnet | POST | 创建子网 |
| deleteNetworkInterface | DELETE | 删除弹性网卡接口 |
| deleteRdsAccount | DELETE | 删除数据库账号,账号删除后不可恢复,用户无法再使用该账号登录RDS实例 |
| deleteRdsDatabase | DELETE | 从RDS实例中删除数据库。为便于管理和数据恢复,RDS对用户权限进行了控制,用户仅能通过控制台或本接口删除数据库 敏感操作,可开启MFA操作保护 |
| deleteSubnet | DELETE | 删除子网 |
| describeInstanceInfo | GET | 查询RDS实例(MySQL、SQL Server等)的真实状态 |
| describeMetricData | GET | 查看某资源单个监控项数据,metric介绍:Metrics,可以使用接口describeMetrics:查询产品线可用的metric列表。 |
| describeNetworkInterface | GET | 查询弹性网卡信息详情 |
| describeNetworkInterfaces | GET | 查询弹性网卡列表 |
| describeRdsAccounts | GET | 查看某个RDS实例下所有账号信息,包括账号名称、对各个数据库的访问权限信息等 |
| describeRdsDatabases | GET | 获取当前实例的所有数据库详细信息的列表 |
| describeRdsInstance | GET | 查询RDS实例(MySQL、SQL Server等)的详细信息以及MySQL只读实例详细信息 |
| describeRdsInstances | GET | 批量查询云数据库实例列表信息 此接口支持分页查询,默认每页20条。 |
| describeRdsWhiteList | GET | 查看RDS实例当前白名单。白名单是允许访问当前实例的IP/IP段列表,缺省情况下,白名单对本VPC开放。如果用户开启了外网访问的功能,还需要对外网的IP配置白名单。 |
| describeServices | GET | 查询监控图可用的产品线列表 |
| describeSubnet | GET | 查询子网信息详情 |
| describeSubnets | GET | 查询子网列表 |
| describeTasks | GET | 云拔测-可用性agent任务查询接口 |
| describeVmInstance | GET | 查询一台云主机的详细信息 |
| describeVmInstances | GET | 批量查询云主机列表信息 此接口支持分页查询,默认每页20条。 |
| describeYdRdsInstances | GET | 查询云鼎数据库实例列表 |
| detachNetworkInterface | POST | 云主机缷载一块弹性网卡。 云主机状态必须为running或stopped状态,并且没有正在进行中的任务才可操作。 不能缷载主网卡。 |
| grantRdsPrivilege | POST | 授予账号的数据库访问权限,即该账号对数据库拥有什么权限。一个账号可以对多个数据库具有访问权限。 为便于管理,RDS对权限进行了归类,目前提供以下两种权限 - ro:只读权限,用户只能读取数据库中的数据,不能进行创建、插入、删除、更改等操作。 - rw:读写权限,用户可以对数据库进行增删改查等操作 |
| lastDownsample | GET | 根据不同的聚合方式将metric的数据聚合为一个点。downAggrType:last(最后一个点)、max(最大值)、min(最小值)、avg(平均值)。该接口返回值为上报metric的原始值,没有做单位转换。metric介绍:Metrics |
| modifyRdsWhiteList | PUT | 修改允许访问实例的IP白名单。白名单是允许访问当前实例的IP/IP段列表,缺省情况下,白名单对本VPC开放。如果用户开启了外网访问的功能,还需要对外网的IP配置白名单。 |
| putProductMetricData | POST | 监控数据上报。 |
| revokePrivilege | POST | 取消该账号对某个数据库的所有权限。权限取消后,该账号将不能访问此数据库。取消账号对某个数据库的访问权限,不影响该账号对其他数据库的访问权限 |
| unassignSecondaryIps | POST | 给网卡删除secondaryIp接口 |