进行阿里云sdk开发的前提是已经购买阿里云的相关服务才能调用阿里的相关接口进行开发。最近公司在做云管控的项目,于是进行下摘录总结。
一. 环境准备
阿里云针对不同的开发语言提供不同的sdk,由于项目用的是java语言进行开发,所以下载的是java sdk,介绍的也是java sdk的开发方式。
1.首先下载服务的SDK,阿里云Java SDK支持J2SE Development Kit (JDK) 1.5或以上版本。
2.安装步骤
- 在解压的文件中可以找到 aliyun-sdk-java-online_standard-20141010.jar 这个包;
- 以Eclipse为例导入jar包的过程如下:在Eclipse上右键点击工程 -> Properties -> Java Build Path -> Libraries -> Add External JARs(netbeans和intellij等其他idea用户请自行按照相应导入jar包得方法导入这个包);
- 选择以上jar包,点击“OK”按钮,经过以上步骤,你就可以在工程中使用阿里云Java SDK了。
二.快速入门
1.初始化一个AliyunClient
- 与阿里云SDK相关的类都在包com.aliyun.api.AliyunClient下;
- AliyunClient是与API交互的接口,SDK的操作都是通过AliyunClient完成的;
- AliyunClient可以复用,建议设置成应用程序全局唯一的;
- 用户可以调用带有connectTimeout和readTimeout的构造方法来设置SDK调用接口的连接超时时间和读取超时时间,SDK默认的连接超时时间是3秒,读取超时时间是80秒。
示例代码如下:
import com.aliyun.api.AliyunClient;import com.aliyun.api.DefaultAliyunClient;public class CreateAliyunClientDemo { private static AliyunClient client; static { String serverUrl = ""; //例如: http://ecs.aliyuncs.com/ String accessKeyId = " "; String accessKeySecret = " "; // 初始化一个AliyunClient client = new DefaultAliyunClient(serverUrl, accessKeyId, accessKeySecret); } public static void main(String[] args) { }}
2.SDK调用示例
调用步骤:
- 实例化一个请求类,根据调用API的不同版本实例化不同Java包下的请求类;
- 给请求实例赋值;
- 调用接口返回调用结果。
包名称介绍
下面以ECS API 2014-05-26版为例
请求类
响应类
示例代码
创建实例:
public void createInstance() { CreateInstanceRequest createInstanceRequest = new CreateInstanceRequest(); createInstanceRequest.setRegionId(""); createInstanceRequest.setImageId(" "); createInstanceRequest.setInstanceType(" "); createInstanceRequest.setSecurityGroupId(" "); try { CreateInstanceResponse createInstanceResponse = client.execute(createInstanceRequest); if (StringUtils.isEmpty(createInstanceResponse.getErrCode())) { //创建成功 String instanceId = createInstanceResponse.getInstanceId(); //获取实例ID } else { String errCode = createInstanceResponse.getErrorCode(); //获取错误码 String message = createInstanceResponse.getMessage(); //获取错误信息 } } catch (ApiException e) { // TODO: handle exception }}
查询实例信息:
public void describeInstanceAttribute(String instanceId) { DescribeInstanceAttributeRequest describeInstanceAttributeRequest = new DescribeInstanceAttributeRequest(); describeInstanceAttributeRequest.setInstanceId(instanceId); try { DescribeInstanceAttributeResponse describeInstanceAttributeResponse = client.execute(describeInstanceAttributeRequest); if (StringUtils.isEmpty(describeInstanceAttributeResponse.getErrorCode())) { //查询成功 //查看实例信息的代码 //...... } else { String errCode = describeInstanceAttributeResponse.getErrorCode(); //获取错误码 String message = describeInstanceAttributeResponse.getMessage(); //获取错误信息 } } catch (ApiException e) { // TODO: handle exception }}
删除实例:
public void deleteInstance(String instanceId) { DeleteInstanceRequest deleteInstanceRequest =new DeleteInstanceRequest(); deleteInstanceRequest.setInstanceId(instanceId); try { DeleteInstanceResponse deleteInstanceResponse=client.execute(deleteInstanceRequest); if (StringUtils.isEmpty(deleteInstanceResponse.getErrorCode())) { //删除成功 } else { //删除失败 String errorCode = deleteInstanceResponse.getErrorCode(); //获取错误码 String message = deleteInstanceResponse.getMessage(); //获取错误信息 } } catch (ApiException e) { // TODO: handle exception }}
- 所有的request返回的值都封装在相应的response对象里,假定我们的response对象名就叫response,则可以通过response.get<成员变量名>()获取。
- 每一个request返回的response里含有的成员变量可以从Open API文档中查看到。