Anda dapat menggunakan Layanan Token Keamanan (STS) untuk menerbitkan kredensial akses sementara yang memungkinkan pengguna lain mengakses Tablestore dalam periode validitas tertentu. Kredensial akses sementara tidak mengharuskan Anda mengekspos kunci jangka panjang dan secara otomatis kedaluwarsa setelah periode validitas berakhir, meningkatkan keamanan dan fleksibilitas saat mengakses Tablestore.
Informasi Latar Belakang
Peran RAM adalah pengguna virtual yang dapat diberikan izin untuk mengakses sumber daya tertentu. Berbeda dengan pengguna RAM, peran RAM tidak memiliki kredensial identitas permanen seperti kata sandi logon atau pasangan AccessKey. Sebagai gantinya, peran tersebut harus diasumsikan oleh entitas tepercaya, seperti pengguna RAM. Setelah berhasil diasumsikan, entitas tepercaya memperoleh kredensial identitas sementara dalam bentuk Token Layanan Keamanan (STS). Token ini kemudian dapat digunakan untuk mengakses Tablestore sebagai peran RAM.
Peran RAM dengan entitas tepercayanya sebagai akun Alibaba Cloud digunakan untuk menerapkan akses lintas akun dan otorisasi sementara. Topik ini menggunakan contoh pengguna RAM yang mengasumsikan peran RAM di akun Alibaba Cloud yang sama untuk menjelaskan cara menggunakan kredensial akses sementara dari STS untuk mengakses sumber daya Tablestore.
Prosedur
Untuk menggunakan kredensial akses sementara yang diperoleh dari STS untuk mengakses Tablestore, pertama-tama buat peran RAM yang akan diasumsikan dan berikan izin untuk mengakses Tablestore. Selanjutnya, buat pengguna RAM untuk mengasumsikan peran RAM dan memperoleh kredensial akses sementara dari STS. Terakhir, gunakan kredensial akses sementara yang diperoleh untuk memulai permintaan untuk mengakses sumber daya Tablestore.
Langkah 1: Buat Peran RAM
Masuk ke Konsol RAM menggunakan akun Alibaba Cloud atau administrator RAM.
Di panel navigasi di sebelah kiri, pilih . Halaman Roles ditampilkan.
Klik Create Role, konfigurasikan informasi entitas tepercaya, dan klik OK.
Parameter
Nilai Contoh
Tipe Principal
Akun cloud
Nama Principal
Akun Saat Ini
Di kotak dialog Create Role, atur Role Name menjadi
RamTablestore, dan klik OK.
Untuk mendapatkan kredensial akses sementara dari STS, Anda harus menentukan ARN dari peran RAM. Untuk mendapatkan ARN, klik nama peran dalam daftar peran untuk masuk ke halaman detail peran. Kemudian, temukan dan salin ARN di bagian Basic Information.

Langkah 2: Berikan Izin Peran RAM Tablestore Izin
Gunakan Kebijakan Default
Dalam contoh ini, kebijakan AliyunOTSFullAccess dilampirkan ke peran RAM untuk memberikan izin mengakses Tablestore.
Kebijakan AliyunOTSFullAccess berisi izin akses penuh pada Tablestore. Anda juga dapat memberikan izin dengan cara berikut:
Untuk memberikan akses hanya-baca, lampirkan kebijakan
AliyunOTSReadOnlyAccesske peran RAM.Jika Anda memerlukan izin hanya-tulis, berikan izin
AliyunOTSWriteOnlyAccesskepada peran RAM.
Di panel navigasi di sebelah kiri, pilih .
Di halaman Roles, temukan peran RAM target.
Klik Grant Permission di kolom Tindakan peran RAM, atau klik nama peran untuk masuk ke halaman detail peran dan klik Grant Permission di bagian Permission Management.
Di bagian Policy panel Grant Permission, cari dan pilih
AliyunOTSFullAccess.Klik Grant Permissions.
Gunakan Kebijakan Kustom
Buat kebijakan Manajemen Akses Sumber Daya (RAM) kustom.
Di panel navigasi di sebelah kiri, pilih .
Di halaman Policies, klik Create Policy.
Di halaman Create Policy, klik Script Editor, tulis skrip di kotak teks, lalu klik OK.
Skrip contoh berikut memungkinkan peran RAM mengakses instans tertentu. Anda dapat menentukan skrip kebijakan kustom berdasarkan kebutuhan bisnis Anda. Misalnya, Anda dapat memberikan izin kepada peran RAM untuk mengakses tabel atau memanggil operasi API. Anda juga dapat memberikan izin kepada peran RAM untuk mengakses Tablestore hanya dari alamat IP tertentu atau sebelum titik waktu tertentu. Untuk informasi lebih lanjut tentang kebijakan RAM, lihat Buat kebijakan kustom.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ots:*", "Resource": "acs:ots:*:*:instance/your_instance_name*" } ] }Di kotak dialog Create Policy, masukkan nama kebijakan, misalnya,
TestRAMPolicy, dan klik OK.
Lampirkan kebijakan kustom ke peran RAM.
Di panel navigasi di sebelah kiri, pilih .
Di halaman Roles, cari peran RAM yang dituju.
Klik Grant Permission di sebelah kanan peran RAM, atau klik nama peran untuk masuk ke halaman detail peran dan klik Grant Permission di area Permission Management.
Di bagian Policy panel Grant Permission, cari dan pilih kebijakan kustom yang Anda buat.
Klik Grant Permissions.
Anda dapat mengklik nama peran dalam daftar peran untuk masuk ke halaman detail peran. Di tab Permissions, Anda dapat melihat kebijakan izin yang dilampirkan.

