進行阿里雲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 = "<serverUrl>"; //例如: http://ecs.aliyuncs.com/ String accessKeyId = "<accessKeyId>"; String accessKeySecret = "<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("<RegionId>"); createInstanceRequest.setImageId("<ImageId>"); createInstanceRequest.setInstanceType("<InstanceType>"); createInstanceRequest.setSecurityGroupId("<SecurityGroupId>"); 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文檔中查看到。