使用 Python 客户端库连接到 Spanner Omni

适用于 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.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 连接,请指定 usernamepassword 参数以及 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。