适用于 Spanner 的 Python 客户端库与 Spanner Omni 的搭配使用方式与 Spanner 相同。本文档介绍了如何通过配置 Python 客户端库来建立与 Spanner Omni 的安全连接。您可以在创建客户端时设置客户端选项来建立这些连接。
Python 客户端库支持纯文本、TLS、带凭据的 TLS 和 mTLS 连接。
如需了解详情,请参阅 Spanner 文档中的 Spanner 使用入门 (Python)。
准备工作
如需将 Python 客户端库与 Spanner Omni 搭配使用,请使用 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 连接,请指定 username 和 password 参数以及 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",
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,因此在创建 Instance 时,请为实例 ID 指定 default:
instance = spanner_client.instance("default")
database = instance.database("DATABASE_ID")
替换以下内容:
DATABASE_ID:Spanner Omni 数据库的 ID。