Python クライアント ライブラリを使用して Spanner Omni に接続する

Spanner 用の Python クライアント ライブラリは、Spanner で動作するのと同じ方法で Spanner Omni で動作します。このドキュメントでは、Python クライアント ライブラリを構成して Spanner Omni への安全な接続を確立する方法について説明します。これらの接続は、クライアントの作成時にクライアント オプションを設定することで確立します。

Python クライアント ライブラリは、プレーン テキスト、TLS、認証情報付き TLS、mTLS 接続をサポートしています。

詳細については、Spanner ドキュメントの Python で Spanner を使ってみるをご覧ください。

始める前に

Spanner Omni で Python クライアント ライブラリを使用するには、Python クライアント ライブラリ バージョン 3.72.0 以降を使用します。

Spanner Omni Python パッケージをインストールするには、次のコマンドを実行します。

pip install google-cloud-spanner>=3.72.0

Client オブジェクトを構成する

Client オブジェクトを構成するときに、client_options で Spanner Omni エンドポイントを指定し、instance_type=InstanceType.OMNI を指定します。

次の例は、サポートされている各セキュリティ構成に対して Client オブジェクトを構成する方法を示しています。

書式なしテキスト

プレーン テキスト接続を確立するには、instance_type=InstanceType.OMNIuse_plain_text=True を指定します。

from google.cloud import spanner
from google.cloud.spanner_v1 import InstanceType

spanner_client = spanner.Client(
    client_options={"api_endpoint": "ENDPOINT"},
    instance_type=InstanceType.OMNI,
    use_plain_text=True,
)

次のように置き換えます。

  • ENDPOINT: Spanner Omni インスタンスのエンドポイント。

TLS

TLS 接続を確立するには、ca_certificate を使用して CA 証明書のパスを指定します。

from google.cloud import spanner
from google.cloud.spanner_v1 import InstanceType

spanner_client = spanner.Client(
    client_options={"api_endpoint": "ENDPOINT"},
    instance_type=InstanceType.OMNI,
    ca_certificate="PATH_TO_CA_CERT",
)

次のように置き換えます。

  • ENDPOINT: Spanner Omni インスタンスのエンドポイント。

  • PATH_TO_CA_CERT: CA 証明書ファイルのパス。

認証情報を使用した TLS

ユーザー名とパスワード認証で TLS 接続を確立するには、CA 証明書とともに username パラメータと password パラメータを指定します。

from google.cloud import spanner
from google.cloud.spanner_v1 import InstanceType

spanner_client = spanner.Client(
    client_options={"api_endpoint": "ENDPOINT"},
    instance_type=InstanceType.OMNI,
    ca_certificate="PATH_TO_CA_CERT",
    username="USERNAME",
    password="PASSWORD",
)

次のように置き換えます。

  • ENDPOINT: Spanner Omni インスタンスのエンドポイント。

  • PATH_TO_CA_CERT: CA 証明書ファイルのパス。

  • USERNAME: Spanner Omni ユーザーのユーザー名。

  • PASSWORD: Spanner Omni ユーザーのパスワード。

mTLS

相互 TLS(mTLS)接続を確立するには、CA 証明書、クライアント証明書、プライベート クライアント鍵を指定します。

from google.cloud import spanner
from google.cloud.spanner_v1 import InstanceType

spanner_client = spanner.Client(
    client_options={"api_endpoint": "ENDPOINT"},
    instance_type=InstanceType.OMNI,
    ca_certificate="PATH_TO_CA_CERT",
    client_certificate="PATH_TO_CLIENT_CERT",
    client_key="PATH_TO_CLIENT_KEY",
)

次のように置き換えます。

  • ENDPOINT: Spanner Omni インスタンスのエンドポイント。

  • PATH_TO_CA_CERT: CA 証明書ファイルのパス。

  • PATH_TO_CLIENT_CERT: クライアント証明書ファイルのパス。

  • PATH_TO_CLIENT_KEY: クライアントの秘密鍵ファイルのパス。

データベースを取得する

Client オブジェクトを構成したら、データベースを取得できます。Spanner Omni は Google Cloud プロジェクト ID またはインスタンス ID を使用しないため、Instance を作成するときにインスタンス ID に default を指定します。

instance = spanner_client.instance("default")
database = instance.database("DATABASE_ID")

次のように置き換えます。

  • DATABASE_ID: Spanner Omni データベースの ID。