OTSClient is a client for Tablestore. OTSClient provides various methods that you can use to manage tables and perform read and write operations on a single row or multiple rows.
Obtain an endpoint
An endpoint is a domain name that is used to access a Tablestore instance in a region. The following table describes the examples of endpoints in the supported formats.
A public endpoint that is used to access the sun instance in the China (Hangzhou) region over HTTP.
A public endpoint that is used to access the sun instance in the China (Hangzhou) region over HTTPS.
You can connect to Tablestore by using either public or private endpoints. For more information, see Endpoints.
To query the endpoints of your Tablestore instance, perform the following steps:
Log on to the Tablestore console.
On the Overview page, click the name of the desired instance.
In the Instance Access Address section of the Instance Details tab, view the endpoint of the instance.
Configure an AccessKey pair
To access Tablestore, you need to have an AccessKey pair that consists of an AccessKey ID and AccessKey secret to verify your identity. Tablestore supports the following types of AccessKey pairs:
The AccessKey pair of an Alibaba Cloud account. To obtain an AccessKey pair, perform the following steps:
The AccessKey pair of a RAM user that is authorized to access Tablestore. To obtain an AccessKey pair, perform the following steps:
Log on to the RAM console by using an Alibaba Cloud account. Then, create a RAM user or find an existing RAM user.
Grant the RAM user the permissions to access Tablestore.
After the RAM user is granted the permissions to access Tablestore, you can use the AccessKey pair of the RAM user to access Tablestore.
Temporary access credentials that are obtained from Security Token Service (STS). To obtain temporary access credentials, perform the following steps:
The application server uses RAM or STS to obtain access credentials that consist of a temporary AccessKey ID, an AccessKey secret, and a token. After the access credentials are obtained, the application server sends them to you.
You can use the access credentials to access Tablestore.
Configure environment variables
Configure environment variables based on your operating system.
The OTS_AK_ENV environment variable indicates the AccessKey ID of an Alibaba Cloud account or a RAM user. The OTS_SK_ENV environment variable indicates the AccessKey secret of an Alibaba Cloud account or a RAM user. Specify the AccessKey pair based on your requirements.
Configure environment variables in Linux and macOS
Run the following command to configure environment variables. Replace
<access_key_id>with your actual AccessKey ID and
<access_key_secret>with your actual AccessKey secret.
export OTS_AK_ENV=<access_key_id> export OTS_SK_ENV=<access_key_secret>
Configure environment variables in Windows
Create an environment variable file and add the OTS_AK_ENV and OTS_SK_ENV environment variables to the file. Then, set the OTS_AK_ENV environment variable to the AccessKey ID and the OTS_SK_ENV environment variable to the AccessKey Secret. Then, restart Windows for the configuration to take effect.
Initialize an OTSClient instance
The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. We recommend that you use a RAM user to call API operations or perform routine O&M. We recommend that you do not save the AccessKey ID and AccessKey Secret in your project code. Otherwise, the AccessKey pair may be leaked and the security of all the resources that belong to your account may be compromised. In this example, the AccessKey pair is specified in the environment variables, thus identifies verification.
""" Initialize an OTSClient instance. end_point: the endpoint that is used to access the Tablestore instance. The endpoint must start with https://. Example: https://instance.cn-hangzhou.ots.aliyun.com:80. access_key_id: the AccessKey ID that is used to access the Tablestore instance. You can visit the Alibaba Cloud official website or contact an administrator to obtain an AccessKey ID. access_key_secret: the AccessKey secret that is used to access the Tablestore instance. You can visit the Alibaba Cloud official website or contact an administrator to obtain an AccessKey secret. instance_name: the name of the Tablestore instance that you want to access. You can create an instance in the Tablestore console or contact an administrator to obtain the name of an existing instance. sts_token: the STS token that is used to access the Tablestore instance. You can use Alibaba Cloud STS to obtain an STS token. The STS token has a validity period. You must obtain a new token if the existing token expires. encoding: the method that is used to encode the request parameter string. Default value: utf8. socket_timeout: the timeout period in seconds for each socket connection in the connection pool. The value can be an integer or a floating-point number. Default value: 50. max_connection: the maximum number of connections in a connection pool. Default value: 50. logger_name: the name of the log file that records the DEBUG log in the request or the ERROR log when an error occurs. retry_policy: the retry policy. The default retry policy is DefaultRetryPolicy. You can define a retry policy based on a RetryPolicy class. For more information, see the code in DefaultRetryPolicy. ssl_version: the transport layer security (TLS) version that is used for HTTPS connections. Default value: None. """ class OTSClient(object): def __init__(self, endpoint, access_key_id, access_key_secret, instance_name, **kwargs):
access_key_id = os.getenv("OTS_AK_ENV") access_key_secret = os.getenv("OTS_SK_ENV") ######### Specify the name of the log file and the retry policy. ######### # The name of the log file is table_store.log. The retry policy is WriteRetryPolicy, which defines the retry attempts to write data to the table when a write operation fails. ots_client = OTSClient('endpoint', access_key_id, access_key_secret, 'instance_name', logger_name = 'table_store.log', retry_policy = WriteRetryPolicy()) ######### Set the TLS version that is used for HTTPS connections to TLS 1.2. ######### # Note: The specified TLS version takes effect only when you use an HTTPS endpoint. ots_client = OTSClient('endpoint', access_key_id, access_key_secret, 'instance_name', ssl_version=ssl.PROTOCOL_TLSv1_2) ######### Use STS. ######### ots_client = OTSClient('endpoint', 'STS.K8h*******GB77', 'CkuDj******Wn6', 'instance_name', sts_token = 'CAISjgJ1q6Ft5B2y********OFcsLLuw==')
Import the Tablestore package
If you do not import the Tablestore package, the
NameError: name 'OTSClient' is not defined message appears. In this case, you must import the Tablestore package before you run the code. For more information, see What are the examples of code used to perform ListTable in Tablestore SDK for Python?
When you use Tablestore SDK for Python to invoke functions, you must import the Tablestore package to the code. You can run the following code to import the Tablestore package:
# Import the Tablestore package. from tablestore import * # You must import the Tablestore package when you obtain the AccessKey pair from environment variables. import os # You must import the Tablestore package when you access the Tablestore instance by using the specified TLS version. import ssl
HTTPS is supported in Tablestore SDK for Python V2.0.8 and later.
OpenSSL 0.9.8j or later is required. We recommend that you use OpenSSL 1.0.2d.
The release package for Tablestore SDK for Python V2.0.8 contains the certifi package that can be directly installed and used. To update the root certificate, download the latest root certificate from the official website of certifi.