すべてのプロダクト
Search
ドキュメントセンター

Tablestore:OTSClient インスタンスの初期化

最終更新日:Dec 28, 2024

OTSClient は Tablestore のクライアントです。OTSClient は、テーブルの管理、単一行または複数行に対する読み取りおよび書き込み操作を実行するために使用できるさまざまなメソッドを提供します。Python SDK for Tablestore を使用してリクエストを開始するには、OTSClient インスタンスを初期化し、ビジネス要件に基づいて OTSClient インスタンスのデフォルト設定を変更する必要があります。

使用上の注意

  • Python SDK for Tablestore V2.0.8 以降では HTTPS がサポートされています。Tablestore リソースに HTTPS 経由でアクセスするには、Python SDK for Tablestore V2.0.8 以降を使用し、OpenSSL のバージョンが 0.9.8j 以降であることを確認してください。OpenSSL 1.0.2d を使用することをお勧めします。

    Python SDK for Tablestore V2.0.8 のリリースパッケージには、直接インストールして使用できる certifi パッケージが含まれています。ルート証明書を更新するには、certifi の公式 Web サイトから最新のルート証明書をダウンロードしてください。

    重要
    • Python SDK for Tablestore V6.0.0 以降は Python 3 をサポートしており、Python 2 はサポートされなくなりました。

      次の Python 3 バージョンを使用することをお勧めします:Python 3.8、Python 3.9、Python 3.10、Python 3.11、Python 3.12。

    • Python 2 を使用する場合は、Python SDK for Tablestore V5.4.4 以前を使用することをお勧めします。

  • コードを実行する前に、Tablestore パッケージをインポートしてください。

準備

OTSClient インスタンスを初期化する前に、Tablestore インスタンスのエンドポイントを取得し、Tablestore SDK for Python をインストールし、アクセス認証情報を設定する必要があります。

Tablestore インスタンスのエンドポイントを取得する

Tablestore インスタンスを作成した後、インスタンスのエンドポイントを取得する必要があります。その後、エンドポイントを使用してインスタンスにアクセスできます。

エンドポイントは、リージョン内の Tablestore インスタンスにアクセスするために使用されるドメイン名です。たとえば、https://sun.cn-hangzhou.ots.aliyuncs.com は、中国 (杭州) リージョンにある sun という名前のインスタンスに HTTPS 経由でアクセスするために使用されるパブリックエンドポイントです。詳細については、「エンドポイント」を参照してください。

  1. Tablestore サービスがアクティブ化されていない場合は、アクティブ化します。詳細については、「Tablestore をアクティブ化する」を参照してください。

  2. Tablestore インスタンスを作成します。詳細については、「インスタンスを作成する」を参照してください。

  3. 作成したインスタンスのエンドポイントを取得します。

    1. Tablestore コンソールにログオンします。

    2. 概要ページで、作成したインスタンスを見つけ、インスタンス名をクリックします。

    3. インスタンスアクセス URL セクションの インスタンスの詳細 タブで、インスタンスのエンドポイントを表示します。

      image

Tablestore SDK for Python をインストールする

詳細については、「Python SDK for Tablestore をインストールする」を参照してください。

アクセス認証情報を設定する

Tablestore にアクセスするには、身元を確認するための有効な AccessKey ペアが必要です。詳細については、「アクセス認証情報を設定する」を参照してください。

OTSClient インスタンスを初期化する

Tablestore SDK for Python を使用するには、最初に OTSClient インスタンスを作成する必要があります。その後、OTSClient インスタンスの操作を呼び出して Tablestore にアクセスできます。

API 操作

"""
OTSClient インスタンスを初期化します。
end_point: アクセスする Tablestore インスタンスのエンドポイント。エンドポイントは https:// で始まる必要があります。例: https://instance.cn-hangzhou.ots.aliyuncs.com。
access_key_id: Tablestore インスタンスへのアクセスに使用される AccessKey ID。Alibaba Cloud の公式 Web サイトにアクセスするか、管理者に連絡して AccessKey ID を取得できます。
access_key_secret: Tablestore インスタンスへのアクセスに使用される AccessKey シークレット。Alibaba Cloud の公式 Web サイトにアクセスするか、管理者に連絡して AccessKey シークレットを取得できます。
instance_name: アクセスする Tablestore インスタンスの名前。Tablestore コンソールで Tablestore インスタンスを作成するか、管理者に連絡して既存の Tablestore インスタンスの名前を取得できます。
sts_token: Tablestore インスタンスへのアクセスに使用される STS トークン。Alibaba Cloud STS を使用して STS トークンを取得できます。STS トークンには有効期限があります。既存のトークンの有効期限が切れたら、新しいトークンを取得する必要があります。
encoding: リクエストパラメータ文字列のエンコードに使用されるメソッド。デフォルト値: utf8。
socket_timeout: 接続プール内の各ソケット接続のタイムアウト期間(秒単位)。値は整数または浮動小数点数です。デフォルト値: 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):   

警告

Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作に対する権限を持っています。API 操作の呼び出しや日常の O&M の実行には、RAM ユーザーを使用することをお勧めします。AccessKey ID と AccessKey シークレットをプロジェクトコードにハードコードしないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。例では、セキュリティトークンと AccessKey ペアは環境変数に保存されています。

AccessKey ペアを使用する

説明

サンプルコードを実行する前に、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 に設定します。
# 注: 指定された TLS バージョンは、HTTPS エンドポイントを使用する場合にのみ有効になります。
ots_client = OTSClient(end_point, access_key_id, access_key_secret, instance_name, ssl_version=ssl.PROTOCOL_TLSv1_2)

STS を使用する

説明

サンプルコードを実行する前に、OTS_AK_ENVOTS_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)

認証情報ツールを使用する

説明

サンプルコードを実行する前に、次の手順を実行してください。

  1. 次のコマンドを実行して alibabacloud_credentials パッケージをインストールします。

    pip install alibabacloud_credentials
  2. 環境変数を設定します。

    • AccessKey ペアを使用する場合は、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。

    • STS を使用する場合は、ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_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 for Tablestore で ListTable を実行するために使用されるコードの例は何ですか?」を参照してください。

Python SDK for Tablestore を使用して関数を呼び出すときは、コードに Tablestore パッケージをインポートする必要があります。次のコードを実行して Tablestore パッケージをインポートできます。

# Tablestore パッケージをインポートします。
from tablestore import *
# 環境変数から AccessKey ペアを取得する場合は、Tablestore パッケージをインポートする必要があります。
import os
# 指定された TLS バージョンを使用して Tablestore インスタンスにアクセスする場合は、Tablestore パッケージをインポートする必要があります。
import ssl

FAQ

Tablestore SDK を使用するときに Signature mismatch エラーが報告された場合はどうすればよいですか?