全部产品
Search
文档中心

:Inisialisasi klien Tablestore

更新时间:Aug 14, 2025

Klien Tablestore menyediakan serangkaian metode untuk mengelola tabel dan data di Tablestore. Topik ini menjelaskan cara menggunakan Tablestore SDK untuk Java dalam menginisialisasi klien Tablestore.

Penting

Topik ini menggunakan Pasangan Kunci Akses dari akun Alibaba Cloud sebagai contoh. Untuk menginisialisasi klien menggunakan kredensial lainnya, lihat Gunakan Pasangan Kunci Akses dari Pengguna RAM untuk Mengakses Tablestore dan Gunakan Kredensial Akses Sementara dari STS untuk Mengakses Tablestore.

Persiapan

Sebelum menginisialisasi klien Tablestore, peroleh informasi instans, instal Tablestore SDK, dan konfigurasikan kredensial akses.

Peroleh informasi instans

  • ID Wilayah: ID wilayah dari instans. Sebagai contoh, ID wilayah China (Hangzhou) adalah cn-hangzhou.

  • Nama instans dan Titik Akhir: Setiap Tablestore instans memiliki titik akhir unik. Aplikasi Anda harus menentukan titik akhir untuk melakukan operasi pada tabel dan data. Untuk memperoleh titik akhir, ikuti langkah-langkah berikut:

    1. Masuk ke Konsol Tablestore.

    2. Di bilah navigasi atas, pilih kelompok sumber daya dan wilayah.

    3. Di halaman Overview, klik alias instans atau klik Manage Instance di kolom Actions.

    4. Di tab Instance Details, periksa nama instans dan titik akhir.

      Penting

      Secara default, akses Internet dinonaktifkan untuk instans baru. Untuk mengakses sumber daya dalam instans melalui Internet, Anda harus mengaktifkan akses Internet untuk instans.

Instal Tablestore SDK

Jika Anda menggunakan proyek Maven, tambahkan dependensi berikut ke file pom.xml proyek:

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

Untuk informasi lebih lanjut, lihat Instal Tablestore SDK.

Konfigurasikan kredensial akses

Buat Pasangan Kunci Akses untuk akun Alibaba Cloud Anda atau Pengguna RAM, lalu konfigurasikan Pasangan Kunci Akses sebagai variabel lingkungan.

Catatan

Setelah menyelesaikan konfigurasi, mulai ulang atau segarkan lingkungan pengembangan Anda, seperti IDE, antarmuka baris perintah, aplikasi desktop, atau layanan latar belakang, untuk memuat variabel lingkungan sistem terbaru. Untuk informasi lebih lanjut, lihat Konfigurasikan Kredensial Akses.

Linux

  1. Jalankan perintah berikut di antarmuka baris perintah untuk menambahkan pengaturan variabel lingkungan ke file ~/.bashrc.

    echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc
    echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc
  2. Jalankan perintah berikut untuk membuat perubahan berlaku:

    source ~/.bashrc
  3. Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan berlaku:

    echo $TABLESTORE_ACCESS_KEY_ID
    echo $TABLESTORE_ACCESS_KEY_SECRET

macOS

  1. Jalankan perintah berikut di terminal untuk memeriksa tipe Shell default.

    echo $SHELL
  2. Lakukan operasi berdasarkan tipe Shell default.

    Zsh
    1. Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file ~/.zshrc.

      echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc
      echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc
    2. Jalankan perintah berikut untuk membuat perubahan berlaku:

      source ~/.zshrc
    3. Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan berlaku:

      echo $TABLESTORE_ACCESS_KEY_ID
      echo $TABLESTORE_ACCESS_KEY_SECRET
    Bash
    1. Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file ~/.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. Jalankan perintah berikut untuk membuat perubahan berlaku:

      source ~/.bash_profile
    3. Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan berlaku:

      echo $TABLESTORE_ACCESS_KEY_ID
      echo $TABLESTORE_ACCESS_KEY_SECRET

Windows

CMD
  1. Jalankan perintah berikut di CMD untuk menetapkan variabel lingkungan.

    setx TABLESTORE_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID"
    setx TABLESTORE_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"
  2. Setelah memulai ulang CMD, jalankan perintah berikut untuk memeriksa apakah variabel lingkungan berlaku:

    echo %TABLESTORE_ACCESS_KEY_ID%
    echo %TABLESTORE_ACCESS_KEY_SECRET%
PowerShell
  1. Jalankan perintah berikut di 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. Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan berlaku:

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

Inisialisasi klien

