Google App Engine Configures Endpoint APIs

I have a problem configuring the endpoint API. Any code that I use, from my own, to the Google examples on the site, fails with the same trace

WARNING 2016-11-01 06:16:48,279 client.py:229] no scheduler thread, scheduler.run() will be invoked by report(...) Traceback (most recent call last): File "/home/vladimir/projects/sb_fork/sb/lib/vendor/google/api/control/client.py", line 225, in start self._thread.start() File "/home/vladimir/sdk/google-cloud-sdk/platform/google_appengine/google/appengine/api/background_thread/background_thread.py", line 108, in start start_new_background_thread(self.__bootstrap, ()) File "/home/vladimir/sdk/google-cloud-sdk/platform/google_appengine/google/appengine/api/background_thread/background_thread.py", line 87, in start_new_background_thread raise ERROR_MAP[error.application_error](error.error_detail) FrontendsNotSupported INFO 2016-11-01 06:16:48,280 client.py:327] created a scheduler to control flushing INFO 2016-11-01 06:16:48,280 client.py:330] scheduling initial check and flush INFO 2016-11-01 06:16:48,288 client.py:804] Refreshing access_token /home/vladimir/projects/sb_fork/sb/lib/vendor/urllib3/contrib/appengine.py:113: AppEnginePlatformWarning: urllib3 is using URLFetch on Google App Engine sandbox instead of sockets. To use sockets directly instead of URLFetch see https://urllib3.readthedocs.io/en/latest/contrib.html. AppEnginePlatformWarning) ERROR 2016-11-01 06:16:49,895 service_config.py:125] Fetching service config failed (status code 403) ERROR 2016-11-01 06:16:49,896 wsgi.py:263] Traceback (most recent call last): File "/home/vladimir/sdk/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) File "/home/vladimir/sdk/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler handler, path, err = LoadObject(self._handler) File "/home/vladimir/sdk/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject obj = __import__(path[0]) File "/home/vladimir/projects/sb_fork/sb/main.py", line 27, in <module> api_app = endpoints.api_server([SolarisAPI,], restricted=False) File "/home/vladimir/projects/sb_fork/sb/lib/vendor/endpoints/apiserving.py", line 497, in api_server controller) File "/home/vladimir/projects/sb_fork/sb/lib/vendor/google/api/control/wsgi.py", line 77, in add_all a_service = loader.load() File "/home/vladimir/projects/sb_fork/sb/lib/vendor/google/api/control/service.py", line 110, in load return self._load_func(**kw) File "/home/vladimir/projects/sb_fork/sb/lib/vendor/google/api/config/service_config.py", line 78, in fetch_service_config _log_and_raise(Exception, message_template.format(status_code)) File "/home/vladimir/projects/sb_fork/sb/lib/vendor/google/api/config/service_config.py", line 126, in _log_and_raise raise exception_class(message) Exception: Fetching service config failed (status code 403) INFO 2016-11-01 06:16:49,913 module.py:788] default: "GET / HTTP/1.1" 500 - 

My app.yaml configured the same as the new Migration endpoints in 2.0 document:

 - url: /_ah/api/.* script: api.solaris.api_app 

And main.py imports the API into the application:

 api_app = endpoints.api_server([SolarisAPI,], restricted=False) 

I am using the Google Cloud SDK with these versions:

 Google Cloud SDK 132.0.0 app-engine-python 1.9.40 bq 2.0.24 bq-nix 2.0.24 core 2016.10.24 core-nix 2016.10.24 gcloud gsutil 4.22 gsutil-nix 4.22 
+1
source share
2 answers

To get rid of "FrontendsNotSupported", you need to use the instance class "B *".

The error "Exception: Error getting configuration settings" should disappear if you follow the steps at https://cloud.google.com/endpoints/docs/frameworks/python/quickstart-frameworks-python . As Brad already pointed out, configuring the service requires the "OpenAPI Configuration" section and the resulting environment variables.

+1
source

Have you tried creating and loading the OpenAPI configuration for this service? See the sections "Creating an OpenAPI configuration file" and Deploying an OpenAPI configuration file in the python library documentation .

Please note that in step 2 of the generation process, you may need to add python to the command (for example, python lib/endpoints/endpointscfg.py get_swagger_spec ... ), because the PyPi package does not save the right to the executable file right now.

+2
source

Source: https://habr.com/ru/post/1264373/


All Articles