すべてのプロダクト
Search
ドキュメントセンター

:Tablestore クライアントの初期化

最終更新日:Aug 14, 2025

Tablestore クライアントは、Tablestore のテーブルとデータを管理するための一連のメソッドを提供します。この Topic では、Tablestore SDK for Java を使用して Tablestore クライアントを初期化する方法について説明します。

重要

このトピックでは、Alibaba Cloud アカウントの AccessKey ペアを例として使用しています。他の認証情報を使用してクライアントを初期化する方法については、「RAM ユーザーの AccessKey ペアを使用して Tablestore にアクセスする」および「STS からの一時的なアクセス認証情報を使用して Tablestore にアクセスする」をご参照ください。

準備

Tablestore クライアントを初期化する前に、インスタンス情報を取得し、Tablestore SDK をインストールし、アクセス認証情報を構成します。

インスタンス情報の取得

  • リージョン ID: インスタンスのリージョン ID。たとえば、中国 (杭州) のリージョン ID は cn-hangzhou です。

  • インスタンス名と エンドポイント: 各 Tablestore インスタンスには一意のエンドポイントがあります。アプリケーションは、テーブルとデータに対する操作を実行するためにエンドポイントを指定する必要があります。エンドポイントを取得するには、次の手順を実行します。

    1. Tablestore コンソール にログオンします。

    2. 上部のナビゲーションバーで、リソースグループとリージョンを選択します。

    3. [概要] ページで、インスタンスエイリアスをクリックするか、[アクション] 列の [インスタンスの管理] をクリックします。

    4. [インスタンスの詳細] タブで、インスタンス名とエンドポイントを表示します。

      重要

      デフォルトでは、新しいインスタンスではインターネットアクセスは無効になっています。インターネット経由でインスタンス内のリソースにアクセスするには、インスタンスのインターネットアクセスを有効にする 必要があります。

Tablestore SDK のインストール

Maven プロジェクトを使用する場合は、プロジェクトの pom.xml ファイルに次の依存関係を追加します。

<dependency>
    <groupId>com.aliyun.openservices</groupId>
    <artifactId>tablestore</artifactId>
    <version>5.17.4</version>
</dependency>                 

詳細については、「Tablestore SDK のインストール」をご参照ください。

アクセス認証情報の構成

Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアを作成 し、AccessKey ペアを環境変数として構成します。

説明

構成が完了したら、IDE、コマンドラインインターフェイス、デスクトップ アプリケーション、バックグラウンド サービスなど、開発環境を再起動またはリフレッシュして、最新のシステム環境変数をロードします。詳細については、「アクセス認証情報の構成」をご参照ください。

Linux

  1. コマンドラインインターフェイスで次のコマンドを実行して、環境変数設定を ~/.bashrc ファイルに追加します。

    echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc
    echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc
  2. 次のコマンドを実行して、変更を有効にします。

    source ~/.bashrc
  3. 次のコマンドを実行して、環境変数が有効になっているかどうかを確認します。

    echo $TABLESTORE_ACCESS_KEY_ID
    echo $TABLESTORE_ACCESS_KEY_SECRET

macOS

  1. ターミナルで次のコマンドを実行して、デフォルトのシェル タイプを確認します。

    echo $SHELL
  2. デフォルトのシェル タイプに基づいて操作を実行します。

    Zsh
    1. 次のコマンドを実行して、環境変数設定を ~/.zshrc ファイルに追加します。

      echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc
      echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc
    2. 次のコマンドを実行して、変更を有効にします。

      source ~/.zshrc
    3. 次のコマンドを実行して、環境変数が有効になっているかどうかを確認します。

      echo $TABLESTORE_ACCESS_KEY_ID
      echo $TABLESTORE_ACCESS_KEY_SECRET
    Bash
    1. 次のコマンドを実行して、環境変数設定を ~/.bash_profile ファイルに追加します。

      echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile
      echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profile
    2. 次のコマンドを実行して、変更を有効にします。

      source ~/.bash_profile
    3. 次のコマンドを実行して、環境変数が有効になっているかどうかを確認します。

      echo $TABLESTORE_ACCESS_KEY_ID
      echo $TABLESTORE_ACCESS_KEY_SECRET

Windows

