本文介绍Java SDK的使用方法和示例,以及PHP SDK和Python SDK的使用方法。
前提条件
您需要准备好您的AccessKey,用于输出到创建的对象profile中。
背景信息
新版SDK的文件名通常以aliyun-XXXX-sdk开头,后面跟上产品名称如ECS,组成如aliyun-java-sdk-ecs的包名。其中有一个核心包aliyun-java-sdk-core,其中封装了所有产品的SDK都会用到的一些类,如IClientProfile类、 IAcsClient类、异常类等。产品相关的类均以产品为单位打包成不同名称的Jar包。
Java SDK使用方法示例
以ECS Java SDK查询可用镜像资源的方法DescribeImages为例,介绍SDK使用的完整流程,其中IClientProfile和IAcsClient两个类包含在aliyun-java-sdk-core包中,其他的类均包含在aliyun-java-sdk-ecs包中。
- 创建Profile。
生成IClientProfile的对象profile,该对象存放AccessKeyID、AccessKeySecret和默认的地域信息,如示例中的cn-hangzhou。更多关于地域的信息,请参见 地域和可用区。
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", ak, aks); #ak 是您的 AccessKey,aks 是您的 AccessKeySecret
- 创建Client。
从IClientProfile类中再生成IAcsClient的对象client,后续获得response都需要从 IClientProfile中获得。
IAcsClient client = new DefaultAcsClient(profile);
- 创建Request。
创建一个对应方法的Request,类的命名规则一般为API的方法名加上Request,如获得镜像列表的API为DescribeImages,那么对应的请求类名就是DescribeImagesRequest,直接使用构造函数生成一个默认的类 describe。
DescribeImagesRequest describe = new DescribeImagesRequest();
- 设置Request的参数。
请求类生成之后需要通过Request类的setXxx方法设置必要的信息,即API参数中必须要提供的信息。API DescribeImages必须要提供的参数为RegionId,该值可以省略,因为IClientProfile中已经提供了地域信息,同样的也可以通过setXxx方法设置其他可选的参数,如这里设置要查询的镜像为自定义镜像,则设置ImageOwnerAlias的值为self,表示查询您的自定义镜像。
describe.setImageOwnerAlias("self");
- 参数设置完毕后,通过IAcsClient对象获得对应Request的响应。
DescribeImagesResponse response = client.getAcsResponse(describe);
- 在Response中获得返回的参数值。
接着可以调用Response中对应的getXxx方法获得返回的参数值,如获得某个镜像的名字。根据API方法的不同,返回的信息中可能会包含多层的信息,如获得镜像列表这个方法,返回的信息中镜像是以一个集合来表示的,集合中存放了每个镜像的信息,对于Java SDK而言,那么存放镜像信息的就是一个列表,需要先通过getImages()获得Image对象的集合,然后再通过遍历等方法取得其中某个镜像的信息,之后调用getXxx方法获得具体的信息。
for(Image image:response.getImages()) { System.out.println(image.getImageId()); System.out.println(image.getImageName()); }
至此,一个完整的调用就完成了。
PHP SDK使用方法
PHP SDK的使用方法和Java SDK的类似,可以归纳为:
- 创建Profile。
- 创建Client。
- 创建Request。
- 设置Request的参数。
- 使用Client 对应的方法传入Request,获得Response。
- 在Response中获得返回的参数值。
Python SDK使用方法
使用Python SDK忽略创建Profile这一步,直接创建Client,然后执行后面的步骤即可。
参考信息
- 关于ECS的所有API,请参见API概览。
- 关于如何创建AccessKey,请参见创建AccessKey