本章節以ListSearchLog為例,為您示範如何通過阿里雲CLI、OpenAPI Explorer和阿里雲SDK等開發人員工具調用Elasticsearch API。
背景資訊
調用API時,您可以根據API文檔瞭解使用說明,並查詢必選的請求參數。發送請求後報錯時,您可以在相應API文檔中擷取錯誤碼說明。
調用方式
| 調用方式 | 適用情境 | 使用限制 |
| 阿里雲CLI樣本 | 如果您經常使用命令列工具,可選用此方式。 | 使用前請確保已在對應機器上安裝了阿里雲CLI,在不同作業系統中安裝CLI的方式請參見: |
| OpenAPI Explorer樣本 | 如果您經常使用互動式操作介面,或者您是初次使用阿里雲產品的開發人員使用者,可選用此方式。 | 通過OpenAPI Explorer,您還可以調試和擷取SDK請求樣本,詳情請參見OpenAPI 門戶。 |
| Java SDK樣本 | 適用於SDK編碼或DevOps等情境。 | 使用Java SDK要求您提前安裝JDK(版本為1.6及以上)和Maven。 |
阿里雲CLI樣本
- 擷取執行個體ID。您可以通過以下兩種方式擷取執行個體ID:
- 在Kibana控制台中,通過
GET /命令擷取,具體操作步驟請參見登入Kibana控制台。 - 在本機電腦中,通過ListInstance擷取。
aliyun elasticsearch ListInstance --zoneId cn-hangzhou
- 在Kibana控制台中,通過
- 使用ListSearchLog擷取執行個體的系統日誌。
aliyun elasticsearch ListSearchLog --type INSTANCELOG --query level:warn --beginTime 1593332477000 --endTime 1593418877000 --page 1 --size 20 --InstanceId es-cn-n6w1o1x0w00******
OpenAPI Explorer樣本
- 通過ListInstance擷取執行個體ID。
- 通過ListSearchLog查詢執行個體的系統日誌。查詢成功後,OpenAPI中會顯示對應的日誌資訊。
Java SDK樣本
- 建立Maven工程。說明 詳細操作方法請參見安裝Java SDK。
- 配置pom依賴。
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-elasticsearch</artifactId> <version>3.0.16</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.4.6</version> </dependency>重要 SDK封裝更新頻繁,建議您通過阿里雲開發套件(SDK)擷取最新版本依賴。 - 建立Java程式,調用ListSearchLog查詢執行個體的系統日誌。
import com.aliyuncs.CommonRequest; import com.aliyuncs.CommonResponse; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.http.FormatType; import com.aliyuncs.http.MethodType; import com.aliyuncs.profile.DefaultProfile; public class ListSearchLog { public static void main(String[] args) { DefaultProfile profile = DefaultProfile.getProfile("<RegionId>", "<accessKeyId>", "<accessSecret>"); IAcsClient client = new DefaultAcsClient(profile); CommonRequest request = new CommonRequest(); //request.setProtocol(ProtocolType.HTTPS); request.setMethod(MethodType.GET); request.setDomain("elasticsearch.<RegionId>.aliyuncs.com"); request.setVersion("2017-06-13"); request.setUriPattern("/openapi/instances/<instanceid>/search-log"); request.putQueryParameter("type", "INSTANCELOG"); request.putQueryParameter("query", "level:warn"); request.putQueryParameter("beginTime", "1593332477000"); request.putQueryParameter("endTime", "1593418877000"); request.putQueryParameter("page", "1"); request.putQueryParameter("size", "20"); request.putHeadParameter("Content-Type", "application/json"); String requestBody = "" + "{}"; request.setHttpContent(requestBody.getBytes(), "utf-8", FormatType.JSON); try { CommonResponse response = client.getCommonResponse(request); System.out.println(response.getData()); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } } }參數 說明 <RegionId> Elasticsearch執行個體所在地區,取值請參見參數說明。 <accessKeyId> 您阿里雲帳號的AccessKeyId,擷取方式請參見擷取AccessKey。 <accessSecret> 您阿里雲帳號的AccessKeySecret,擷取方式請參見擷取AccessKey。 <instanceId> 您Elasticsearch執行個體的ID,擷取方式請參見查看執行個體的基本資料和ListInstance。 說明 查詢參數說明(QueryParameter)請參見ListSearchLog。