CMD
  1. CMD で次のコマンドを実行して、環境変数を設定します。

    setx TABLESTORE_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID"
    setx TABLESTORE_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"
  2. CMD を再起動した後、次のコマンドを実行して、環境変数が有効になっているかどうかを確認します。

    echo %TABLESTORE_ACCESS_KEY_ID%
    echo %TABLESTORE_ACCESS_KEY_SECRET%
PowerShell
  1. PowerShell で次のコマンドを実行します。

    [Environment]::SetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User)
    [Environment]::SetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
  2. 次のコマンドを実行して、環境変数が有効になっているかどうかを確認します。

    [Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User)
    [Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)

クライアントを初期化する

クライアントを初期化したら、そのメソッドを呼び出して Tablestore サービスにアクセスします。Tablestore は、ワイドテーブルモデル用に SyncClient と AsyncClient を、時系列モデル用に TimeseriesClient と AsyncTimeseriesClient を提供しています。これらのクライアントは、同期呼び出しと非同期呼び出しの両方をサポートしています。

説明

同期クライアントと非同期クライアントはどちらもスレッドセーフです。スレッドと接続リソースは自動的に管理されます。スレッドまたはリクエストごとに個別のクライアントを作成しないでください。マルチスレッド アプリケーションでは、単一のクライアントオブジェクトを共有します。

ワイドテーブルモデル

V4 署名(推奨)

同期メソッド

次のサンプルコードは、V4 署名を使用して同期モードでクライアントを初期化し、インスタンス内のデータテーブルのリストを取得して、コンソールにリストを出力する方法を示しています。

import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.SyncClient;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.core.auth.V4Credentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.ListTableResponse;

public class InitSyncClientV4 {
    public static void main(String[] args) {
        // yourRegion を、インスタンスが配置されているリージョンの ID(例:cn-hangzhou)に置き換えます。
        final String region = "yourRegion";
        // yourInstanceName をインスタンスの名前に置き換えます。
        final String instanceName = "yourInstanceName";
        // yourEndpoint をインスタンスのエンドポイントに置き換えます。
        final String endpoint = "yourEndpoint";
        // システム環境変数から AccessKey ID と AccessKey シークレットを取得します。
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // V4 署名を構築します。
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
        CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

        // 同期 Tablestore クライアントを初期化します。
        SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // ClientConfiguration を指定して、デフォルトの構成項目を変更できます。次の例は、いくつかのカスタム構成項目を示しています。
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 接続タイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // ソケットタイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 再試行ポリシーを設定します。このパラメーターを設定しない場合は、デフォルトの再試行ポリシーが使用されます。
        SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
         */

        // インスタンス内のデータテーブルをリストし、コンソールにリストを出力します。
        ListTableResponse listTableResponse = client.listTable();
        listTableResponse.getTableNames().forEach(System.out::println);

        // Tablestore クライアントをシャットダウンします。
        client.shutdown();
    }
}

非同期メソッド

次のサンプルコードは、V4 署名を使用して非同期モードでクライアントを初期化し、インスタンス内のデータテーブルのリストを取得して、コンソールにリストを出力する方法を示しています。

import com.alicloud.openservices.tablestore.AsyncClient;
import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.TableStoreCallback;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.core.auth.V4Credentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.ListTableRequest;
import com.alicloud.openservices.tablestore.model.ListTableResponse;

import java.util.concurrent.*;

public class InitAsyncClientV4 {
    public static void main(String[] args) throws InterruptedException, TimeoutException, ExecutionException {
        // yourRegion を、インスタンスが配置されているリージョンの ID(例:cn-hangzhou)に置き換えます。
        final String region = "yourRegion";
        // yourInstanceName をインスタンスの名前に置き換えます。
        final String instanceName = "yourInstanceName";
        // yourEndpoint をインスタンスのエンドポイントに置き換えます。
        final String endpoint = "yourEndpoint";
        // システム環境変数から AccessKey ID と AccessKey シークレットを取得します。
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // V4 署名を構築します。
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
        CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

        // 非同期 Tablestore クライアントを初期化します。
        AsyncClient client = new AsyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // ClientConfiguration を指定して、デフォルトの構成項目を変更できます。次の例は、いくつかのカスタム構成項目を示しています。
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 接続タイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // ソケットタイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 再試行ポリシーを設定します。このパラメーターを設定しない場合は、デフォルトの再試行ポリシーが使用されます。
        AsyncClient client = new AsyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
        */
        
        Future<ListTableResponse> future = client.listTable(new TableStoreCallback<ListTableRequest, ListTableResponse>() {
            @Override
            public void onCompleted(ListTableRequest listTableRequest, ListTableResponse listTableResponse) {}
            @Override
            public void onFailed(ListTableRequest listTableRequest, Exception e) {}
        });

        ListTableResponse response = future.get(5, TimeUnit.SECONDS);
        if (response.getTableNames() != null) {
            response.getTableNames().forEach(System.out::println);
        }

        // Tablestore クライアントをシャットダウンします。
        client.shutdown();
    }
}

