1

I am trying the "Getting Started with Cloud Spanner in Python" guide for google cloud spanner.

I have created the instances databases e.t.c.

I have got to the "Create a database client" section.

We operate behind a firewall and have to set our proxy setting, we have done this successfully with Gsutil, BQ command line e.t.c.

When I set the proxy settings then try and execute the quickstart.py I get error .

E0620 08:35:32.703000000  5020 src/core/ext/filters/client_channel/uri_parser.c:60] bad uri.scheme: 'xx.xxx.xxx.xxx:xx'

E0620 08:35:32.703000000  5020 src/core/ext/filters/client_channel/uri_parser.c:66]                  ^ here

E0620 08:35:32.703000000  5020 src/core/ext/filters/client_channel/http_proxy.c:56] cannot parse value of 'http_proxy' env var

It is at the line database.execute_sql('SELECT 1') where it all goes wrong.

If you have not seen the Quickstart example, here is the code.

#!/usr/bin/env python

# Copyright 2016 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


def run_quickstart():
# [START spanner_quickstart]
# Imports the Google Cloud Client Library.
from google.cloud import spanner

# Instantiate a client.
spanner_client = spanner.Client()

# Your Cloud Spanner instance ID.
instance_id = 'im-spanner'

# Get a Cloud Spanner instance by ID.
instance = spanner_client.instance(instance_id)

# Your Cloud Spanner database ID.
database_id = 'd42'

# Get a Cloud Spanner database by ID.
database = instance.database(database_id)

# Execute a simple SQL statement.
results = database.execute_sql('SELECT 1')

for row in results:
    print(row)
# [END spanner_quickstart]


if __name__ == '__main__':
    run_quickstart()

I have double checked the proxy details and they are correct. Can anyone help ?

The Hungry Dictator
  • 3,444
  • 5
  • 37
  • 53
mez63
  • 166
  • 4
  • 20

1 Answers1

0

Have you set http_proxy variable to point to your proxy? Please see https://github.com/grpc/grpc/blob/master/doc/environment_variables.md for information. If you use cloud libraries using gRPC to access through a Proxy, you need to set this variable to provide URI of Proxy to gRPC libraries.

Jayant
  • 1