Utiliser la bibliothèque cliente Python pour se connecter à Spanner Omni

La bibliothèque cliente Python pour Spanner fonctionne avec Spanner Omni de la même manière qu'avec Spanner. Ce document vous explique comment établir des connexions sécurisées à Spanner Omni en configurant la bibliothèque cliente Python. Vous établissez ces connexions en définissant des options client lorsque vous créez un client.

La bibliothèque cliente Python est compatible avec les connexions en texte brut, TLS, TLS avec identifiants et mTLS.

Pour en savoir plus, consultez Premiers pas avec Spanner en Python dans la documentation Spanner.

Avant de commencer

Pour utiliser la bibliothèque cliente Python avec Spanner Omni, utilisez la bibliothèque cliente Python version 3.72.0 ou ultérieure.

Pour installer le package Python Spanner Omni, exécutez la commande suivante :

pip install google-cloud-spanner>=3.72.0

Configurer l'objet Client

Lorsque vous configurez l'objet Client, spécifiez le point de terminaison Spanner Omni dans client_options et spécifiez instance_type=InstanceType.OMNI.

Les exemples suivants montrent comment configurer l'objet Client pour chaque configuration de sécurité compatible :

Texte brut

Pour établir une connexion en texte brut, spécifiez instance_type=InstanceType.OMNI et 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,
)

Remplacez les éléments suivants :

  • ENDPOINT : point de terminaison de votre instance Spanner Omni.

TLS

Pour établir une connexion TLS, spécifiez le chemin d'accès à votre certificat CA à l'aide de ca_certificate :

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",
)

Remplacez les éléments suivants :

  • ENDPOINT : point de terminaison de votre instance Spanner Omni.

  • PATH_TO_CA_CERT : chemin d'accès à votre fichier de certificat CA.

TLS avec identifiants

Pour établir une connexion TLS avec authentification par nom d'utilisateur et mot de passe, spécifiez les paramètres username et password en plus du certificat 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",
)

Remplacez les éléments suivants :

  • ENDPOINT : point de terminaison de votre instance Spanner Omni.

  • PATH_TO_CA_CERT : chemin d'accès à votre fichier de certificat CA.

  • USERNAME : nom d'utilisateur de votre utilisateur Spanner Omni.

  • PASSWORD : mot de passe de votre utilisateur Spanner Omni.

mTLS

Pour établir une connexion TLS mutuelle (mTLS), spécifiez le certificat CA, le certificat client et la clé privée du client :

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",
)

Remplacez les éléments suivants :

  • ENDPOINT : point de terminaison de votre instance Spanner Omni.

  • PATH_TO_CA_CERT : chemin d'accès à votre fichier de certificat CA.

  • PATH_TO_CLIENT_CERT : chemin d'accès à votre fichier de certificat client.

  • PATH_TO_CLIENT_KEY : chemin d'accès au fichier de clé privée de votre client.

Obtenir une base de données

Une fois l'objet Client configuré, vous pouvez obtenir une base de données. Étant donné que Spanner Omni n'utilise pas d'ID de projet ni d'instance Google Cloud , spécifiez default pour l'ID d'instance lorsque vous créez un Instance :

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

Remplacez les éléments suivants :

  • DATABASE_ID : ID de votre base de données Spanner Omni.