V2 署名

同期メソッド

次のサンプルコードは、V2 署名を使用して同期モードでクライアントを初期化し、インスタンス内のデータテーブルのリストを取得して、コンソールにリストを出力する方法を示しています。

import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.SyncClient;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.ListTableResponse;

public class InitSyncClientV2 {
    public static void main(String[] args) {
        // yourInstanceName をインスタンスの名前に置き換えます。
        final String instanceName = "yourInstanceName";
        // yourEndpoint をインスタンスのエンドポイントに置き換えます。
        final String endpoint = "yourEndpoint";
        // システム環境変数から AccessKey ID と AccessKey シークレットを取得します。
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // V2 署名を構築します。
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        CredentialsProvider provider = new DefaultCredentialProvider(credentials);

        // 同期 Tablestore クライアントを初期化します。
        SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // ClientConfiguration を指定して、デフォルトの構成項目を変更できます。次の例は、いくつかのカスタム構成項目を示しています。
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 接続タイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // ソケットタイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 再試行ポリシーを設定します。このパラメーターを設定しない場合は、デフォルトの再試行ポリシーが使用されます。
        SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
         */

        // インスタンス内のデータテーブルをリストし、コンソールにリストを出力します。
        ListTableResponse listTableResponse = client.listTable();
        listTableResponse.getTableNames().forEach(System.out::println);

        // Tablestore クライアントをシャットダウンします。
        client.shutdown();
    }
}

非同期メソッド

次のサンプルコードは、V2 署名を使用して非同期モードでクライアントを初期化し、インスタンス内のデータテーブルのリストを取得して、コンソールにリストを出力する方法を示しています。

import com.alicloud.openservices.tablestore.AsyncClient;
import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.TableStoreCallback;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.ListTableRequest;
import com.alicloud.openservices.tablestore.model.ListTableResponse;

import java.util.concurrent.*;

public class InitAsyncClientV2 {

    public static void main(String[] args) throws InterruptedException, ExecutionException, TimeoutException {
        // yourInstanceName をインスタンスの名前に置き換えます。
        final String instanceName = "yourInstanceName";
        // yourEndpoint をインスタンスのエンドポイントに置き換えます。
        final String endpoint = "yourEndpoint";
        // システム環境変数から AccessKey ID と AccessKey シークレットを取得します。
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // V2 署名を構築します。
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        CredentialsProvider provider = new DefaultCredentialProvider(credentials);

        // 非同期 Tablestore クライアントを初期化します。
        AsyncClient client = new AsyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // ClientConfiguration を指定して、デフォルトの構成項目を変更できます。次の例は、いくつかのカスタム構成項目を示しています。
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 接続タイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // ソケットタイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 再試行ポリシーを設定します。このパラメーターを設定しない場合は、デフォルトの再試行ポリシーが使用されます。
        AsyncClient client = new AsyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
        */

        Future<ListTableResponse> future = client.listTable(new TableStoreCallback<ListTableRequest, ListTableResponse>() {
            @Override
            public void onCompleted(ListTableRequest listTableRequest, ListTableResponse listTableResponse) {}
            @Override
            public void onFailed(ListTableRequest listTableRequest, Exception e) {}
        });

        ListTableResponse response = future.get(5, TimeUnit.SECONDS);
        if (response.getTableNames() != null) {
            response.getTableNames().forEach(System.out::println);
        }

        // Tablestore クライアントをシャットダウンします。
        client.shutdown();

    }
}

時系列モデル