Setelah menginisialisasi klien, panggil metodenya untuk mengakses layanan Tablestore. Tablestore menyediakan SyncClient dan AsyncClient untuk model tabel lebar, serta TimeseriesClient dan AsyncTimeseriesClient untuk model deret waktu. Klien-klien ini mendukung panggilan sinkron dan asinkron.

Catatan

Klien sinkron dan asinkron keduanya aman-thread. Mereka secara otomatis mengelola thread dan sumber daya koneksi. Jangan buat klien terpisah untuk setiap thread atau permintaan. Dalam aplikasi multi-threaded, bagikan satu objek klien.

Model tabel lebar

Tanda tangan V4 (Direkomendasikan)

Metode sinkron

Kode sampel berikut menunjukkan cara menggunakan tanda tangan V4 untuk menginisialisasi klien dalam mode sinkron, mengambil daftar tabel data dalam instans, dan mencetak daftar tersebut ke konsol.

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) {
        // Ganti yourRegion dengan ID wilayah tempat instans Anda berada, seperti cn-hangzhou.
        final String region = "yourRegion";
        // Ganti yourInstanceName dengan nama instans Anda.
        final String instanceName = "yourInstanceName";
        // Ganti yourEndpoint dengan titik akhir instans Anda.
        final String endpoint = "yourEndpoint";
        // Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // Buat tanda tangan V4.
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
        CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

        // Inisialisasi klien Tablestore sinkron.
        SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
        SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
         */

        // Daftarkan tabel data dalam instans dan cetak daftar ke konsol.
        ListTableResponse listTableResponse = client.listTable();
        listTableResponse.getTableNames().forEach(System.out::println);

        // Matikan klien Tablestore.
        client.shutdown();
    }
}

Metode asinkron

Kode sampel berikut menunjukkan cara menggunakan tanda tangan V4 untuk menginisialisasi klien dalam mode asinkron, mengambil daftar tabel data dalam instans, dan mencetak daftar tersebut ke konsol.

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 {
        // Ganti yourRegion dengan ID wilayah tempat instans Anda berada, seperti cn-hangzhou.
        final String region = "yourRegion";
        // Ganti yourInstanceName dengan nama instans Anda.
        final String instanceName = "yourInstanceName";
        // Ganti yourEndpoint dengan titik akhir instans Anda.
        final String endpoint = "yourEndpoint";
        // Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // Buat tanda tangan V4.
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
        CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

        // Inisialisasi klien Tablestore asinkron.
        AsyncClient client = new AsyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
        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);
        }

        // Matikan klien Tablestore.
        client.shutdown();
    }
}

Tanda tangan V2

Metode sinkron

Kode sampel berikut menunjukkan cara menggunakan tanda tangan V2 untuk menginisialisasi klien dalam mode sinkron, mengambil daftar tabel data dalam instans, dan mencetak daftar tersebut ke konsol.

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) {
        // Ganti yourInstanceName dengan nama instans Anda.
        final String instanceName = "yourInstanceName";
        // Ganti yourEndpoint dengan titik akhir instans Anda.
        final String endpoint = "yourEndpoint";
        // Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // Buat tanda tangan V2.
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        CredentialsProvider provider = new DefaultCredentialProvider(credentials);

        // Inisialisasi klien Tablestore sinkron.
        SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
        SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
         */

        // Daftarkan tabel data dalam instans dan cetak daftar ke konsol.
        ListTableResponse listTableResponse = client.listTable();
        listTableResponse.getTableNames().forEach(System.out::println);

        // Matikan klien Tablestore.
        client.shutdown();
    }
}

Metode asinkron

Kode sampel berikut menunjukkan cara menggunakan tanda tangan V2 untuk menginisialisasi klien dalam mode asinkron, mengambil daftar tabel data dalam instans, dan mencetak daftar tersebut ke konsol.

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 {
        // Ganti yourInstanceName dengan nama instans Anda.
        final String instanceName = "yourInstanceName";
        // Ganti yourEndpoint dengan titik akhir instans Anda.
        final String endpoint = "yourEndpoint";
        // Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // Buat tanda tangan V2.
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        CredentialsProvider provider = new DefaultCredentialProvider(credentials);

        // Inisialisasi klien Tablestore asinkron.
        AsyncClient client = new AsyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
        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);
        }

        // Matikan klien Tablestore.
        client.shutdown();

    }
}

Model deret waktu

Tanda tangan V4 (Direkomendasikan)

Metode sinkron

