Reputation: 11
I am trying to develop a python3 flask app with google app engine under Windows 10. I am using google cloud NDB as my database. But when I followed the tutorial to add an entity like so:
from google.cloud import ndb
client = ndb.Client(namespace='main')
class Contact(ndb.Model):
name = ndb.StringProperty()
phone = ndb.StringProperty()
email = ndb.StringProperty()
app = Flask(__name__)
@app.route('/')
def root():
with client.context():
contact1 = Contact(name="John Smith",
phone="555 617 8993",
email="[email protected]")
contact1.put()
people=Contact.query().fetch()[0].name
print(people)
the local flask application page 127.0.0.1/8080 won't load and I keep getting the following error:
Traceback (most recent call last):
File "C:\Users\sunha\Desktop\env\Lib\site-packages\flask\app.py", line 2464, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Users\sunha\Desktop\env\Lib\site-packages\flask\app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "C:\Users\sunha\Desktop\env\Lib\site-packages\flask\app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\sunha\Desktop\env\Lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Users\sunha\Desktop\env\Lib\site-packages\flask\app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\sunha\Desktop\env\Lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\sunha\Desktop\env\Lib\site-packages\flask\app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\sunha\Desktop\env\Lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Users\sunha\Desktop\env\Lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\sunha\Desktop\env\Lib\site-packages\flask\app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\sunha\Desktop\building-an-app-1\main.py", line 33, in root
contact1.put()
File "C:\Users\sunha\Desktop\env\Lib\site-packages\google\cloud\ndb\_options.py", line 89, in wrapper
return wrapped(*pass_args, **kwargs)
File "C:\Users\sunha\Desktop\env\Lib\site-packages\google\cloud\ndb\utils.py", line 78, in wrapper
return wrapped(*args, **new_kwargs)
File "C:\Users\sunha\Desktop\env\Lib\site-packages\google\cloud\ndb\utils.py", line 110, in positional_wrapper
return wrapped(*args, **kwds)
File "C:\Users\sunha\Desktop\env\Lib\site-packages\google\cloud\ndb\model.py", line 4935, in _put
return self._put_async(_options=kwargs["_options"]).result()
File "C:\Users\sunha\Desktop\env\Lib\site-packages\google\cloud\ndb\tasklets.py", line 190, in result
self.check_success()
File "C:\Users\sunha\Desktop\env\Lib\site-packages\google\cloud\ndb\tasklets.py", line 137, in check_success
raise self._exception
File "C:\Users\sunha\Desktop\env\Lib\site-packages\google\cloud\ndb\tasklets.py", line 309, in _advance_tasklet
self.generator.throw(type(error), error, traceback)
File "C:\Users\sunha\Desktop\env\Lib\site-packages\google\cloud\ndb\model.py", line 4996, in put
ds_key = yield _datastore_api.put(ds_entity, kwargs["_options"])
File "C:\Users\sunha\Desktop\env\Lib\site-packages\google\cloud\ndb\tasklets.py", line 309, in _advance_tasklet
self.generator.throw(type(error), error, traceback)
File "C:\Users\sunha\Desktop\env\Lib\site-packages\google\cloud\ndb\_datastore_api.py", line 409, in put
key_pb = yield batch.put(entity_pb)
File "C:\Users\sunha\Desktop\env\Lib\site-packages\google\cloud\ndb\tasklets.py", line 312, in _advance_tasklet
yielded = self.generator.send(send_value)
File "C:\Users\sunha\Desktop\env\Lib\site-packages\google\cloud\ndb\_retry.py", line 84, in retry_wrapper
raise core_exceptions.RetryError(
google.api_core.exceptions.RetryError: Maximum number of 3 retries exceeded while calling <function make_call.<locals>.rpc_call at 0x04DFBBF8>, last exception: <_MultiThreadedRendezvous of RPC that terminated with:
status = StatusCode.UNAVAILABLE
details = "failed to connect to all addresses"
debug_error_string = "{"created":"@1594873007.440000000","description":"Failed to pick `subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":3941,"referenced_errors":[{"created":"@1594873007.440000000","description":"failed to connect to all addresses","file":"src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc","file_line":393,"grpc_status":14}]}"`
I then tried gcloud app deploy and everything worked in the production environment. I checked my online datastore page and the entity was added successfully upon loading the app. Does anyone have an idea of why it doesn't work in my local environment? I have ran pip install -r requirements.txt containing "Flask==1.1.2 google-cloud-ndb" before I ran the app. I ran the app using python main.py. Thank you!
Upvotes: 1
Views: 746