V4 署名(推奨)

同期メソッド

次のサンプルコードは、V4 署名を使用して同期モードでクライアントを初期化し、インスタンス内の時系列テーブルのリストを取得して、コンソールにリストを出力する方法を示しています。

import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.TimeseriesClient;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.core.auth.V4Credentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.timeseries.ListTimeseriesTableResponse;

public class InitTimeseriesClientV4 {
    public static void main(String[] args) {
        // yourRegion を、インスタンスが配置されているリージョンの ID(例:cn-hangzhou)に置き換えます。
        final String region = "yourRegion";
        // yourInstanceName をインスタンスの名前に置き換えます。
        final String instanceName = "yourInstanceName";
        // yourEndpoint をインスタンスのエンドポイントに置き換えます。
        final String endpoint = "yourEndpoint";
        // システム環境変数から AccessKey ID と AccessKey シークレットを取得します。
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // V4 署名を構築します。
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
        CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

        // 同期 Tablestore クライアントを初期化します。
        TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // ClientConfiguration を指定して、デフォルトの構成項目を変更できます。次の例は、いくつかのカスタム構成項目を示しています。
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 接続タイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // ソケットタイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 再試行ポリシーを設定します。このパラメーターを設定しない場合は、デフォルトの再試行ポリシーが使用されます。
        TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
         */

        // インスタンス内の時系列テーブルをリストし、コンソールにリストを出力します。
        ListTimeseriesTableResponse listTimeseriesTableResponse = client.listTimeseriesTable();
        listTimeseriesTableResponse.getTimeseriesTableNames().forEach(System.out::println);

        // Tablestore TimeSeriesClient をシャットダウンします。
        client.shutdown();
    }
}

非同期メソッド

次のサンプルコードは、V4 署名を使用して非同期モードでクライアントを初期化し、インスタンス内の時系列テーブルのリストを取得して、コンソールにリストを出力する方法を示しています。

import com.alicloud.openservices.tablestore.AsyncTimeseriesClient;
import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.TableStoreCallback;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.core.auth.V4Credentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.timeseries.ListTimeseriesTableRequest;
import com.alicloud.openservices.tablestore.model.timeseries.ListTimeseriesTableResponse;

import java.util.concurrent.*;

public class InitAsyncTimeseriesClientV4 {
    public static void main(String[] args) throws InterruptedException, TimeoutException, ExecutionException {
        // yourRegion を、インスタンスが配置されているリージョンの ID(例:cn-hangzhou)に置き換えます。
        final String region = "yourRegion";
        // yourInstanceName をインスタンスの名前に置き換えます。
        final String instanceName = "yourInstanceName";
        // yourEndpoint をインスタンスのエンドポイントに置き換えます。
        final String endpoint = "yourEndpoint";
        // システム環境変数から AccessKey ID と AccessKey シークレットを取得します。
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // V4 署名を構築します。
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
        CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

        // 非同期 Tablestore クライアントを初期化します。
        AsyncTimeseriesClient client = new AsyncTimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // ClientConfiguration を指定して、デフォルトの構成項目を変更できます。次の例は、いくつかのカスタム構成項目を示しています。
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 接続タイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // ソケットタイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 再試行ポリシーを設定します。このパラメーターを設定しない場合は、デフォルトの再試行ポリシーが使用されます。
        AsyncTimeseriesClient client = new AsyncTimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
        */
        
        Future<ListTimeseriesTableResponse> future = client.listTimeseriesTable(new TableStoreCallback<ListTimeseriesTableRequest, ListTimeseriesTableResponse>() {
            @Override
            public void onCompleted(ListTimeseriesTableRequest listTimeseriesTableRequest, ListTimeseriesTableResponse listTimeseriesTableResponse) {}
            @Override
            public void onFailed(ListTimeseriesTableRequest listTimeseriesTableRequest, Exception e) {}
        });

        ListTimeseriesTableResponse response = future.get(5, TimeUnit.SECONDS);
        if (response.getTimeseriesTableNames() != null) {
            response.getTimeseriesTableNames().forEach(System.out::println);
        }

        // Tablestore クライアントをシャットダウンします。
        client.shutdown();
    }
}

V2 署名

同期メソッド

