To use the API, the :class:`~google.cloud.spanner_v1.client.Client` class defines a high-level interface which handles authorization and creating other objects:
from google.cloud import spanner_v1
client = spanner_v1.Client()When creating a :class:`~google.cloud.spanner_v1.client.Client`, the
user_agent and timeout_seconds arguments have sensible
defaults
(:data:`~google.cloud.spanner_v1.client.DEFAULT_USER_AGENT` and
:data:`~google.cloud.spanner_v1.client.DEFAULT_TIMEOUT_SECONDS`).
However, you may over-ride them and these will be used throughout all API
requests made with the client you create.
For an overview of authentication in
google.cloud-python, see Authentication.In addition to any authentication configuration, you can also set the :envvar:`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
projectexplicitly when constructing a :class:`~google.cloud.spanner_v1.client.Client`).After configuring your environment, create a :class:`~google.cloud.spanner_v1.client.Client`
>>> from google.cloud import spanner_v1 >>> client = spanner_v1.Client()
or pass in
credentialsandprojectexplicitly>>> from google.cloud import spanner_v1 >>> client = spanner_v1.Client(project='my-project', credentials=creds)
Tip
Be sure to use the Project ID, not the Project Number.
Warning
When using multiprocessing, the application may hang if a :class:`Client <google.cloud.spanner_v1.client.Client>` instance is created before :class:`multiprocessing.Pool` or :class:`multiprocessing.Process` invokes :func:`os.fork`. The issue is under investigation, but may be only happening on Macintosh and not Linux. See GRPC/GRPC#12455 for more information.
After a :class:`~google.cloud.spanner_v1.client.Client`, the next highest-level object is an :class:`~google.cloud.spanner_v1.instance.Instance`. You'll need one before you can interact with databases.
Next, learn about the :doc:`instance-usage`.