As of January 1, 2020 this library no longer supports Python 2 on the latest released version. Library versions released prior to that date will continue to be available. For more information please visit Python 2 support on Google Cloud.

Spanner Client Usage

Instantiating a Client

To use the API, the Client class defines a high-level interface which handles authorization and creating other objects:

from google.cloud import spanner
client = spanner.Client()

Configuration

  • For an overview of authentication in google.cloud-python, see Authentication.

  • In addition to any authentication configuration, you can also set the GCLOUD_PROJECT environment variable for the Google Cloud Console project you’d like to interact with. If your code is running in Google App Engine or Google Compute Engine the project will be detected automatically. (Setting this environment variable is not required, you may instead pass the project explicitly when constructing a Client).

  • After configuring your environment, create a Client

    >>> from google.cloud import spanner
    >>> client = spanner.Client()
    

    or pass in credentials and project explicitly

    >>> from google.cloud import spanner
    >>> client = spanner.Client(project='my-project', credentials=creds)
    

Tip

Be sure to use the Project ID, not the Project Number.

Using a Cloud Spanner Emulator

There are two ways to use the client with a Cloud Spanner emulator: programmatically or via an environment variable.

To programmatically use an emulator, you must specify the project, the endpoint of the emulator, and use anonymous credentials:

from google.cloud import spanner
from google.auth.credentials import AnonymousCredentials

client = spanner.Client(
    project='my-project',
    client_options={"api_endpoint": "0.0.0.0:9010"},
    credentials=AnonymousCredentials()
)

To use an emulator via an environment variable, set the SPANNER_EMULATOR_HOST environment variable to the emulator endpoint:

export SPANNER_EMULATOR_HOST=0.0.0.0:9010

Next Step

After a Client, the next highest-level object is an Instance. You’ll need one before you can interact with databases.

Next, learn about the Instance Admin Usage.