在官网 SDK 的基础上,对 Client进行重写,满足企业工作台的调用逻辑,同时完全兼容官网 SDK,这样就形成了 企业工作台定制 Client + 官网 SDK 提供 APIMETA 的模式。
- Java 需要1.6以上的JDK
- 找阿里云企业工作台团队,提供 OpenAPI 访问凭证,示例如下:
{
"appName": "my-app", // 应用的唯一标识
"arnPostfix": "my-role", // 角色定义
"consoleKey": "xxx",
"consoleSecret": "xxx",
"openapiList": [ // OpenAPI调用白名单
{
"product": "ecs",
"actions": [
"DescribeInstances",
"xxxx"
]
}
]
}
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-console-bench</artifactId>
<version>1.0.1</version>
</dependency>
企业工作台的业务模式分为 工作台托管、聚石塔自管 两种模式,因此API调用也有针对性区分。
public class Demo {
public static void main(String[] args) {
// 企业工作台定制SDK
DefaultProfile profile = DefaultProfile.getProfile(${regionId}, ${consoleKey}, ${consoleSecret});
ConsoleAcsClient client = new ConsoleAcsClient(profile);
client.setEndpoint("console-work.aliyuncs.com");
client.addQueryParam("AliUid", "xxx"); // OneConsole传递的主账号id
client.addQueryParam("Mode", "online"); // Mode: online为在线调用,否则为离线调用
// 创建API请求并设置参数
DescribeInstancesRequest request = new DescribeInstancesRequest();
request.setVpcId("xxx");
try {
DescribeInstancesResponse response = client.getAcsResponse(request);
System.out.println("response: " + response);
} catch (ClientException e) {
e.printStackTrace();
}
}
}
说明:
- endpoint: 测试环境下需要 host 绑定
114.55.202.134 console-work.aliyuncs.com
public class Demo {
public static void main(String[] args) {
// 企业工作台定制SDK
DefaultProfile profile = DefaultProfile.getProfile(${regionId}, ${consoleKey}, ${consoleSecret});
ConsoleAcsClient client = new ConsoleAcsClient(profile);
client.setEndpoint("console-work.aliyuncs.com");
client.addQueryParam("IdToken", "xxx"); // Oauth授权后获取的身份信息
// 创建API请求并设置参数
DescribeInstancesRequest request = new DescribeInstancesRequest();
request.setVpcId("xxx");
try {
DescribeInstancesResponse response = client.getAcsResponse(request);
System.out.println("response: " + response);
} catch (ClientException e) {
e.printStackTrace();
}
}
}
说明:
- endpoint: 测试环境下需要 host 绑定
114.55.202.134 console-work.aliyuncs.com
首先登录阿里云 RAM控制台 ,创建服务角色
角色的权限主体设置成企业工作台:
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"console.aliyuncs.com"
]
}
}
],
"Version": "1"
}
按需给该角色添加您应用的权限:
把您产品需要的 OpenAPI 整理处理,按照如下格式提交给企业工作台团队:
[
{
"product": "ecs",
"actions": [
"DescribeInstances",
"DescribeRegions"
"..."
]
},
{
...
}
]
经过上述步骤,就可以基于企业工作台提供的 SDK ,进行OpenAPI的调用测试。
Copyright (c) 2009-present, Alibaba Cloud All rights reserved.