次のサンプルコードは、V2 署名を使用して同期モードでクライアントを初期化し、インスタンス内の時系列テーブルのリストを取得して、コンソールにリストを出力する方法を示しています。

import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.TimeseriesClient;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.timeseries.ListTimeseriesTableResponse;

public class InitTimeseriesClientV2 {
    public static void main(String[] args) {
        // yourInstanceName をインスタンスの名前に置き換えます。
        final String instanceName = "yourInstanceName";
        // yourEndpoint をインスタンスのエンドポイントに置き換えます。
        final String endpoint = "yourEndpoint";
        // システム環境変数から AccessKey ID と AccessKey シークレットを取得します。
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // V2 署名を構築します。
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        CredentialsProvider provider = new DefaultCredentialProvider(credentials);

        // 同期 Tablestore クライアントを初期化します。
        TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // ClientConfiguration を指定して、デフォルトの構成項目を変更できます。次の例は、いくつかのカスタム構成項目を示しています。
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 接続タイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // ソケットタイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 再試行ポリシーを設定します。このパラメーターを設定しない場合は、デフォルトの再試行ポリシーが使用されます。
        TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
         */

        // インスタンス内の時系列テーブルをリストし、コンソールにリストを出力します。
        ListTimeseriesTableResponse listTimeseriesTableResponse = client.listTimeseriesTable();
        listTimeseriesTableResponse.getTimeseriesTableNames().forEach(System.out::println);

        // Tablestore TimeSeriesClient をシャットダウンします。
        client.shutdown();
    }
}

非同期メソッド

次のサンプルコードは、V2 署名を使用して非同期モードでクライアントを初期化し、インスタンス内の時系列テーブルのリストを取得して、コンソールにリストを出力する方法を示しています。

import com.alicloud.openservices.tablestore.AsyncTimeseriesClient;
import com.alicloud.openservices.tablestore.ClientConfiguration;
import com.alicloud.openservices.tablestore.TableStoreCallback;
import com.alicloud.openservices.tablestore.core.ResourceManager;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.timeseries.ListTimeseriesTableRequest;
import com.alicloud.openservices.tablestore.model.timeseries.ListTimeseriesTableResponse;

import java.util.concurrent.*;

public class InitAsyncTimeseriesClientV2 {

    public static void main(String[] args) throws InterruptedException, TimeoutException, ExecutionException {
        // yourInstanceName をインスタンスの名前に置き換えます。
        final String instanceName = "yourInstanceName";
        // yourEndpoint をインスタンスのエンドポイントに置き換えます。
        final String endpoint = "yourEndpoint";
        // システム環境変数から AccessKey ID と AccessKey シークレットを取得します。
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // V2 署名を構築します。
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        CredentialsProvider provider = new DefaultCredentialProvider(credentials);

        // 非同期 Tablestore クライアントを初期化します。
        AsyncTimeseriesClient client = new  AsyncTimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // ClientConfiguration を指定して、デフォルトの構成項目を変更できます。次の例は、いくつかのカスタム構成項目を示しています。
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 接続タイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // ソケットタイムアウト期間をミリ秒単位で設定します。
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 再試行ポリシーを設定します。このパラメーターを設定しない場合は、デフォルトの再試行ポリシーが使用されます。
        AsyncTimeseriesClient client = new  AsyncTimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
        */
        
        Future<ListTimeseriesTableResponse> future = client.listTimeseriesTable(new TableStoreCallback<ListTimeseriesTableRequest, ListTimeseriesTableResponse>() {
            @Override
            public void onCompleted(ListTimeseriesTableRequest listTimeseriesTableRequest, ListTimeseriesTableResponse listTimeseriesTableResponse) {}
            @Override
            public void onFailed(ListTimeseriesTableRequest listTimeseriesTableRequest, Exception e) {}
        });

        ListTimeseriesTableResponse response = future.get(5, TimeUnit.SECONDS);
        if (response.getTimeseriesTableNames() != null) {
            response.getTimeseriesTableNames().forEach(System.out::println);
        }

        // Tablestore クライアントをシャットダウンします。
        client.shutdown();
    }
}

トラブルシューティング

参考資料

キー保護を強化するには、クライアントの初期化時に V4 署名を使用します。詳細については、「ユーザーキーのセキュリティ」をご参照ください。