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
安裝TablestorePython SDK
配置訪問憑證
初始化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_ENV
和OTS_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_ENV
、OTS_SK_ENV
和 OTS_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工具
運行本程式碼範例之前,請確保已完成以下的配置。
執行如下命令安裝alibabacloud_credentials包。
pip install alibabacloud_credentials
配置環境變數。
如果使用AK,請確保已設定環境變數
ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
。如果使用STS,請確保已設定環境變數
ALIBABA_CLOUD_ACCESS_KEY_ID
、ALIBABA_CLOUD_ACCESS_KEY_SECRET
和ALIBABA_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