Simple Log ServiceのLogstoreは、データの収集、保存、およびクエリに使用される単位です。 各Logstoreはプロジェクトに属します。 1つのプロジェクトに複数のLogstoreを作成できます。 このトピックでは、Simple Log Service SDK for Javaを使用してLogstoreを作成、変更、クエリ、および削除する方法について説明し、サンプルコードを提供します。
前提条件
RAM (Resource Access Management) ユーザーが作成され、必要な権限がRAMユーザーに付与されます。 詳細については、「RAMユーザーの作成とRAMユーザーへの権限付与」をご参照ください。
ALIBABA_CLOUD_ACCESS_KEY_IDおよびALIBABA_CLOUD_ACCESS_KEY_SECRET環境変数が設定されています。 詳細については、「環境変数の設定」をご参照ください。
重要Alibaba CloudアカウントのAccessKeyペアには、すべてのAPI操作に対する権限があります。 RAMユーザーのAccessKeyペアを使用して、API操作を呼び出したり、ルーチンのO&Mを実行したりすることを推奨します。
プロジェクトコードにAccessKey IDまたはAccessKey secretを保存しないことを推奨します。 そうしないと、AccessKeyペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。
Simple Log Service SDK for Javaがインストールされています。 詳細については、「Simple Log Service SDK For Javaのインストール」をご参照ください。
使用上の注意
この例では、中国 (杭州) リージョンのパブリックSimple Log Serviceエンドポイントが使用されています。これは https://cn-hangzhou.log.aliyuncs.com
です。 プロジェクトと同じリージョンにある他のAlibaba Cloudサービスを使用してSimple Log Serviceにアクセスする場合は、内部のSimple Log Serviceエンドポイント ( https://cn-hangzhou-intranet.log.aliyuncs.com
) を使用できます。 Simple Log Serviceのサポートされているリージョンとエンドポイントの詳細については、「エンドポイント」をご参照ください。
Logstoreの作成に使用されるサンプルコード
次のサンプルコードは、ali-test-Logstoreという名前のlogstoreを作成する方法の例を示しています。
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.LogStore;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.CreateLogStoreRequest;
public class CreateLogstore {
public static void main(String[] args) throws LogException {
// In this example, the AccessKey ID and AccessKey secret are obtained from environment variables.
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// The name of the project.
String projectName = "ali-test-project";
// The Simple Log Service endpoint. In this example, the Simple Log Service endpoint for the China (Hangzhou) region is used. Replace the parameter value with the actual endpoint.
String host = "https://cn-hangzhou.log.aliyuncs.com";
// Create a Simple Log Service client.
Client client = new Client(host, accessId, accessKey);
try {
// The name of the Logstore.
String logstoreName = "ali-test-logstore";
System.out.println("ready to create logstore");
// Create a Logstore whose data retention period is 60 days and number of shards is 2, and enable the web tracking feature.
LogStore logStore = new LogStore(logstoreName, 60, 2, true);
// Enable the automatic sharding feature.
logStore.setmAutoSplit(true);
// Set the maximum number of shards into which existing shards can be automatically split to 64.
logStore.setmMaxSplitShard(64);
// Record public IP addresses.
logStore.setAppendMeta(true);
// Set the data retention period of the hot storage tier in the Logstore to 30 days.
logStore.setHotTTL(30);
// Set the Logstore type to Standard.
logStore.setMode("standard");
CreateLogStoreRequest request = new CreateLogStoreRequest(projectName, logStore);
// Create a Logstore.
client.CreateLogStore(request);
System.out.println(String.format("create logstore %s success", logstoreName));
} 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 logstore
create logstore ali-test-logstore success
Logstoreの変更に使用されるサンプルコード
次のサンプルコードは、ali-test-logstore Logstoreの設定を変更する方法の例を示しています。
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.LogStore;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.UpdateLogStoreRequest;
public class UpdateLogstore {
public static void main(String[] args) throws LogException {
// In this example, the AccessKey ID and AccessKey secret are obtained from environment variables.
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// The name of the project.
String projectName = "ali-test-project";
// The Simple Log Service endpoint. In this example, the Simple Log Service endpoint for the China (Hangzhou) region is used. Replace the parameter value with the actual endpoint.
String host = "https://cn-hangzhou.log.aliyuncs.com";
// Create a Simple Log Service client.
Client client = new Client(host, accessId, accessKey);
try {
// The name of the Logstore.
String logstoreName = "ali-test-logstore";
System.out.println("ready to update logstore");
// Change the data retention period of the hot storage tier in the Logstore to 45 days.
LogStore logStore = new LogStore(logstoreName, 60, 2, true);
logStore.setHotTTL(45);
UpdateLogStoreRequest request = new UpdateLogStoreRequest(projectName, logStore);
// Update the Logstore.
client.UpdateLogStore(request);
System.out.println(String.format("update logstore %s success", logstoreName));
} 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 logstore
update logstore ali-test-logstore success
すべてのLogstoreのクエリに使用されるサンプルコード
次のサンプルコードは、指定したプロジェクト内のすべてのLogstoreをクエリする方法の例を示しています。
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.ListLogStoresRequest;
import com.aliyun.openservices.log.response.ListLogStoresResponse;
public class ListLogstore {
public static void main(String[] args) throws LogException {
// In this example, the AccessKey ID and AccessKey secret are obtained from environment variables.
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// The name of the project.
String projectName = "ali-test-project";
// The Simple Log Service endpoint. In this example, the Simple Log Service endpoint for the China (Hangzhou) region is used. Replace the parameter value with the actual endpoint.
String host = "https://cn-hangzhou.log.aliyuncs.com";
// Create a Simple Log Service client.
Client client = new Client(host, accessId, accessKey);
try {
System.out.println("ready to list logstore");
// Query 10 Logstores.
ListLogStoresRequest request = new ListLogStoresRequest(projectName, 0, 10, "", "None");
ListLogStoresResponse response = client.ListLogStores(request);
for (String logStore : response.GetLogStores()) {
System.out.println(logStore.toString());
}
} 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 logstore
ali-test-logstore
特定のLogstoreのクエリに使用されるサンプルコード
次のサンプルコードは、特定のLogstoreに関する情報を照会する方法の例を示しています。
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.GetLogStoreRequest;
import com.aliyun.openservices.log.response.GetLogStoreResponse;
public class GetLogstore {
public static void main(String[] args) throws LogException {
// In this example, the AccessKey ID and AccessKey secret are obtained from environment variables.
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// The name of the project.
String projectName = "ali-test-project";
// The Simple Log Service endpoint. In this example, the Simple Log Service endpoint for the China (Hangzhou) region is used. Replace the parameter value with the actual endpoint.
String host = "https://cn-hangzhou.log.aliyuncs.com";
// Create a Simple Log Service client.
Client client = new Client(host, accessId, accessKey);
try {
// The name of the Logstore.
String logStoreName = "ali-test-logstore";
System.out.println("ready to get logstore");
// Query the specified Logstore.
GetLogStoreRequest request = new GetLogStoreRequest(projectName, logStoreName);
GetLogStoreResponse response = client.GetLogStore(request);
System.out.println("The Logstore name is : " + response.GetLogStore().GetLogStoreName());
} 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 logstore
The Logstore name is : ali-test-logstore
Logstoreの削除に使用されるサンプルコード
次のサンプルコードは、ali-test-logstore Logstoreを削除する方法の例を示しています。
Logstoreを削除すると、Logstore内のすべてのデータが削除され、復元できなくなります。 作業は慎重に行ってください。
Logstoreを削除する前に、Logstoreに関連付けられているすべてのLogtail設定を削除する必要があります。
Logstoreでログ配布機能が有効になっている場合は、Logstoreへのデータの書き込みを停止し、Logstoreを削除する前にLogstore内のすべてのデータが配布されていることを確認することをお勧めします。
Alibaba CloudアカウントでLogstoreを削除する権限がない場合は、 ticket を使用してLogstoreを削除します。
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.exception.LogException;
public class DeleteLogstore {
public static void main(String[] args) throws LogException {
// In this example, the AccessKey ID and AccessKey secret are obtained from environment variables.
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// The name of the project.
String projectName = "ali-test-project";
// The Simple Log Service endpoint. In this example, the Simple Log Service endpoint for the China (Hangzhou) region is used. Replace the parameter value with the actual endpoint.
String host = "https://cn-hangzhou.log.aliyuncs.com";
// Creates a Simple Log Service client.
Client client = new Client(host, accessId, accessKey);
try {
// The name of the Logstore.
String logStoreName = "ali-test-logstore";
System.out.println("ready to delete logstore");
// Delete the specified Logstore.
client.DeleteLogStore(projectName,logStoreName);
System.out.println(String.format("delete logstore %s success", logStoreName));
} 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 logstore
delete logstore ali-test-logstore success
関連ドキュメント
Alibaba Cloud OpenAPI Explorerは、デバッグ機能、SDK、サンプル、および関連ドキュメントを提供します。 OpenAPI Explorerを使用して、リクエストを手動でカプセル化したり署名したりすることなく、Simple Log Service API操作をデバッグできます。 詳細については、をご覧ください。 OpenAPIポータル。
Simple Log Serviceは、Simple Log Serviceの自動設定の要件を満たすコマンドラインインターフェイス (CLI) を提供します。 詳細については、「Simple Log Service CLI」をご参照ください。
Logstore関連のAPI操作の詳細については、以下のトピックを参照してください。
サンプルコードの詳細については、GitHubの「Alibaba Cloud Simple Log Service SDK For Java」をご参照ください。