專案(Project)是Log Service的資源嵌入式管理單元,包含LogStore、MetricStore和機器組等資源,同時也是您訪問Log Service資源的入口。本文通過程式碼範例介紹如何建立、修改、查詢、刪除Project等。
前提條件
您已完成以下操作:
已安裝Java開發環境。
Log ServiceJava SDK支援JRE 6.0及以上的Java運行環境,您可以執行java -version命令檢查您已安裝的Java版本。如果未安裝,可以從Java官方網站下載安裝包並完成安裝。
已安裝Log ServiceJava SDK。具體操作,請參見安裝Java SDK。
注意事項
本樣本以華東1(杭州)的公網Endpoint為例,其公網Endpoint為https://cn-hangzhou.log.aliyuncs.com。
如果您通過與Project同地區的其他阿里雲產品訪問Log Service,請使用內網Endpointhttps://cn-hangzhou-intranet.log.aliyuncs.com。
關於Log Service支援的地區與Endpoint的對應關係,請參見服務入口。
建立Project範例程式碼
以下代碼用於建立名為ali-test-project的Project。
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.exception.LogException;
public class CreateProject {
public static void main(String[] args) throws LogException {
// 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// 輸入Project名稱。
String projectName = "ali-test-project";
// 設定服務存取點。此處以杭州為例,其它地區請根據實際情況填寫。
String host = "https://cn-hangzhou.log.aliyuncs.com";
// 建立Log ServiceClient。
Client client = new Client(host, accessId, accessKey);
// 建立Project。
try {
String projectDescription = "project description";
System.out.println("ready to create project");
client.CreateProject(projectName, projectDescription);
System.out.println(String.format("create project %s success",projectName));
} catch (LogException e) {
System.out.println("LogException e :" + e.toString());
System.out.println("error code :" + e.GetErrorCode());
System.out.println("error message :" + e.GetErrorMessage());
throw e;
}
}
}預期結果如下:
ready to create project
create project ali-test-project success修改Project範例程式碼
以下代碼用於修改名為ali-test-project的Project描述資訊。
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.UpdateProjectRequest;
public class UpdateProject {
public static void main(String[] args) throws LogException {
// 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// 輸入Project名稱。
String projectName = "ali-test-project";
// 設定服務存取點。此處以杭州為例,其它地區請根據實際情況填寫。
String host = "https://cn-hangzhou.log.aliyuncs.com";
// 建立Log ServiceClient。
Client client = new Client(host, accessId, accessKey);
// 修改Project。
try {
String projectDescription = "This is the new project description";
System.out.println("ready to update project");
UpdateProjectRequest request = new UpdateProjectRequest(projectName, projectDescription);
client.updateProject(request);
System.out.println(String.format("update project %s success",projectName));
} catch (LogException e) {
System.out.println("LogException e :" + e.toString());
System.out.println("error code :" + e.GetErrorCode());
System.out.println("error message :" + e.GetErrorMessage());
throw e;
}
}
}預期結果如下:
ready to update project
update project ali-test-project success查詢所有Project範例程式碼
以下代碼用於查詢所有Project。
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.Project;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.response.ListProjectResponse;
public class ListProject {
public static void main(String[] args) throws LogException {
// 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// 輸入Project名稱。
String projectName = "ali-test-project";
// 設定服務存取點。此處以杭州為例,其它地區請根據實際情況填寫。
String host = "https://cn-hangzhou.log.aliyuncs.com";
// 建立Log ServiceClient。
Client client = new Client(host, accessId, accessKey);
// 查詢所有Project。
try {
System.out.println("ready to list project");
ListProjectResponse response = client.ListProject();
for (Project project : response.getProjects()) {
System.out.println(project.getProjectName());
}
} catch (LogException e) {
System.out.println("LogException e :" + e.toString());
System.out.println("error code :" + e.GetErrorCode());
System.out.println("error message :" + e.GetErrorMessage());
throw e;
}
}
}預期結果如下:
ready to list project
ali-test-project
local-ide查詢指定Project範例程式碼
以下代碼用於查詢指定Project資訊。
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.response.GetProjectResponse;
public class GetProject {
public static void main(String[] args) throws LogException {
// 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// 輸入Project名稱。
String projectName = "ali-test-project";
// 設定服務存取點。此處以杭州為例,其它地區請根據實際情況填寫。
String host = "https://cn-hangzhou.log.aliyuncs.com";
// 建立Log ServiceClient。
Client client = new Client(host, accessId, accessKey);
// 查詢指定Project。
try {
System.out.println("ready to get project");
GetProjectResponse response = client.GetProject(projectName);
System.out.println(String.format("get project %s success",projectName));
System.out.println("The Project description is:" + response.GetProjectDescription());
System.out.println("The Project owner info is:" + response.GetProjectOwner());
System.out.println("The Project region info is:" + response.GetProjectRegion());
System.out.println("The Project status info is:" + response.GetProjectStatus());
} catch (LogException e) {
System.out.println("LogException e :" + e.toString());
System.out.println("error code :" + e.GetErrorCode());
System.out.println("error message :" + e.GetErrorMessage());
throw e;
}
}
}預期結果如下:
ready to get project
get project ali-test-project success
The Project description is:project description
The Project owner is:Ownerid
The Project region is:cn-hangzhou
The Project status is:Normal查詢Project中日誌範例程式碼
以下代碼用於指定Project中指定LogStore的日誌數量。
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.QueriedLog;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.response.GetLogsResponse;
public class GetProjectLogs {
public static void main(String[] args) throws LogException {
// 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// 輸入Project名稱。
String projectName = "ali-test-project";
// 輸入LogStore名稱。
String logstoreName = "ali-test-logstore";
// 設定服務存取點。此處以杭州為例,其它地區請根據實際情況填寫。
String host = "https://cn-hangzhou.log.aliyuncs.com";
// 建立Log ServiceClient。
Client client = new Client(host, accessId, accessKey);
// 使用SQL查詢指定Project中指定LogStore的日誌數量。
try {
System.out.println("ready to get project logs");
String query = "SELECT COUNT(*) as pv FROM " + logstoreName + " where __time__ > 1646102500 and __time__ < 1646103400";
GetLogsResponse response = client.GetProjectLogs(projectName,query);
for (QueriedLog log: response.getLogs()) {
System.out.println(log.GetLogItem().ToJsonString());
}
} catch (LogException e) {
System.out.println("LogException e :" + e.toString());
System.out.println("error code :" + e.GetErrorCode());
System.out.println("error message :" + e.GetErrorMessage());
throw e;
}
}
}預期結果如下:
ready to get project logs
{"pv":"4615","logtime":1}刪除Project範例程式碼
以下代碼用於刪除名為ali-test-project的Project。
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.exception.LogException;
public class DeleteProject {
public static void main(String[] args) throws LogException {
// 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// 輸入Project名稱。
String projectName = "ali-test-project";
// 設定服務存取點。此處以杭州為例,其它地區請根據實際情況填寫。
String host = "https://cn-hangzhou.log.aliyuncs.com";
// 建立Log ServiceClient。
Client client = new Client(host, accessId, accessKey);
// 刪除Project。
try {
System.out.println("ready to delete project");
client.DeleteProject(projectName);
System.out.println(String.format("delete project %s success",projectName));
} catch (LogException e) {
System.out.println("LogException e :" + e.toString());
System.out.println("error code :" + e.GetErrorCode());
System.out.println("error message :" + e.GetErrorMessage());
throw e;
}
}
}預期結果如下:
ready to delete project
delete project ali-test-project success相關文檔
在調用API介面過程中,若服務端返回結果中包含錯誤資訊,則表示調用API介面失敗。您可以參考API錯誤碼對照表尋找對應的解決方案。更多資訊,請參見API錯誤處理對照表。
Log Service除自研的SDK外,還支援公用的阿里雲SDK,關於阿里雲SDK的使用方式,請參見Log Service_SDK中心-阿里雲OpenAPI開發人員門戶。
為滿足越來越多的自動化Log Service配置需求,Log Service提供命令列工具CLI(Command Line Interface)。更多資訊,請參見Log Service命令列工具CLI。
關於Project API介面說明,請參見如下:
更多範例程式碼,請參見Aliyun Log Java SDK on GitHub。