本章節以ListSearchLog為例,為您示範如何通過阿里雲CLI、OpenAPI Explorer和阿里雲SDK等開發人員工具調用Elasticsearch API。
背景資訊
調用API時,您可以根據API文檔瞭解使用說明,並查詢必選的請求參數。發送請求後報錯時,您可以在相應API文檔中擷取錯誤碼說明。
調用方式
調用方式 | 適用情境 | 使用限制 |
如果您經常使用命令列工具,可選用此方式。 | 使用前請確保已在對應機器上安裝了阿里雲CLI,在不同作業系統中安裝CLI的方式請參見: | |
如果您經常使用互動式操作介面,或者您是初次使用阿里雲產品的開發人員使用者,可選用此方式。 | 通過OpenAPI Explorer,您還可以調試和擷取SDK請求樣本,詳情請參見OpenAPI 門戶。 | |
適用於SDK編碼或DevOps等情境。 |
阿里雲CLI樣本
擷取執行個體ID。
您可以通過以下兩種方式擷取執行個體ID:
在Kibana控制台中,通過
GET /命令擷取,具體操作步驟請參見登入Kibana控制台。在本機電腦中,通過ListInstance擷取。
aliyun elasticsearch ListInstance --zoneId cn-hangzhou
使用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工程。
配置pom依賴。
<dependency> <groupId>com.aliyun</groupId> <artifactId>elasticsearch20170613</artifactId> <version>4.0.0</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。