Java SDK通用流程及樣本
本文以使用Auto ScalingJava SDK查詢伸縮組內的ECS執行個體列表為例,詳細介紹Auto ScalingJava SDK的通用使用流程。
背景資訊
-
阿里雲開發人員中心為您提供了Auto ScalingJava SDK以及阿里雲核心庫的Maven專案依賴,您可以編寫代碼調用阿里雲SDK來實現對阿里雲的產品和服務的訪問。
-
本文樣本目的是查詢伸縮組內ECS執行個體的列表,關於伸縮組的更多資訊,請參見伸縮組概述。
-
舊版SDK和新版SDK的方法、類以及對象之間存在一定的區別。若您使用的是舊版SDK,建議您切換為新版SDK,擷取最新功能。
準備工作
-
建立AccessKey。AccessKey包括AccessKey ID和AccessKey Secret,關於如何建立和擷取AccessKey,請參見建立AccessKey。
重要-
為避免主帳號泄露AccessKey帶來的安全風險,強烈建議您建立RAM使用者,授予RAM使用者相關存取權限,再使用RAM使用者的AccessKey調用SDK。具體操作,請參見Auto Scaling系統權限原則參考。
-
RAM使用者的AccessKey Secret只能在建立AccessKey時顯示,建立完成後不支援查看。請在建立好AccessKey後,及時並妥善儲存AccessKey Secret。
-
-
配置環境變數具體操作,請參見在Linux、macOS和Windows系統配置環境變數。本文通過配置環境變數(
ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET)的方式配置Alibaba Cloud Credentials工具的身分識別驗證,實現以非AK硬式編碼方式訪問阿里雲OpenAPI。 -
下載並安裝JDK1.8或以上版本,如果還未安裝,請參見在Windows安裝JDK。
使用Auto ScalingSDK
手動整合依賴
使用Auto ScalingJava SDK查詢伸縮組內ECS執行個體列表。
步驟一:安裝Auto Scaling的Java SDK
-
通過以下任一方式在IDEA中配置Maven專案管理工具。
-
方式一:使用IDEA中整合的Maven專案管理工具。
-
方式二:訪問Maven官方下載頁面(Download Apache Maven)下載對應作業系統的Maven工具,手動設定Maven工具。
-
-
訪問阿里雲開發套件(SDK),選擇雲產品為Auto Scaling,擷取阿里雲的SDK核心庫和Auto Scaling的Maven專案依賴。
-
通過以下任一方式建立Maven專案。
-
方式一:在IDEA中添加一個Maven專案。方式一:在 IntelliJ IDEA 中開啟 New Project 對話方塊,在左側項目類型列表中選擇 Maven,將 Project SDK 設定為已安裝的 JDK 版本(如
1.8),然後單擊 Next 完成後續配置。 -
方式二:將已有的專案轉換為Maven專案。
-
按右鍵要轉換的專案,並選擇Add Framework Support...。
-
選擇Maven,並單擊OK。
-
-
-
在專案目錄下的pom.xml檔案中建立 <dependencies></dependencies>標籤,在該標籤中添加以下依賴。
添加依賴後,點擊右上方重新整理按鈕,或者右鍵專案名稱,選擇,下載Maven依賴到專案中。
說明SDK封裝更新頻繁,建議您通過阿里雲開發套件(SDK)官網擷取最新版本依賴。
<dependency> <groupId>com.aliyun</groupId> <artifactId>tea-openapi</artifactId> <version>0.2.8</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>ess20220222</artifactId> <version>1.5.2</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>credentials-java</artifactId> <version>0.2.11</version> </dependency>
步驟二:編寫Java SDK的通用流程
本步驟以Auto ScalingJava SDK查詢伸縮組內ECS執行個體列表的方法DescribeScalingInstances為例,介紹編寫Auto ScalingJava SDK的通用操作流程。
-
通過Credentials工具從環境變數中擷取AccessKey資訊。
代碼如下所示:
com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client(); com.aliyun.teaopenapi.models.Config config = new Config(); config.setCredential(credentialClient); config.setEndpoint("ess.aliyuncs.com"); -
產生Client的對象client。
代碼如下所示:
com.aliyun.ess20220222.Client client = new com.aliyun.ess20220222.Client(config); -
建立一個對應方法的Request,使用建構函式產生一個預設的請求類request。
類的命名規則為API方法名加上Request。例如,查詢伸縮組內ECS執行個體列表的API方法名為DescribeScalingInstances,則對應的請求類的名稱為DescribeScalingInstancesRequest。
DescribeScalingInstancesRequest request = new DescribeScalingInstancesRequest(); -
佈建要求類request的參數。
通過request類的setXxx方法設定必要的資訊,即API中必須要設定的參數資訊,通過setXxx方法設定參數。樣本中:
-
DescribeScalingInstances的API方法RegionId用來指定地區。
-
DescribeScalingInstances的API方法InstanceId用來設定待查詢的伸縮組內ECS執行個體ID。設定setInstanceId的值為i-bp15itgtxemxy7v9**,表示查詢的伸縮組內ECS執行個體ID為i-bp15itgtxemxy7v9**。
request.setInstanceId("i-bp15itgtxemxy7v9****"); -
-
通過調用client對象的describeScalingInstancesWithOptions方法獲得對應request響應結果。
代碼如下所示:
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); DescribeScalingInstancesResponse response = client.describeScalingInstancesWithOptions(request,runtime);說明您可以進入Auto Scaling_SDK中心-阿里雲OpenAPI開發人員門戶 (aliyun.com),選擇Java頁簽 > 快速入門 > 步驟介紹,瞭解詳細流程。
完整程式碼範例
以下為本文樣本的完整Java SDK代碼。
import com.aliyun.ess20220222.models.DescribeScalingInstancesRequest;
import com.aliyun.ess20220222.models.DescribeScalingInstancesResponse;
import com.aliyun.teaopenapi.models.Config;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
public class DescribeScalingInstances {
public static void main(String[] args) throws Exception {
com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
com.aliyun.teaopenapi.models.Config config = new Config();
config.setCredential(credentialClient);
config.setEndpoint("ess.aliyuncs.com");
com.aliyun.ess20220222.Client client = new com.aliyun.ess20220222.Client(config);
DescribeScalingInstancesRequest request = new DescribeScalingInstancesRequest();
request.setRegionId("cn-hangzhou");
request.setScalingGroupId("asg-XXXXXXXX");
request.setScalingConfigurationId("asc-XXXXXXXXX");
request.setPageNumber(1);
request.setPageSize(10);
List<String> instanceIdList = new ArrayList<String>();
instanceIdList.add("i-XXXXXX");
request.setInstanceIds(instanceIdList);
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
DescribeScalingInstancesResponse response = client.describeScalingInstancesWithOptions(request,runtime);
System.out.println(new Gson().toJson(response));
}
}
執行結果
全部返回資訊如下所示:
{
"TotalCount": 2,
"RequestId": "5E65F238-4B45-54B6-BE15-A34956FA0D96",
"PageSize": 10,
"PageNumber": 1,
"ScalingInstances": {
"ScalingInstance": [
{
"LoadBalancerWeight": 50,
"CreatedTime": "2022-04-27T03:24:58Z",
"WarmupState": "NoNeedWarmup",
"ZoneId": "cn-hangzhou-i",
"InstanceId": "i-bp1h3dog530vvnqm****",
"ScalingActivityId": "asa-bp16rgo6477ojn3u****",
"ScalingGroupId": "asg-bp10uuhy2wbb2tip****",
"CreationTime": "2022-04-27T03:24Z",
"HealthStatus": "Healthy",
"LifecycleState": "Protected",
"Entrusted": false,
"CreationType": "Attached"
},
{
"LoadBalancerWeight": 50,
"CreatedTime": "2022-04-27T06:38:21Z",
"ZoneId": "cn-hangzhou-i",
"InstanceId": "i-bp15itgtxemxy7v9****",
"ScalingActivityId": "asa-bp1ejteup0bntltl****",
"ScalingGroupId": "asg-bp10uuhy2wbb2tip****",
"HealthStatus": "Healthy",
"LifecycleState": "Stopped",
"CreationType": "AutoCreated",
"WarmupState": "NoNeedWarmup",
"CreationTime": "2022-04-27T06:38Z",
"Entrusted": true,
"ScalingConfigurationId": "asc-bp1433dp4gktwkmi****"
}
]
},
"TotalSpotCount": 0
}
OpenAPI 門戶下載SDK範例程式碼
使用Auto ScalingJava SDK建立一個伸縮組。
步驟一:擷取SDK範例程式碼
您可以通過阿里雲的OpenAPI門戶,調用Auto ScalingAPI自動產生SDK範例程式碼。
-
單擊API Explorer。
-
參考圖中樣本步驟下載完整的SDK工程。下載完成後解壓。
在 OpenAPI 門戶頁面頂部選擇Auto Scaling服務,在左側 API 列表中找到 CreateScalingGroup 介面。在輸入參數地區填寫參數(如 ScalingGroupName、RegionId、MinSize、MaxSize 等),單擊發起調用。切換到右側SDK樣本頁簽,選擇 SDK 版本(推薦 V2.0)和程式設計語言(如 Java、Python、Go 等),查看自動產生的 SDK 範例程式碼。通過右上方SDK文檔和SDK安裝資訊連結下載完整 SDK 工程。
步驟二:運行SDK範例程式碼
-
使用IntelliJ IDEA,單擊File->Open,選擇解壓後的工程檔案夾,等待Maven自動安裝依賴資訊。
-
運行範例程式碼。
雙擊開啟Sample,確認無報錯後,運行代碼。
-
查看運行結果。
在Auto Scaling控制台查看新建立的伸縮組。
完整程式碼範例
使用Java SDK建立伸縮組的完整參考樣本,請參見Java SDK樣本。
後續步驟
伸縮組建立成功後不會立即生效。您需要先調用EnableScalingGroup啟動伸縮組,伸縮組才能觸發伸縮活動和執行伸縮規則。