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.OMNI と use_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。