gRPC extensions for Google Cloud Platform
Package for gRPC-GCP Python.
gRPC-GCP Python is available wherever gRPC is available.
From PyPI
If you are installing locally...
::
$ pip install grpcio-gcp
Else system wide (on Ubuntu)...
::
$ sudo pip install grpcio-gcp
Usage
-----
Create a config file (e.g. ``spanner.grpc.config``) defining API configuration,
with ChannelPoolConfig and MethodConfig.
::
channel_pool: {
max_size: 10
max_concurrent_streams_low_watermark: 1
}
method: {
name: "/google.spanner.v1.Spanner/CreateSession"
affinity: {
command: BIND
affinity_key: "name"
}
}
method: {
name: "/google.spanner.v1.Spanner/GetSession"
affinity: {
command: BOUND
affinity_key: "name"
}
}
method: {
name: "/google.spanner.v1.Spanner/DeleteSession"
affinity: {
command: UNBIND
affinity_key: "name"
}
}
Load configuration file to ApiConfig object.
.. code-block:: python
import google.protobuf.text_format
config = grpc_gcp.api_config_from_text_pb(
pkg_resources.resource_string(__name__, 'spanner.grpc.config'))
Create channel pool using grpc_gcp.
.. code-block:: python
import grpc_gcp
import grpc
credentials = grpc.ssl_channel_credentials()
# Add api config key-value pair to options
options = [(grpc_gcp.API_CONFIG_CHANNEL_ARG, config)]
channel_pool = grpc_gcp.secure_channel(target, credentials, options)
The generated channel pool is inherited from the original grpc.Channel,
with underlying support for multiple grpc channels.