Package for gRPC-GCP Python.
gRPC-GCP Python is available wherever gRPC is available.
If you are installing locally...
$ pip install grpcio-gcp
Else system wide (on Ubuntu)...
$ sudo pip install grpcio-gcp
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.
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.
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.