Tous les produits
Search
Centre de documentation

Tablestore:Accéder à Tablestore avec une paire de clés AccessKey d'un utilisateur RAM

Dernière mise à jour :Aug 19, 2026

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

  1. Connectez-vous à la console RAM en utilisant votre compte Alibaba Cloud ou un utilisateur RAM disposant des autorisations d'administration.

  2. Dans le volet de navigation de gauche, sélectionnez Identities > Users.

  3. Sur la page Users, cliquez sur Create User.

  4. 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 edit 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.

    Remarque

    Cliquez sur Add User pour créer plusieurs utilisateurs RAM en lot.

  5. Dans la section Access Mode, sélectionnez Programmatic Access, puis cliquez sur OK.

    Remarque

    Pour permettre à l'utilisateur RAM de se connecter à la console Alibaba Cloud Management Console, sélectionnez Console Access.

  6. 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.

    Important

    L'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.

Remarque

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.

  1. Dans le volet de navigation de gauche, sélectionnez Identities > Users.

  2. Sur la page Users, localisez l'utilisateur RAM cible.

  3. Cliquez sur Add Permissions dans la colonne Actions correspondant à l'utilisateur RAM.

  4. Dans le panneau Grant Permission, section Policy, recherchez et sélectionnez AliyunOTSFullAccess.

  5. Cliquez sur Grant Permissions.

Custom policy

  1. Créez une stratégie personnalisée.

    1. Dans le volet de navigation de gauche, sélectionnez Permissions > Policies.

    2. Sur la page Policies, cliquez sur Create Policy.

    3. Sur la page Create Policy, cliquez sur l'onglet JSON, saisissez votre script de stratégie dans l'éditeur, puis cliquez sur OK.

      Remarque

      Le 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*"
          }
        ]
      }
    4. Dans la boîte de dialogue Create Policy, saisissez un nom de stratégie, par exemple TestRAMPolicy, puis cliquez sur OK.

  2. Attachez la stratégie personnalisée à l'utilisateur RAM.

    1. Dans le volet de navigation de gauche, sélectionnez Identities > Users.

    2. Sur la page Users, localisez l'utilisateur RAM cible.

    3. Cliquez sur Add Permissions dans la colonne Actions correspondant à l'utilisateur RAM.

    4. Dans le panneau Grant Permission, section Policy, recherchez et sélectionnez la stratégie personnalisée que vous avez créée.

    5. 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

  1. Créez une instance et une table de données dans la console Tablestore.

  2. Récupérez le nom de l'instance, l'endpoint et l'ID de région.

    Important

    Par 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.

  3. 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

    1. 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
    2. Exécutez la commande suivante pour prendre en compte les modifications :

      source ~/.bashrc
    3. 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

    1. Exécutez la commande suivante dans le terminal pour vérifier le type de Shell par défaut.

      echo $SHELL
    2. Effectuez les opérations en fonction du type de Shell par défaut.

      Zsh

      1. 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
      2. Exécutez la commande suivante pour prendre en compte les modifications :

        source ~/.zshrc
      3. 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

      1. 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
      2. Exécutez la commande suivante pour prendre en compte les modifications :

        source ~/.bash_profile
      3. 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

    1. 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"
    2. 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

    1. 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)
    2. 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)
  4. 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/tablestore

    Pour 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 tablestore

    Pour 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 tablestore

    Pour 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)

FAQ

Paire de clés AccessKey perdue

Vous pouvez créer une seconde paire de clés AccessKey pour effectuer une rotation. Après avoir vérifié que la nouvelle paire fonctionne, vous pouvez supprimer l'ancienne. Pour plus d'informations, consultez Effectuer la rotation de la paire de clés AccessKey d'un utilisateur RAM.

Paires de clés AccessKey gérées par l'utilisateur

Dans la console RAM, accédez à la page Settings. Dans la section Global Security, activez le paramètre Allow Users to Manage Their Access Keys. Une fois ce paramètre activé, les utilisateurs RAM peuvent créer, désactiver et supprimer leurs propres paires de clés AccessKey. Pour plus d'informations, consultez Gérer les paramètres de sécurité des utilisateurs RAM et Créer une paire de clés AccessKey.

Erreur de refus de stratégie ACL

Le type de réseau utilisé par le client ne répond pas aux exigences d'accès réseau de l'instance. Vous devez définir le paramètre Allowed Network Type dans l'onglet Network Management de la page Instance Details dans la console Tablestore. Pour plus d'informations, consultez Erreur « Request denied by instance ACL policies » lors de l'accès à Tablestore via un SDK.