Resource Access Management (RAM) vous aide à gérer les identités des utilisateurs et les autorisations d'accès aux ressources. Pour renforcer la sécurité, l'utilisation d'une paire de clés AccessKey d'un utilisateur RAM pour accéder aux ressources Tablestore est plus sûre que l'utilisation des identifiants de votre compte Alibaba Cloud. Cette rubrique explique comment utiliser une paire de clés AccessKey d'un utilisateur RAM pour accéder aux ressources Tablestore.
Contexte
Un utilisateur RAM est un type d'identité dans Resource Access Management (RAM). Vous pouvez créer des utilisateurs RAM sous votre compte Alibaba Cloud et leur accorder des autorisations spécifiques. Cela permet à différents utilisateurs RAM d'avoir des niveaux d'accès distincts à vos ressources.
Procédure
Pour accéder à Tablestore avec une paire de clés AccessKey d'un utilisateur RAM, créez un utilisateur RAM, accordez-lui les autorisations nécessaires pour accéder à Tablestore, puis utilisez les identifiants de cet utilisateur pour accéder aux ressources Tablestore.
Étape 1 : Créer un utilisateur RAM
Connectez-vous à la console RAM en utilisant votre compte Alibaba Cloud ou un utilisateur RAM disposant des autorisations d'administration.
Dans le volet de navigation de gauche, sélectionnez Identities > Users.
Sur la page Users, cliquez sur Create User.
-
Sur la page Create User, dans la section User Account Information, configurez les informations de base de l'utilisateur :
Logon Name : Le nom de connexion peut contenir des lettres, des chiffres, des points (.), des traits d'union (-) et des traits de soulignement (_). Sa longueur maximale est de 64 caractères.
Display Name : Le nom d'affichage peut comporter jusqu'à 128 caractères.
Tag : Cliquez sur l'icône
et saisissez une clé de tag ainsi qu'une valeur. L'ajout d'un tag facilite la recherche et la gestion de l'utilisateur RAM.
RemarqueCliquez sur Add User pour créer plusieurs utilisateurs RAM en lot.
-
Dans la section Access Mode, sélectionnez Programmatic Access, puis cliquez sur OK.
RemarquePour permettre à l'utilisateur RAM de se connecter à la console Alibaba Cloud Management Console, sélectionnez Console Access.
-
Dans la colonne Actions, cliquez sur Copy pour sauvegarder les informations de l'utilisateur RAM. Vous pouvez également copier séparément l'AccessKey ID et l'AccessKey secret.
ImportantL'AccessKey secret n'est affiché qu'une seule fois lors de la création et ne peut pas être récupéré ultérieurement. Stockez-le immédiatement dans un emplacement sécurisé.
Étape 2 : Accorder des autorisations à l'utilisateur RAM pour Tablestore
Après avoir créé un utilisateur RAM, vous devez lui accorder les autorisations nécessaires pour accéder à Tablestore.
Default policy
Cet exemple montre comment accorder à un utilisateur RAM les autorisations d'accès à Tablestore en attachant la stratégie AliyunOTSFullAccess.
La stratégie AliyunOTSFullAccess accorde un accès complet à Tablestore. Vous pouvez également accorder des autorisations à l'aide d'autres stratégies par défaut :
Pour un accès en lecture seule, accordez à l'utilisateur RAM la stratégie
AliyunOTSReadOnlyAccess.Pour un accès en écriture seule, accordez à l'utilisateur RAM la stratégie
AliyunOTSWriteOnlyAccess.
Dans le volet de navigation de gauche, sélectionnez Identities > Users.
Sur la page Users, localisez l'utilisateur RAM cible.
Cliquez sur Add Permissions dans la colonne Actions correspondant à l'utilisateur RAM.
Dans le panneau Grant Permission, section Policy, recherchez et sélectionnez
AliyunOTSFullAccess.Cliquez sur Grant Permissions.
Custom policy
-
Créez une stratégie personnalisée.
Dans le volet de navigation de gauche, sélectionnez Permissions > Policies.
Sur la page Policies, cliquez sur Create Policy.
-
Sur la page Create Policy, cliquez sur l'onglet JSON, saisissez votre script de stratégie dans l'éditeur, puis cliquez sur OK.
RemarqueLe script d'exemple suivant accorde à un utilisateur RAM l'autorisation d'accéder à une seule instance. Vous pouvez personnaliser la stratégie pour contrôler l'accès au niveau de la table ou de l'opération API, ou en fonction de conditions telles que l'adresse IP ou l'heure d'accès. Pour plus d'informations sur les stratégies RAM, consultez Stratégie RAM personnalisée.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ots:*", "Resource": "acs:ots:*:*:instance/your_instance_name*" } ] } Dans la boîte de dialogue Create Policy, saisissez un nom de stratégie, par exemple
TestRAMPolicy, puis cliquez sur OK.
-
Attachez la stratégie personnalisée à l'utilisateur RAM.
Dans le volet de navigation de gauche, sélectionnez Identities > Users.
Sur la page Users, localisez l'utilisateur RAM cible.
Cliquez sur Add Permissions dans la colonne Actions correspondant à l'utilisateur RAM.
Dans le panneau Grant Permission, section Policy, recherchez et sélectionnez la stratégie personnalisée que vous avez créée.
Cliquez sur Grant Permissions.
Sur la page Users, vous pouvez cliquer sur un nom d'utilisateur pour accéder à la page des détails de l'utilisateur. Dans l'onglet Permissions, vous pouvez consulter les stratégies accordées à l'utilisateur.
Étape 3 : Utiliser la paire de clés AccessKey pour accéder à Tablestore
Avant de commencer
Créez une instance et une table de données dans la console Tablestore.
-
Récupérez le nom de l'instance, l'endpoint et l'ID de région.
ImportantPar défaut, l'accès au réseau public est désactivé pour les instances nouvellement créées. Si vous devez accéder aux ressources d'une instance via Internet, vous devez activer l'accès au réseau public pour l'instance.
-
Configurez les variables d'environnement. Une fois la configuration terminée, redémarrez ou actualisez votre environnement de compilation et d'exécution, y compris l'IDE, l'interface de ligne de commande, les autres applications de bureau et les services en arrière-plan, afin de garantir le chargement correct des dernières variables d'environnement système.
Linux
-
Exécutez les commandes suivantes dans l'interface de ligne de commande pour ajouter les paramètres des variables d'environnement au fichier
~/.bashrc.echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc -
Exécutez la commande suivante pour prendre en compte les modifications :
source ~/.bashrc -
Exécutez les commandes suivantes pour vérifier si les variables d'environnement sont prises en compte :
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET
macOS
-
Exécutez la commande suivante dans le terminal pour vérifier le type de Shell par défaut.
echo $SHELL -
Effectuez les opérations en fonction du type de Shell par défaut.
Zsh
-
Exécutez les commandes suivantes pour ajouter les paramètres des variables d'environnement au fichier
~/.zshrc.echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc -
Exécutez la commande suivante pour prendre en compte les modifications :
source ~/.zshrc -
Exécutez les commandes suivantes pour vérifier si les variables d'environnement sont prises en compte :
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET
Bash
-
Exécutez les commandes suivantes pour ajouter les paramètres des variables d'environnement au fichier
~/.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 -
Exécutez la commande suivante pour prendre en compte les modifications :
source ~/.bash_profile -
Exécutez les commandes suivantes pour vérifier si les variables d'environnement sont prises en compte :
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET
-
Windows
CMD
-
Exécutez les commandes suivantes dans CMD pour définir les variables d'environnement.
setx TABLESTORE_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID" setx TABLESTORE_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET" -
Après avoir redémarré CMD, exécutez les commandes suivantes pour vérifier si les variables d'environnement sont prises en compte :
echo %TABLESTORE_ACCESS_KEY_ID% echo %TABLESTORE_ACCESS_KEY_SECRET%
PowerShell
-
Exécutez la commande suivante dans 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) -
Exécutez les commandes suivantes pour vérifier si les variables d'environnement sont prises en compte :
[Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
-
-
Installez le SDK Tablestore pour le langage de programmation de votre choix.
Java
Si vous utilisez un projet Maven, ajoutez la dépendance suivante à votre fichier pom.xml :
<dependency> <groupId>com.aliyun.openservices</groupId> <artifactId>tablestore</artifactId> <version>5.17.4</version> </dependency>
Pour plus d'informations, consultez Installer le SDK Tablestore pour Java.
Go
Exécutez la commande
go mod init <DIRNAME>dans le répertoire du projet pour générer le fichier go.mod. Ensuite, exécutez la commande suivante pour installer le SDK Tablestore pour Go :Remarque<DIRNAME>indique le chemin du répertoire du projet. Remplacez <DIRNAME> par le chemin réel du répertoire de votre projet.go get github.com/aliyun/aliyun-tablestore-go-sdk/tablestorePour plus d'informations, consultez Installer le SDK Tablestore pour Go.
Python
Exécutez la commande suivante pour installer le SDK Tablestore pour Python à l'aide de pip :
sudo pip install tablestorePour plus d'informations, consultez Installer le SDK Tablestore pour Python.
Node.js
Exécutez la commande suivante pour installer le SDK Tablestore pour Node.js :
npm install tablestorePour plus d'informations, consultez Installer le SDK Tablestore pour Node.js.
.NET
Pour plus d'informations, consultez Installer le SDK .NET Tablestore.
PHP
Pour plus d'informations, consultez Installer le SDK PHP Tablestore.
Modèle de colonnes larges
Pour utiliser le modèle de colonnes larges, initialisez le client avec la paire de clés AccessKey de l'utilisateur RAM.
Java
Signature V4
L'exemple de code Java suivant montre comment utiliser une signature V4 pour initialiser un client et récupérer les noms de toutes les tables de données d'une instance.
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 InitClientV4 {
public static void main(String[] args) {
// Replace yourRegion with the region where your instance is located, for example, cn-hangzhou.
final String region = "yourRegion";
// Replace yourInstanceName with the name of your instance.
final String instanceName = "yourInstanceName";
// Replace yourEndpoint with the endpoint of your instance.
final String endpoint = "yourEndpoint";
// Obtain the AccessKey ID and AccessKey secret from environment variables.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
// Construct a V4 signature.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);
// Initialize the Tablestore client.
SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// You can specify a ClientConfiguration to modify the default settings. The following example shows some custom settings.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Set the connection timeout period in milliseconds.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Set the socket timeout period in milliseconds.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Set a retry policy. If a retry policy is not set, the default retry policy is used.
SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
// List the data tables in the instance and print their names to the console.
ListTableResponse listTableResponse = client.listTable();
listTableResponse.getTableNames().forEach(System.out::println);
// Shut down the Tablestore client.
client.shutdown();
}
}
Signature V2
L'exemple de code Java suivant montre comment utiliser une signature V2 pour initialiser un client et récupérer les noms de toutes les tables de données d'une instance.
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) {
// Replace yourInstanceName with the name of your instance.
final String instanceName = "yourInstanceName";
// Replace yourEndpoint with the endpoint of your instance.
final String endpoint = "yourEndpoint";
// Obtain the AccessKey ID and AccessKey secret from environment variables.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
// Construct a V2 signature.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
CredentialsProvider provider = new DefaultCredentialProvider(credentials);
// Initialize the Tablestore client.
SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// You can specify a ClientConfiguration to modify the default settings. The following example shows some custom settings.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Set the connection timeout period in milliseconds.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Set the socket timeout period in milliseconds.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Set a retry policy. If a retry policy is not set, the default retry policy is used.
SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
// List the data tables in the instance and print their names to the console.
ListTableResponse listTableResponse = client.listTable();
listTableResponse.getTableNames().forEach(System.out::println);
// Shut down the Tablestore client.
client.shutdown();
}
}
Go
L'exemple de code Go suivant montre comment initialiser un client et récupérer les noms de toutes les tables de données d'une instance.
package main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-tablestore-go-sdk/tablestore"
)
func main() {
// Replace yourInstanceName with the name of your instance.
instanceName := "yourInstanceName"
// Replace yourEndpoint with the endpoint of your instance.
endpoint := "yourEndpoint"
// Obtain the AccessKey ID and AccessKey secret from environment variables.
accessKeyId := os.Getenv("TABLESTORE_ACCESS_KEY_ID")
accessKeySecret := os.Getenv("TABLESTORE_ACCESS_KEY_SECRET")
// Initialize the Tablestore client.
client := tablestore.NewClient(endpoint, instanceName, accessKeyId, accessKeySecret)
// List the data tables in the instance and print their names to the console.
tables, err := client.ListTable()
if err != nil {
fmt.Println("Failed to list table")
} else {
for _, table := range (tables.TableNames) {
fmt.Println(table)
}
}
}
Python
L'exemple de code Python suivant montre comment initialiser un client et récupérer les noms de toutes les tables de données d'une instance.
# -*- coding: utf-8 -*-
import os
from tablestore import OTSClient
# Replace yourInstanceName with the name of your instance.
instance_name = "yourInstanceName"
# Replace yourEndpoint with the endpoint of your instance.
endpoint = "yourEndpoint"
# Obtain the AccessKey ID and AccessKey secret from environment variables.
access_key_id = os.getenv("TABLESTORE_ACCESS_KEY_ID")
access_key_secret = os.getenv("TABLESTORE_ACCESS_KEY_SECRET")
# Initialize the Tablestore client.
client = OTSClient(endpoint, access_key_id, access_key_secret, instance_name)
# List the data tables in the instance and print their names to the console.
resp = client.list_table()
for table_name in resp:
print(table_name)
Node.js
L'exemple de code Node.js suivant montre comment initialiser un client et récupérer les noms de toutes les tables de données d'une instance.
// This is a relative path. Adjust it based on your actual file structure.
var TableStore = require('../index.js');
// Replace yourInstanceName with the name of your instance.
var instancename = 'yourInstanceName';
// Replace yourEndpoint with the endpoint of your instance.
var endpoint = 'yourEndpoint';
// Obtain the AccessKey ID and AccessKey secret from environment variables.
var accessKeyId = process.env.TABLESTORE_ACCESS_KEY_ID;
var secretAccessKey = process.env.TABLESTORE_ACCESS_KEY_SECRET;
// Initialize the Tablestore client.
var client = new TableStore.Client({
accessKeyId: accessKeyId,
secretAccessKey: secretAccessKey,
endpoint: endpoint,
instancename: instancename
});
// List the data tables in the instance and print their names to the console.
client.listTable({}, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', data);
});
.NET
L'exemple de code .NET suivant montre comment initialiser un client et récupérer les noms de toutes les tables de données d'une instance.
using Aliyun.OTS.Request;
using Aliyun.OTS.Response;
using System;
namespace Aliyun.OTS.Samples
{
public class Sample
{
public static void InitializeClient()
{
// Replace yourEndpoint with the endpoint of your instance.
string endpoint = "yourEndpoint";
// Replace yourInstanceName with the name of your instance.
string instanceName = "yourInstanceName";
// Obtain the AccessKey ID and AccessKey secret from environment variables.
string accessKeyId = Environment.GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID");
string accessKeySecret = Environment.GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET");
OTSClientConfig config = new OTSClientConfig(endpoint, accessKeyId, accessKeySecret, instanceName)
{
OTSDebugLogHandler = null,
OTSErrorLogHandler = null
};
try
{
// Initialize the Tablestore client.
OTSClient client = new OTSClient(config);
// List the data tables in the instance and print their names.
ListTableResponse response = client.ListTable(new ListTableRequest());
foreach (var tableName in response.TableNames)
{
Console.WriteLine(tableName);
}
}
catch (Exception ex)
{
Console.WriteLine("List table failed, exception:{0}", ex.Message);
}
}
}
}
PHP
L'exemple de code PHP suivant montre comment initialiser un client et récupérer les noms de toutes les tables de données d'une instance.
<?php
// This is a relative path. Adjust it based on your actual file structure.
require (__DIR__ . '/../../vendor/autoload.php');
use Aliyun\OTS\OTSClient as OTSClient;
// Replace yourInstanceName with the name of your instance.
$instanceName = "yourInstanceName";
// Replace yourEndpoint with the endpoint of your instance.
$endpoint = "yourEndpoint";
// Obtain the AccessKey ID and AccessKey secret from system environment variables.
$accessKeyId = getenv('TABLESTORE_ACCESS_KEY_ID');
$accessKeySecret = getenv('TABLESTORE_ACCESS_KEY_SECRET');
// Initialize the Tablestore client.
$client = new OTSClient(array(
'EndPoint' => $endpoint,
'AccessKeyID' => $accessKeyId,
'AccessKeySecret' => $accessKeySecret,
'InstanceName' => $instanceName,
));
// List the data tables in the instance and print their names to the console.
$response = $client->listTable (array ());
print json_encode ($response);
Modèle de séries temporelles
Pour utiliser le modèle de séries temporelles, initialisez le client avec la paire de clés AccessKey de l'utilisateur RAM. Actuellement, le modèle de séries temporelles est pris en charge par les SDK pour Java, Go et Python.
Java
Signature V4
L'exemple de code Java suivant montre comment utiliser une signature V4 pour initialiser un client et récupérer les noms de toutes les tables de séries temporelles d'une instance.
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) {
// Replace yourRegion with the region where your instance is located, for example, cn-hangzhou.
final String region = "yourRegion";
// Replace yourInstanceName with the name of your instance.
final String instanceName = "yourInstanceName";
// Replace yourEndpoint with the endpoint of your instance.
final String endpoint = "yourEndpoint";
// Obtain the AccessKey ID and AccessKey secret from environment variables.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
// Construct a V4 signature.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);
// Initialize the Tablestore client.
TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// You can specify a ClientConfiguration to modify the default settings. The following example shows some custom settings.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Set the connection timeout period in milliseconds.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Set the socket timeout period in milliseconds.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Set a retry policy. If a retry policy is not set, the default retry policy is used.
TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
// List the time series tables in the instance and print their names to the console.
ListTimeseriesTableResponse listTimeseriesTableResponse = client.listTimeseriesTable();
listTimeseriesTableResponse.getTimeseriesTableNames().forEach(System.out::println);
// Shut down the Tablestore client.
client.shutdown();
}
}
Signature V2
L'exemple de code Java suivant montre comment utiliser une signature V2 pour initialiser un client et récupérer les noms de toutes les tables de séries temporelles d'une instance.
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) {
// Replace yourInstanceName with the name of your instance.
final String instanceName = "yourInstanceName";
// Replace yourEndpoint with the endpoint of your instance.
final String endpoint = "yourEndpoint";
// Obtain the AccessKey ID and AccessKey secret from environment variables.
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
// Construct a V2 signature.
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
CredentialsProvider provider = new DefaultCredentialProvider(credentials);
// Initialize the Tablestore client.
TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
/*
// You can specify a ClientConfiguration to modify the default settings. The following example shows some custom settings.
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setConnectionTimeoutInMillisecond(5000); // Set the connection timeout period in milliseconds.
clientConfiguration.setSocketTimeoutInMillisecond(5000); // Set the socket timeout period in milliseconds.
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // Set a retry policy. If a retry policy is not set, the default retry policy is used.
TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
*/
// List the time series tables in the instance and print their names to the console.
ListTimeseriesTableResponse listTimeseriesTableResponse = client.listTimeseriesTable();
listTimeseriesTableResponse.getTimeseriesTableNames().forEach(System.out::println);
// Shut down the Tablestore client.
client.shutdown();
}
}
Go
L'exemple de code Go suivant montre comment initialiser un client et récupérer les noms de toutes les tables de séries temporelles d'une instance.
package main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-tablestore-go-sdk/tablestore"
)
func main() {
// Replace yourInstanceName with the name of your instance.
instanceName := "yourInstanceName"
// Replace yourEndpoint with the endpoint of your instance.
endpoint := "yourEndpoint"
// Obtain the AccessKey ID and AccessKey secret from environment variables.
accessKeyId := os.Getenv("TABLESTORE_ACCESS_KEY_ID")
accessKeySecret := os.Getenv("TABLESTORE_ACCESS_KEY_SECRET")
// Initialize the Tablestore client.
client := tablestore.NewTimeseriesClient(endpoint, instanceName, accessKeyId, accessKeySecret)
// List the time series tables in the instance and print their names to the console.
timeseriesTables, err := client.ListTimeseriesTable()
if err != nil {
fmt.Println("Failed to list table")
} else {
for _, timeseriesTablesMeta := range (timeseriesTables.GetTimeseriesTableMeta()) {
fmt.Println(timeseriesTablesMeta.GetTimeseriesTableName())
}
}
}
Python
L'exemple de code Python suivant montre comment initialiser un client et récupérer les noms de toutes les tables de séries temporelles d'une instance.
# -*- coding: utf-8 -*-
import os
from tablestore import OTSClient
# Replace yourInstanceName with the name of your instance.
instance_name = "yourInstanceName"
# Replace yourEndpoint with the endpoint of your instance.
endpoint = "yourEndpoint"
# Obtain the AccessKey ID and AccessKey secret from environment variables.
access_key_id = os.getenv("TABLESTORE_ACCESS_KEY_ID")
access_key_secret = os.getenv("TABLESTORE_ACCESS_KEY_SECRET")
# Initialize the Tablestore client.
client = OTSClient(endpoint, access_key_id, access_key_secret, instance_name)
# List the time series tables in the instance and print their names to the console.
response = client.list_timeseries_table()
for tableMeta in response:
print(tableMeta.timeseries_table_name)