Table Store クライアントは、テーブル、単一のデータ行、複数のデータ行などを操作するための一連の方法を呼び出し元に提供します。

エンドポイントの決定

エンドポイントは、各リージョンの Alibaba Cloud Table Store サービスのドメイン名アドレスです。 現在サポートされている形式は次のとおりです。

説明
http://sun.cn-hangzhou.ots.aliyuncs.com HTTP を使用した杭州の sun インスタンスへのパブリックネットワークアクセスです。
https://sun.cn-hangzhou.ots.aliyuncs.com HTTPS を使用して杭州の sun インスタンスへのパブリックネットワークアクセスです。
  • Table Store は、パブリックおよびプライベートネットワークアクセスをサポートしています。
  • Table Store コンソールにログインし、インスタンスの詳細ページを確認することができます。 インスタンスアクセス URL はそのインスタンスのエンドポイントです。

AccessKey の設定

Alibaba Cloud Table Store サービスにアクセスするには、署名認証用の有効なAccessKey が必要です。 AccessKey を構成する以下の 3 つの方法が現在サポートされています。

  • プライマリアカウントの AccessKeyId と AccessKeySecret を使用します。 手順は次のとおりです。

    1. Alibaba Cloud アカウントを登録します。
    2. AccessKey コンソールにログインし、 AccessKeyId と AccessKeySecret を作成します。
  • Table Store へのアクセスを許可されている RAM ユーザーの AccessKeyId およびAccesskeySecret を使用します。 手順は次のとおりです。

    1. プライマリアカウントを使用して リソースアクセス管理 (RAM)にアクセスして、新しい RAM ユーザーを作成するか、既存のものを使用します。
    2. プライマリアカウントを使用して、RAM ユーザーに Table Store へのアクセスを許可します。
    3. その後、認証された RAM ユーザーの AccessKeyId と AccessKeySecret を使用して Table Store にアクセスできます。
  • 一時アクセスには STS トークンを使用します。 手順は次のとおりです。

    1. アプリケーションサーバーは RAM/STS サービスにアクセスし、一時的な AccesskeyId、AccesskeySecret およびトークンを取得して、それらをユーザーに送信します。
    2. 一時キーを使用して Table Store サービスにアクセスできます。

クライアントを作成する

Table Store SDK を使用するときは、最初にクライアントを構築し、次にそのインターフェイスを呼び出して Table Store サービスにアクセスする必要があります。 クライアントインターフェイスは、Table Store が提供する RESTful API と一致しています。

クライアントの種類

Table Store C++ SDK には、SyncClient と AsyncClient の2種類のクライアントがあります。 SyncClient と AsyncClient はそれぞれ同期インターフェイスと非同期インターフェイスに対応します。

  • 同期インターフェイス: 呼び出しが完了するとすぐに要求が実行されるので、非常に便利な方法です。 同期インターフェイスを使用して、さまざまな Table Store 機能について詳しく知ることができます。

  • 非同期インターフェイス: これらは同期インターフェイスよりも高い柔軟性を提供します。 高いパフォーマンス要件がある場合は、非同期インターフェイスの使用とマルチスレッドの使用との間で妥協点を見つけることができます。

SyncClient と AsyncClient はどちらもスレッドセーフであり、スレッドと接続リソースを自動的かつ内部的に管理できます。 スレッドやリクエストごとにクライアントを作成する必要はありません。 代わりに、グローバルクライアントを作成します。

同期インターフェイス

  • 直接作成する (Table Store エンドポイントを使用してクライアントを作成する)

    Endpoint ep("YourEndpoint", "YourInstance");
    Credential cr("AccessKeyId", "AccessKeySecret");
    ClientOptions opts;
    SyncClient* client = NULL;
    Optional<OTSError> res = SyncClient::create(client, ep, cr, opts);
    					
    プライマリアカウントの AccessKey を使用して Table Store にアクセスしないでください。 一時的なトークンまたはサブアカウントの AccessKey を使用することを推奨します。 一時的 STS トークンを使用する場合は、前述のコードの資格情報オブジェクトを次のように変更する必要があります。 Credential cr("AccessKeyId", "AccessKeySecret", "SecurityToken");

    ClientOptions に含まれる設定項目は以下のとおりです。 デフォルト値を使用することも、自分で定義することもできます。

    mMaxConnections 合計接続数の最大数および同時要求の最大数。 永続的な接続は、SDK と Table Store サービスの間で維持されます。 新しい要求はそれぞれ、ランダムに選択されたアイドル接続によって送信されます。
    mConnectTimeout 接続タイムアウト。 DNS 解決時間を考慮して、推奨される接続タイムアウトは少なくとも 10 秒です。
    mRequestTimeout タイムアウト時間を要求します。
    mRetryStrategy 再試行の戦略。 デフォルトでは、再試行戦略は失敗したべき等倍要求を 10 秒以内に再試行します。 独自の再試行戦略を定義することができます。
    mLogger ロガー。 デフォルトでは、ロガーはログを標準エラーにエクスポートします。 独自のロガーを定義することを推奨します。
    mActors スレッドプール。 コールバックを実行するために使用されたるレッドプールです。 デフォルトは 10 スレッドです。
  • AsyncClient から作成
    AsyncClient& async = ... ;
    SyncClient* sync = SyncClient::create(async);

非同期インターフェイス

非同期インターフェイスクライアントの作成方法と使用方法の詳細については、「非同期インターフェイス」をご参照ください。

マルチスレッド

マルチスレッドがサポートされています。 マルチスレッド化する場合、1 つのクライアントオブジェクトを共有することを推奨します。