Kode sampel berikut menunjukkan cara menggunakan tanda tangan V4 untuk menginisialisasi klien dalam mode sinkron, mengambil daftar tabel deret waktu dalam instans, dan mencetak daftar tersebut ke konsol.

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) {
        // Ganti yourRegion dengan ID wilayah tempat instans Anda berada, seperti cn-hangzhou.
        final String region = "yourRegion";
        // Ganti yourInstanceName dengan nama instans Anda.
        final String instanceName = "yourInstanceName";
        // Ganti yourEndpoint dengan titik akhir instans Anda.
        final String endpoint = "yourEndpoint";
        // Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // Buat tanda tangan V4.
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
        CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

        // Inisialisasi klien Tablestore sinkron.
        TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
        TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
         */

        // Daftarkan tabel deret waktu dalam instans dan cetak daftar ke konsol.
        ListTimeseriesTableResponse listTimeseriesTableResponse = client.listTimeseriesTable();
        listTimeseriesTableResponse.getTimeseriesTableNames().forEach(System.out::println);

        // Matikan Klien TimeSeries Tablestore.
        client.shutdown();
    }
}

Metode asinkron

Kode sampel berikut menunjukkan cara menggunakan tanda tangan V4 untuk menginisialisasi klien dalam mode asinkron, mengambil daftar tabel deret waktu dalam instans, dan mencetak daftar tersebut ke konsol.

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 {
        // Ganti yourRegion dengan ID wilayah tempat instans Anda berada, seperti cn-hangzhou.
        final String region = "yourRegion";
        // Ganti yourInstanceName dengan nama instans Anda.
        final String instanceName = "yourInstanceName";
        // Ganti yourEndpoint dengan titik akhir instans Anda.
        final String endpoint = "yourEndpoint";
        // Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // Buat tanda tangan V4.
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
        CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

        // Inisialisasi klien Tablestore asinkron.
        AsyncTimeseriesClient client = new AsyncTimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
        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);
        }

        // Matikan klien Tablestore.
        client.shutdown();
    }
}

Tanda tangan V2

Metode sinkron

Kode sampel berikut menunjukkan cara menggunakan tanda tangan V2 untuk menginisialisasi klien dalam mode sinkron, mengambil daftar tabel deret waktu dalam instans, dan mencetak daftar tersebut ke konsol.

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) {
        // Ganti yourInstanceName dengan nama instans Anda.
        final String instanceName = "yourInstanceName";
        // Ganti yourEndpoint dengan titik akhir instans Anda.
        final String endpoint = "yourEndpoint";
        // Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // Buat tanda tangan V2.
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        CredentialsProvider provider = new DefaultCredentialProvider(credentials);

        // Inisialisasi klien Tablestore sinkron.
        TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
        TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
         */

        // Daftarkan tabel deret waktu dalam instans dan cetak daftar ke konsol.
        ListTimeseriesTableResponse listTimeseriesTableResponse = client.listTimeseriesTable();
        listTimeseriesTableResponse.getTimeseriesTableNames().forEach(System.out::println);

        // Matikan Klien TimeSeries Tablestore.
        client.shutdown();
    }
}

Metode asinkron

Kode sampel berikut menunjukkan cara menggunakan tanda tangan V2 untuk menginisialisasi klien dalam mode asinkron, mengambil daftar tabel deret waktu dalam instans, dan mencetak daftar tersebut ke konsol.

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 {
        // Ganti yourInstanceName dengan nama instans Anda.
        final String instanceName = "yourInstanceName";
        // Ganti yourEndpoint dengan titik akhir instans Anda.
        final String endpoint = "yourEndpoint";
        // Dapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan sistem.
        final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

        // Buat tanda tangan V2.
        DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
        CredentialsProvider provider = new DefaultCredentialProvider(credentials);

        // Inisialisasi klien Tablestore asinkron.
        AsyncTimeseriesClient client = new  AsyncTimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

        /*
        // Anda dapat menentukan ClientConfiguration untuk memodifikasi item konfigurasi default. Contoh berikut menunjukkan beberapa item konfigurasi kustom.
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tetapkan periode timeout koneksi dalam milidetik.
        clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tetapkan periode timeout soket dalam milidetik.
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tetapkan kebijakan ulang. Jika Anda tidak menetapkan parameter ini, kebijakan ulang default digunakan.
        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);
        }

        // Matikan klien Tablestore.
        client.shutdown();
    }
}

Pemecahan Masalah

Referensi

Untuk meningkatkan perlindungan kunci, gunakan tanda tangan V4 saat menginisialisasi klien. Untuk informasi lebih lanjut, lihat Keamanan Kunci Pengguna.