Langkah 3: Buat Pengguna RAM
Buat pengguna RAM untuk mengasumsikan peran RAM.
Masuk ke Konsol Manajemen Akses Sumber Daya (RAM) menggunakan akun Alibaba Cloud Anda atau pengguna RAM yang memiliki hak administratif.
Di panel navigasi di sebelah kiri, pilih .
Di halaman Users, klik Create User.
Di bagian User Account Information halaman Create User, konfigurasikan parameter berikut:
Logon Name: Nama logon dapat berisi hingga 64 karakter dan dapat mencakup huruf, angka, titik (.), tanda hubung (-), dan garis bawah (_).
Display Name: Nama tampilan dapat berisi hingga 128 karakter.
Tag: Klik
dan masukkan kunci tag dan nilai tag. Anda dapat menambahkan satu atau lebih tag ke pengguna RAM. Ini memungkinkan Anda mengelola pengguna RAM berdasarkan tag.
CatatanAnda dapat mengklik Add User untuk membuat beberapa Pengguna RAM sekaligus.
Di bagian Access Mode, pilih Programmatic Access, dan klik OK.
CatatanJika Anda ingin masuk dan mengakses Konsol Manajemen Alibaba Cloud sebagai pengguna RAM, pilih Console Access.
Di kolom Actions, klik Copy untuk menyimpan informasi tentang pengguna RAM. Anda dapat menyalin ID AccessKey dan Rahasia AccessKey secara terpisah.
PentingRahasia AccessKey pengguna RAM hanya ditampilkan saat Anda membuat pasangan AccessKey. Setelah halaman Buat Pengguna ditutup, Anda tidak dapat menanyakan Rahasia AccessKey. Catat dan simpan Rahasia AccessKey Anda di lokasi yang aman.
Langkah 4: Berikan Izin AssumeRole kepada Pengguna RAM
Izin AssumeRole diperlukan agar pengguna RAM dapat mengasumsikan peran RAM.
Di panel navigasi di sebelah kiri, pilih .
Di halaman Users, temukan pengguna RAM target.
Klik Add Permissions di sebelah kanan pengguna RAM, atau klik nama pengguna untuk masuk ke halaman detail pengguna dan di tab Permission Management, klik Grant Permission.
Di bagian Policy panel Grant Permission, cari dan pilih
AliyunSTSAssumeRoleAccess.Klik Grant Permissions.
Langkah 5: Asumsikan Peran RAM sebagai Pengguna RAM untuk Mendapatkan Kredensial Akses Sementara dari STS
Sebelum mengakses sumber daya Tablestore, Anda harus mengasumsikan peran RAM sebagai pengguna RAM untuk mendapatkan kredensial akses sementara dari STS. Kredensial ini valid selama periode tertentu. Bagian ini menggunakan Java sebagai contoh untuk menjelaskan operasi spesifik.
Anda juga dapat memperoleh kredensial akses sementara dengan memanggil operasi AssumeRole di OpenAPI Explorer.
Persiapan
Tambahkan dependensi berikut ke proyek Maven:
<dependency> <groupId>com.aliyun</groupId> <artifactId>sts20150401</artifactId> <version>1.1.6</version> </dependency>Konfigurasikan variabel lingkungan. Setelah konfigurasi selesai, restart atau segarkan lingkungan kompilasi dan runtime Anda, termasuk IDE, antarmuka baris perintah, aplikasi desktop lainnya, dan layanan latar belakang untuk memastikan bahwa variabel lingkungan sistem terbaru berhasil dimuat.
Linux
Jalankan perintah berikut di antarmuka baris perintah untuk menambahkan pengaturan variabel lingkungan ke file
~/.bashrc.echo "export ALIBABA_CLOUD_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc echo "export ALIBABA_CLOUD_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc echo "export TABLESTORE_STS_ROLE_ARN='YOUR_RAM_ROLE_ARN'" >> ~/.bashrcJalankan perintah berikut untuk memungkinkan perubahan berlaku:
source ~/.bashrcJalankan perintah berikut untuk memeriksa apakah variabel lingkungan berlaku:
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET echo $TABLESTORE_STS_ROLE_ARN
macOS
Jalankan perintah berikut di terminal untuk memeriksa tipe Shell default.
echo $SHELLLakukan operasi berdasarkan tipe Shell default.
Zsh
Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file
~/.zshrc.echo "export ALIBABA_CLOUD_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc echo "export ALIBABA_CLOUD_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc echo "export TABLESTORE_STS_ROLE_ARN='YOUR_RAM_ROLE_ARN'" >> ~/.zshrcJalankan perintah berikut untuk memungkinkan perubahan berlaku:
source ~/.zshrcJalankan perintah berikut untuk memeriksa apakah variabel lingkungan berlaku:
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET echo $TABLESTORE_STS_ROLE_ARN
Bash
Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file
~/.bash_profile.echo "export ALIBABA_CLOUD_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile echo "export ALIBABA_CLOUD_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profile echo "export TABLESTORE_STS_ROLE_ARN='YOUR_RAM_ROLE_ARN'" >> ~/.bash_profileJalankan perintah berikut untuk memungkinkan perubahan diterapkan:
source ~/.bash_profileJalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah berlaku:
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET echo $TABLESTORE_STS_ROLE_ARN
Windows
CMD
Jalankan perintah berikut di CMD untuk menetapkan variabel lingkungan.
setx ALIBABA_CLOUD_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID" setx ALIBABA_CLOUD_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET" setx TABLESTORE_STS_ROLE_ARN "YOUR_RAM_ROLE_ARN"Setelah me-restart CMD, jalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah berlaku:
echo %ALIBABA_CLOUD_ACCESS_KEY_ID% echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET% echo %TABLESTORE_STS_ROLE_ARN%
PowerShell
Jalankan perintah berikut di PowerShell:
[Environment]::SetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("TABLESTORE_STS_ROLE_ARN", "YOUR_RAM_ROLE_ARN", [EnvironmentVariableTarget]::User)Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah berlaku:
[Environment]::GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("TABLESTORE_STS_ROLE_ARN", [EnvironmentVariableTarget]::User)
Kode contoh
Kode contoh berikut menunjukkan cara memperoleh kredensial akses sementara dari STS dengan mengasumsikan Peran RAM sebagai Pengguna RAM dan menampilkan kredensial akses sementara di konsol Tablestore. Dalam contoh ini, periode validitas kredensial akses sementara adalah 1 jam.
Untuk informasi tentang titik akhir STS, lihat Titik Akhir.
import com.aliyun.sts20150401.models.AssumeRoleResponse;
import com.aliyun.tea.*;
public class AssumeRoleSample {
public static com.aliyun.sts20150401.Client createClient() throws Exception {
// Jika kode proyek bocor, pasangan AccessKey dapat terungkap, yang berpotensi membahayakan keamanan semua sumber daya dalam akun Anda. Kode contoh berikut disediakan hanya untuk referensi.
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi.
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Tentukan titik akhir STS.
config.endpoint = "sts.cn-hangzhou.aliyuncs.com";
return new com.aliyun.sts20150401.Client(config);
}
public static void main(String[] args) throws Exception {
com.aliyun.sts20150401.Client client = AssumeRoleSample.createClient();
com.aliyun.sts20150401.models.AssumeRoleRequest assumeRoleRequest = new com.aliyun.sts20150401.models.AssumeRoleRequest()
// Tentukan periode validitas kredensial akses sementara. Unit: detik. Periode validitas minimum adalah 900 detik. Periode validitas maksimum sama dengan durasi sesi maksimum yang ditentukan untuk peran saat ini. Durasi sesi maksimum untuk peran saat ini berkisar antara 3.600 hingga 43.200 detik. Durasi sesi maksimum default untuk peran saat ini adalah 3.600 detik.
.setDurationSeconds(3600L)
// Wajib. Pastikan variabel lingkungan TABLESTORE_STS_ROLE_ARN dikonfigurasi. Variabel lingkungan tersebut menentukan ARN dari Peran RAM.
.setRoleArn(System.getenv("TABLESTORE_STS_ROLE_ARN"))
// Wajib. Tentukan nama sesi untuk peran untuk membedakan token yang berbeda.
.setRoleSessionName("RAMTablestore");
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
try {
// Dapatkan kredensial akses sementara dari STS dan tampilkan kredensial akses sementara. Simpan kredensial akses sementara di lokasi yang aman.
AssumeRoleResponse response = client.assumeRoleWithOptions(assumeRoleRequest, runtime);
System.out.println("Kedaluwarsa: " + response.getBody().getCredentials().getExpiration());
System.out.println("Access Key Id: " + response.getBody().getCredentials().getAccessKeyId());
System.out.println("Access Key Secret: " + response.getBody().getCredentials().getAccessKeySecret());
System.out.println("Security Token: " + response.getBody().getCredentials().getSecurityToken());
} catch (TeaException error) {
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pengecualian disediakan hanya untuk referensi.
// Pesan kesalahan.
System.out.println(error.getMessage());
// URL untuk pemecahan masalah.
System.out.println(error.getData().get("Recommend"));
com.aliyun.teautil.Common.assertAsString(error.message);
} catch (Exception _error) {
TeaException error = new TeaException(_error.getMessage(), _error);
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pengecualian disediakan hanya untuk referensi.
// Pesan kesalahan.
System.out.println(error.getMessage());
// URL untuk pemecahan masalah.
System.out.println(error.getData().get("Recommend"));
com.aliyun.teautil.Common.assertAsString(error.message);
}
}
}Untuk informasi lebih lanjut tentang SDK STS dan contoh kode untuk bahasa pemrograman lainnya, lihat Ringkasan SDK STS.
Langkah 6: Gunakan kredensial akses sementara untuk mengakses Tablestore
Persiapan
Buat instans dan tabel data di konsol Tablestore.
Dapatkan nama instans, titik akhir instans, dan ID wilayah.
PentingSecara default, akses jaringan publik dinonaktifkan untuk instans baru. Jika Anda perlu mengakses sumber daya dalam instans melalui jaringan publik, Anda harus mengaktifkan akses jaringan publik untuk instans.
Konfigurasikan variabel lingkungan. Setelah konfigurasi selesai, restart atau segarkan lingkungan kompilasi dan runtime Anda, termasuk IDE, antarmuka baris perintah, aplikasi desktop lainnya, dan layanan latar belakang untuk memastikan bahwa variabel lingkungan sistem terbaru berhasil dimuat.
Linux
Jalankan perintah berikut di antarmuka baris perintah untuk menambahkan pengaturan variabel lingkungan ke file
~/.bashrc.echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_STS_ACCESS_KEY_ID'" >> ~/.bashrc echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_STS_ACCESS_KEY_SECRET'" >> ~/.bashrc echo "export TABLESTORE_SESSION_TOKEN='YOUR_STS_TOKEN'" >> ~/.bashrcJalankan perintah berikut untuk membuat perubahan berlaku:
source ~/.bashrcJalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah diterapkan:
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET echo $TABLESTORE_SESSION_TOKEN
macOS
Jalankan perintah berikut di terminal untuk memeriksa jenis Shell default.
echo $SHELLLakukan operasi berdasarkan jenis Shell default.
Zsh
Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file
~/.zshrc.echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_STS_ACCESS_KEY_ID'" >> ~/.zshrc echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_STS_ACCESS_KEY_SECRET'" >> ~/.zshrc echo "export TABLESTORE_SESSION_TOKEN='YOUR_STS_TOKEN'" >> ~/.zshrcJalankan perintah berikut untuk membuat perubahan berlaku:
source ~/.zshrcJalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah diterapkan:
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET echo $TABLESTORE_SESSION_TOKEN
Bash
Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file
~/.bash_profile.echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_STS_ACCESS_KEY_ID'" >> ~/.bash_profile echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_STS_ACCESS_KEY_SECRET'" >> ~/.bash_profile echo "export TABLESTORE_SESSION_TOKEN='YOUR_STS_TOKEN'" >> ~/.bash_profileJalankan perintah berikut untuk membuat perubahan berlaku:
source ~/.bash_profileJalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah diterapkan:
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET echo $TABLESTORE_SESSION_TOKEN
Windows
CMD
Jalankan perintah berikut di CMD untuk mengatur variabel lingkungan.
setx TABLESTORE_ACCESS_KEY_ID "YOUR_STS_ACCESS_KEY_ID" setx TABLESTORE_ACCESS_KEY_SECRET "YOUR_STS_ACCESS_KEY_SECRET" setx TABLESTORE_SESSION_TOKEN "YOUR_STS_TOKEN"Setelah me-restart CMD, jalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah diterapkan:
echo %TABLESTORE_ACCESS_KEY_ID% echo %TABLESTORE_ACCESS_KEY_SECRET% echo %TABLESTORE_SESSION_TOKEN%
PowerShell
Jalankan perintah berikut di PowerShell:
[Environment]::SetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID", "YOUR_STS_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET", "YOUR_STS_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("TABLESTORE_SESSION_TOKEN", "YOUR_STS_TOKEN", [EnvironmentVariableTarget]::User)Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah diterapkan:
[Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("TABLESTORE_SESSION_TOKEN", [EnvironmentVariableTarget]::User)
Instal SDK Tablestore untuk bahasa pemrograman yang diperlukan.
Java
Jika Anda menggunakan Maven untuk mengelola proyek Java, tambahkan dependensi berikut ke file pom.xml:
<dependency> <groupId>com.aliyun.openservices</groupId> <artifactId>tablestore</artifactId> <version>5.17.4</version> </dependency>Untuk informasi lebih lanjut, lihat Instal Tablestore Java SDK.
Go
Jalankan perintah
go mod init <DIRNAME>di direktori proyek untuk menghasilkan file go.mod. Kemudian, jalankan perintah berikut untuk menginstal Tablestore SDK untuk Go:Catatan<DIRNAME>menunjukkan jalur direktori proyek. Ganti <DIRNAME> dengan jalur direktori proyek aktual.go get github.com/aliyun/aliyun-tablestore-go-sdk/tablestoreUntuk informasi lebih lanjut, lihat Instal Tablestore Go SDK.
Python
Jalankan perintah berikut untuk menggunakan pip menginstal Tablestore SDK untuk Python:
sudo pip install tablestoreUntuk informasi lebih lanjut, lihat Instal Tablestore Python SDK.
Node.js
Gunakan npm untuk menjalankan perintah berikut untuk menginstal Tablestore SDK untuk Node.js:
npm install tablestoreUntuk informasi lebih lanjut, lihat Instal Tablestore Node.js SDK.
.NET
Untukinformasi lebih lanjut, lihat Instal Tablestore .NET SDK.
PHP
Untuk informasi lebih lanjut, lihat Instal Tablestore PHP SDK.
Model Kolom Lebar
Saat menggunakan model Kolom Lebar, Anda harus menggunakan kredensial akses sementara yang diperoleh dari STS untuk menginisialisasi klien untuk model Kolom Lebar dan memulai permintaan.
Java
(Direkomendasikan) Gunakan tanda tangan V4
Kode contoh Java berikut memberikan contoh cara menggunakan tanda tangan V4 untuk menginisialisasi klien dan menanyakan daftar tabel data dalam instans:
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.*;
import com.alicloud.openservices.tablestore.model.AlwaysRetryStrategy;
import com.alicloud.openservices.tablestore.model.ListTableResponse;
public class InitClientV4 {
public static void main(String[] args) {
// Tentukan wilayah tempat instans Anda berada. Contoh: cn-hangzhou.
final String region = "yourRegion";
// Tentukan nama instans.
final String instanceName = "yourInstanceName";
// Tentukan titik akhir instans.
final String endpoint = "yourEndpoint";
// Dapatkan ID AccessKey sementara, rahasia AccessKey sementara, dan token keamanan dari variabel lingkungan.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
final String securityToken = System.getenv("TABLESTORE_SESSION_TOKEN");
// Buat tanda tangan V4.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret, securityToken);
V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);
// Inisialisasi klien Tablestore.
SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// Anda dapat menggunakan ClientConfiguration untuk memodifikasi konfigurasi default. Contoh berikut mencakup beberapa konfigurasi kustom.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tentukan periode timeout untuk membangun koneksi. Unit: milidetik.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tentukan periode timeout soket. Unit: milidetik.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tentukan kebijakan ulang. Jika tidak menentukan kebijakan ulang, kebijakan ulang default digunakan.
SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
// Tanyakan daftar tabel data dalam instans dan tampilkan daftarnya di konsol Tablestore.
ListTableResponse listTableResponse = client.listTable();
listTableResponse.getTableNames().forEach(System.out::println);
// Matikan klien Tablestore.
client.shutdown();
}
}Gunakan tanda tangan V2
Kode contoh Java berikut memberikan contoh cara menggunakan tanda tangan V2 untuk menginisialisasi klien dan menanyakan daftar tabel data dalam instans:
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 InitClientV2 {
public static void main(String[] args) {
// Tentukan nama instans.
final String instanceName = "yourInstanceName";
// Tentukan titik akhir instans.
final String endpoint = "yourEndpoint";
// Dapatkan ID AccessKey sementara, rahasia AccessKey sementara, dan token keamanan dari variabel lingkungan.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
final String securityToken = System.getenv("TABLESTORE_SESSION_TOKEN");
// Buat tanda tangan V2.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret, securityToken);
CredentialsProvider provider = new DefaultCredentialProvider(credentials);
// Inisialisasi klien.
SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// Anda dapat menggunakan ClientConfiguration untuk memodifikasi konfigurasi default. Contoh berikut mencakup konfigurasi kustom tertentu.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tentukan periode timeout untuk membangun koneksi. Unit: milidetik.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tentukan periode timeout soket. Unit: milidetik.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tentukan kebijakan ulang. Jika tidak menentukan kebijakan ulang, kebijakan ulang default digunakan.
SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
// Tanyakan daftar tabel data dalam instans dan tampilkan daftarnya di konsol Tablestore.
ListTableResponse listTableResponse = client.listTable();
listTableResponse.getTableNames().forEach(System.out::println);
// Matikan klien Tablestore.
client.shutdown();
}
}Go
Kode contoh Go berikut memberikan contoh cara menginisialisasi klien dan menanyakan daftar tabel data dalam instans:
package main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-tablestore-go-sdk/tablestore"
)
func main() {
// Tentukan nama instans.
instanceName := "yourInstanceName"
// Tentukan titik akhir instans.
endpoint := "yourEndpoint"
// Dapatkan ID AccessKey sementara, rahasia AccessKey sementara, dan token keamanan dari variabel lingkungan.
accessKeyId := os.Getenv("TABLESTORE_ACCESS_KEY_ID")
accessKeySecret := os.Getenv("TABLESTORE_ACCESS_KEY_SECRET")
securityToken := os.Getenv("TABLESTORE_SESSION_TOKEN")
// Inisialisasi klien.
client := tablestore.NewClientWithConfig(endpoint, instanceName, accessKeyId, accessKeySecret, securityToken, nil)
// Tanyakan daftar tabel data dalam instans dan tampilkan daftarnya di konsol Tablestore.
tables, err := client.ListTable()
if err != nil {
fmt.Println("Gagal menampilkan tabel.")
} else {
for _, table := range (tables.TableNames) {
fmt.Println(table)
}
}
}Python
Kode contoh Python berikut memberikan contoh cara menginisialisasi klien dan menanyakan daftar tabel data dalam instans:
# -*- coding: utf-8 -*-
import os
from tablestore import OTSClient
# Tentukan nama instans.
instance_name = "yourInstanceName"
# Tentukan titik akhir instans.
endpoint = "yourEndpoint"
# Dapatkan ID AccessKey sementara, rahasia AccessKey sementara, dan token keamanan dari variabel lingkungan.
access_key_id = os.getenv("TABLESTORE_ACCESS_KEY_ID")
access_key_secret = os.getenv("TABLESTORE_ACCESS_KEY_SECRET")
sts_token = os.getenv("TABLESTORE_SESSION_TOKEN")
# Inisialisasi klien.
client = OTSClient(endpoint, access_key_id, access_key_secret, instance_name, sts_token=sts_token)
# Tanyakan daftar tabel data dalam instans dan tampilkan daftarnya di konsol Tablestore.
resp = client.list_table()
for table_name in resp:
print(table_name)Node.js
Kode contoh Node.js berikut memberikan contoh cara menginisialisasi klien dan menanyakan daftar tabel data dalam instans:
// Dalam contoh ini, jalurnya adalah jalur relatif. Modifikasi jalur berdasarkan kebutuhan bisnis Anda.
var TableStore = require('../index.js');
// Tentukan nama instans.
var instancename = 'yourInstanceName';
// Tentukan titik akhir instans.
var endpoint = 'yourEndpoint';
// Dapatkan ID AccessKey sementara, rahasia AccessKey sementara, dan token keamanan dari variabel lingkungan.
var accessKeyId = process.env.TABLESTORE_ACCESS_KEY_ID;
var accessKeySecret = process.env.TABLESTORE_ACCESS_KEY_SECRET;
var stsToken = process.env.TABLESTORE_SESSION_TOKEN;
// Inisialisasi klien Tablestore.
var client = new TableStore.Client({
accessKeyId: accessKeyId,
secretAccessKey: accessKeySecret,
stsToken: stsToken,
endpoint: endpoint,
instancename: instancename
});
// Tanyakan daftar tabel data dalam instans dan tampilkan daftarnya di konsol Tablestore.
client.listTable({}, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', data);
});PHP
Kode contoh PHP berikut memberikan contoh cara menginisialisasi klien dan menanyakan daftar tabel data dalam instans:
<?php
// Dalam contoh ini, jalurnya adalah jalur relatif. Modifikasi jalur berdasarkan kebutuhan bisnis Anda.
require (__DIR__ . '/../../vendor/autoload.php');
use Aliyun\OTS\OTSClient as OTSClient;
// Tentukan nama instans.
$instanceName = "yourInstanceName";
// Tentukan titik akhir instans.
$endpoint = "yourEndpoint";
// Dapatkan ID AccessKey sementara, rahasia AccessKey sementara, dan token keamanan dari variabel lingkungan.
$accessKeyId = getenv('TABLESTORE_ACCESS_KEY_ID');
$accessKeySecret = getenv('TABLESTORE_ACCESS_KEY_SECRET');
$stsToken = getenv('TABLESTORE_SESSION_TOKEN');
// Inisialisasi klien Tablestore.
$otsClient = new OTSClient(array(
'EndPoint' => $endpoint,
'AccessKeyID' => $accessKeyId,
'AccessKeySecret' => $accessKeySecret,
'InstanceName' => $instanceName,
'StsToken' => $stsToken,
));
// Tanyakan daftar tabel data dalam instans dan tampilkan daftarnya di konsol Tablestore.
$response = $otsClient->listTable (array ());
print json_encode ($response);Model TimeSeries
Saat menggunakan model TimeSeries, Anda harus menggunakan kredensial akses sementara yang diperoleh dari STS untuk menginisialisasi klien untuk model TimeSeries dan memulai permintaan. Hanya Tablestore SDK untuk Java, Tablestore SDK untuk Go, dan Tablestore SDK untuk Python yang mendukung model TimeSeries.
Java
(Direkomendasikan) Gunakan tanda tangan V4
Kode contoh Java berikut memberikan contoh cara menggunakan tanda tangan V4 untuk menginisialisasi klien dan menanyakan daftar tabel seri waktu dalam instans:
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) {
// Tentukan wilayah tempat instans Anda berada. Contoh: cn-hangzhou.
final String region = "yourRegion";
// Tentukan nama instans.
final String instanceName = "yourInstanceName";
// Tentukan titik akhir instans Anda.
final String endpoint = "yourEndpoint";
// Dapatkan ID AccessKey sementara, rahasia AccessKey sementara, dan token keamanan dari variabel lingkungan.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
final String securityToken = System.getenv("TABLESTORE_SESSION_TOKEN");
// Buat tanda tangan V4.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret, securityToken);
V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);
// Inisialisasi klien TimeSeries.
TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// Anda dapat menggunakan ClientConfiguration untuk memodifikasi konfigurasi default. Contoh berikut mencakup beberapa konfigurasi kustom.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tentukan periode timeout untuk membangun koneksi. Unit: milidetik.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tentukan periode timeout soket. Unit: milidetik.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tentukan kebijakan ulang. Jika tidak menentukan kebijakan ulang, kebijakan ulang default digunakan.
TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
// Tanyakan daftar tabel seri waktu dalam instans dan tampilkan daftarnya di konsol Tablestore.
ListTimeseriesTableResponse listTimeseriesTableResponse = client.listTimeseriesTable();
listTimeseriesTableResponse.getTimeseriesTableNames().forEach(System.out::println);
// Matikan klien TimeSeries.
client.shutdown();
}
}Gunakan tanda tangan V2
Kode contoh Java berikut memberikan contoh cara menggunakan tanda tangan V2 untuk menginisialisasi klien dan menanyakan daftar tabel seri waktu dalam instans:
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) {
// Tentukan nama instans.
final String instanceName = "yourInstanceName";
// Tentukan titik akhir instans.
final String endpoint = "yourEndpoint";
// Dapatkan ID AccessKey sementara, rahasia AccessKey sementara, dan token keamanan dari variabel lingkungan.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
final String securityToken = System.getenv("TABLESTORE_SESSION_TOKEN");
// Buat tanda tangan V2.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret, securityToken);
CredentialsProvider provider = new DefaultCredentialProvider(credentials);
// Inisialisasi klien.
TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// Anda dapat menggunakan ClientConfiguration untuk memodifikasi konfigurasi default. Contoh berikut mencakup konfigurasi kustom tertentu.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Tentukan periode timeout untuk membangun koneksi. Unit: milidetik.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Tentukan periode timeout soket. Unit: milidetik.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Tentukan kebijakan ulang. Jika tidak menentukan kebijakan ulang, kebijakan ulang default digunakan.
TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
// Tanyakan daftar tabel seri waktu dalam instans dan tampilkan daftarnya di konsol Tablestore.
ListTimeseriesTableResponse listTimeseriesTableResponse = client.listTimeseriesTable();
listTimeseriesTableResponse.getTimeseriesTableNames().forEach(System.out::println);
// Matikan klien TimeSeries.
client.shutdown();
}
}Go
Kode contoh Go berikut memberikan contoh cara menginisialisasi klien dan menanyakan daftar tabel seri waktu dalam instans:
package main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-tablestore-go-sdk/tablestore"
)
func main() {
// Tentukan nama instans.
instanceName := "yourInstanceName"
// Tentukan titik akhir instans.
endpoint := "yourEndpoint"
// Dapatkan ID AccessKey sementara, rahasia AccessKey sementara, dan token keamanan dari variabel lingkungan.
accessKeyId := os.Getenv("TABLESTORE_ACCESS_KEY_ID")
accessKeySecret := os.Getenv("TABLESTORE_ACCESS_KEY_SECRET")
securityToken := os.Getenv("TABLESTORE_SESSION_TOKEN")
// Inisialisasi klien.
client := tablestore.NewTimeseriesClientWithConfig(endpoint, instanceName, accessKeyId, accessKeySecret, securityToken, nil, nil)
// Tanyakan daftar tabel seri waktu dalam instans dan tampilkan daftarnya di konsol Tablestore.
timeseriesTables, err := client.ListTimeseriesTable()
if err != nil {
fmt.Println("Gagal menampilkan tabel.")
} else {
for _, timeseriesTablesMeta := range (timeseriesTables.GetTimeseriesTableMeta()) {
fmt.Println(timeseriesTablesMeta.GetTimeseriesTableName())
}
}
}Python
Kode contoh Python berikut memberikan contoh cara menginisialisasi klien dan menanyakan daftar tabel seri waktu dalam instans:
# -*- coding: utf-8 -*-
import os
from tablestore import OTSClient
# Tentukan nama instans.
instance_name = "yourInstanceName"
# Tentukan titik akhir instans.
endpoint = "yourEndpoint"
# Dapatkan ID AccessKey sementara, rahasia AccessKey sementara, dan token keamanan dari variabel lingkungan.
access_key_id = os.getenv("TABLESTORE_ACCESS_KEY_ID")
access_key_secret = os.getenv("TABLESTORE_ACCESS_KEY_SECRET")
sts_token = os.getenv("TABLESTORE_SESSION_TOKEN")
# Inisialisasi klien.
client = OTSClient(endpoint, access_key_id, access_key_secret, instance_name, sts_token=sts_token)
# Tanyakan daftar tabel seri waktu dalam instans dan tampilkan daftarnya di konsol Tablestore.
response = client.list_timeseries_table()
for tableMeta in response:
print(tableMeta.timeseries_table_name)