全部產品
Search
文件中心

Tablestore:初始化OTSClient

更新時間:Nov 09, 2024

OTSClient是Table Store服務的用戶端,它為調用者提供了一系列的方法,可以用來動作表、讀寫單行資料、讀寫多行資料等。使用Python SDK發起請求,您需要初始化一個OTSClient執行個體,並根據需要修改OTSClient的預設配置項。

注意事項

  • Table Store從Python SDK 2.0.8版本開始支援HTTPS。如果要使用HTTPs協議訪問Tablestore資源,請使用Python SDK 2.0.8及以上版本,並且確保OpenSSL版本最少為0.9.8j,推薦OpenSSL 1.0.2d。

    Python SDK 2.0.8發布包中包含了certifi包直接安裝使用。如果需要更新根憑證請從根憑證下載最新的根憑證。

    重要
    • Table StorePython SDK從6.0.0版本開始僅支援Python 3,不再支援Python 2。

      推薦的Python3版本:Python 3.8、Python 3.9、Python 3.10、Python 3.11和Python 3.12。

    • 如果您需要使用Python 2,請您選擇5.4.4版本之前的Table StorePython SDK。

  • 請在執行功能代碼時,確保已引入tablestore包。

準備工作

初始化OTSClient前,您需要完成擷取執行個體Endpoint、安裝TablestorePython SDK和配置訪問憑證的準備工作。

擷取執行個體Endpoint

建立執行個體後,您需要擷取執行個體網域名稱地址(Endpoint)用於後續通過Endpoint訪問執行個體。

Endpoint是阿里雲Tablestore服務各個執行個體的網域名稱地址,例如https://sun.cn-hangzhou.ots.aliyuncs.com,表示使用HTTPS協議通過公網網路訪問華東1(杭州)地區的sun執行個體。更多資訊,請參見服務地址

  1. 如果未開通Tablestore服務,請進行開通。具體操作,請參見開通Table Store服務

  2. 建立執行個體。具體操作,請參見建立執行個體

  3. 建立執行個體後擷取執行個體的Endpoint。

    1. 登入Table Store控制台

    2. 概覽頁面,單擊執行個體名稱。

    3. 執行個體詳情頁簽的執行個體訪問地址地區即可查看該執行個體的服務地址(Endpoint)。

      image

安裝TablestorePython SDK

具體操作,請參見安裝Table StorePython SDK

配置訪問憑證

要接入阿里雲的Tablestore服務,您需要擁有一個有效存取金鑰進行簽名認證。具體操作,請參見配置訪問憑證

初始化OTSClient

使用Tablestore的SDK時,您必須首先構造一個OTSClient,通過調用該OTSClient的介面來訪問Tablestore服務。

介面

"""
初始化``OTSClient``執行個體。
``end_point``是Table Store服務的地址(例如'https://instance.cn-hangzhou.ots.aliyun.com'),必須以'https://'開頭。
``access_key_id``是訪問Table Store服務的AccessKeyID,通過官方網站申請或通過管理員擷取。
``access_key_secret``是訪問Table Store服務的AccessKeySecret,通過官方網站申請或通過管理員擷取。
``instance_name``是要訪問的執行個體名,通過官方網站控制台建立或通過管理員擷取。
``sts_token``是訪問Table Store服務的STS token,從阿里雲STS服務擷取,具有有效期間,到期後需要重新擷取。
``encoding``請求參數的字串編碼類別型,預設值為utf8。
``socket_timeout``是串連池中每個串連的Socket逾時,單位為秒,可以為int或float。預設值為50。
``max_connection``是串連池的最大串連數。預設值為50。
``logger_name``用來在請求中列印DEBUG日誌,或者在出錯時列印ERROR日誌。
``retry_policy``定義了重試策略,預設的重試策略為DefaultRetryPolicy。你您可以繼承RetryPolicy來實現自己的重試策略,詳情請參見DefaultRetryPolicy的代碼。
``ssl_version``定義了HTTPS串連使用的TLS版本,預設值為None。
 """
class OTSClient(object):
    def __init__(self, end_point, access_key_id, access_key_secret, instance_name, **kwargs):   

樣本

警告

阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。本樣本以將AccessKey、SecurityToken儲存在環境變數中來實現身分識別驗證為例介紹。

使用AK初始化

說明

運行本程式碼範例之前,請確保已設定環境變數OTS_AK_ENVOTS_SK_ENV。更多資訊,請參見配置訪問憑證

end_point = 'yourEndpoint'
instance_name = 'yourInstance'
access_key_id = os.getenv("OTS_AK_ENV")
access_key_secret = os.getenv("OTS_SK_ENV")

# 設定記錄檔名稱和重試策略
# 記錄檔名稱為table_store.log,重試策略是WriteRetryPolicy,會對寫重試。
ots_client = OTSClient(end_point, access_key_id, access_key_secret, instance_name, logger_name='table_store.log', retry_policy=WriteRetryPolicy())

# 設定HTTPS串連所使用的TLS版本為TLSv1.2
# 注意:只有當endpoint使用HTTPS形式時,TLS版本配置才會生效。
ots_client = OTSClient(end_point, access_key_id, access_key_secret, instance_name, ssl_version=ssl.PROTOCOL_TLSv1_2)

使用STS初始化

說明

運行本程式碼範例之前,請確保已設定環境變數OTS_AK_ENVOTS_SK_ENVOTS_SESSION_TOKEN。更多資訊,請參見配置訪問憑證

end_point = 'yourEndpoint'
instance_name = 'yourInstance'
access_key_id = os.getenv("OTS_AK_ENV")
access_key_secret = os.getenv("OTS_SK_ENV")
sts_token = os.getenv("OTS_SESSION_TOKEN")

ots_client = OTSClient(end_point, access_key_id, access_key_secret, instance_name, sts_token=sts_token)

使用credentials工具

說明

運行本程式碼範例之前,請確保已完成以下的配置。

  1. 執行如下命令安裝alibabacloud_credentials包。

    pip install alibabacloud_credentials
  2. 配置環境變數。

    • 如果使用AK,請確保已設定環境變數ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET

    • 如果使用STS,請確保已設定環境變數ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRETALIBABA_CLOUD_SECURITY_TOKEN

end_point = 'yourEndpoint'
instance_name = 'yourInstance'

# 使用CredClient從環境變數中讀取憑證。
cred = CredClient()
access_key_id = cred.get_access_key_id()
access_key_secret = cred.get_access_key_secret()

ots_client = OTSClient(end_point, access_key_id, access_key_secret, instance_name)

引入tablestore包

說明

如果不引入tablestore包,則會出現NameError: name ‘OTSClient’ is not defined提示,請引入tablestore包後運行即可。更多資訊,請參見Python SDK ListTable樣本

在使用Python SDK調用功能函數時,您必須在代碼中引入tablestore包。引入tablestore包的具體代碼如下:

# 引入Tablestore包。
from tablestore import *
# 通過環境變數擷取AccessKey時需要引入。
import os
# 通過指定TLS版本訪問時需要引入。
import ssl

常見問題

使用Table StoreSDK時出現Signature mismatch異常