简体   繁体   English

Google App Engine配置端点API

[英]Google App Engine configuring Endpoints API

I have a problem configuring Endpoints API. 我在配置Endpoints API时遇到问题。 Any code i use, from my own, to google's examples on site fail with the same traceback 我使用的任何代码(无论是我自己的还是现场使用的google示例)均会以相同的追溯失败

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 is configured like the new Endpoints Migrating to 2.0 document states: 我的app.yaml的配置类似于新的端点迁移到2.0文档状态:

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

And main.py imports the API into the app: 然后main.py将API导入到应用中:

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

I use Google Cloud SDK with these versions: 我在以下版本中使用Google Cloud SDK:

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

Have you tried generating and uploading the OpenAPI configuration for the service? 您是否尝试过为服务生成和上传OpenAPI配置? See the sections named "Generating the OpenAPI configuration file" and "Deploying the OpenAPI configuration file" in the python library documentation . 请参阅python库文档中名为“生成OpenAPI配置文件”“部署OpenAPI配置文件”的部分。

Note that in step 2 of the generation process, you may need to prepend python to the command (eg python lib/endpoints/endpointscfg.py get_swagger_spec ... ), since the PyPi package doesn't preserve executable file permissions right now. 请注意,在生成过程的第2步中,您可能需要在命令前加上python (例如python lib/endpoints/endpointscfg.py get_swagger_spec ... ),因为PyPi包目前不保留可执行文件权限。

To get rid of the "FrontendsNotSupported" you need to use a "B*" instance class. 要摆脱“ FrontendsNotSupported”,您需要使用“ B *”实例类。

The error "Exception: Fetching service config failed" should be gone if you follow the steps in https://cloud.google.com/endpoints/docs/frameworks/python/quickstart-frameworks-python . 如果您按照https://cloud.google.com/endpoints/docs/frameworks/python/quickstart-frameworks-python中的步骤进行操作,则错误“异常:获取服务配置失败”错误应该消失了。 As already pointed out by Brad, the section "OpenAPI configuration" and the resulting environment variables are required to make the service configuration work. 正如Brad所指出的那样,“ OpenAPI配置”部分和生成的环境变量是使服务配置正常工作所必需的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Google App Engine端点api在localhost中不起作用 - Google app engine endpoints api not working in localhost Google App Engine Api和端点版本控制 - Google App Engine Api and Endpoints versioning 在Google App Engine云端点内部调用Drive API - Make calls to Drive API inside of a Google App Engine Cloud Endpoints Google App Engine-端点API-从另一个App Engine应用程序使用-python - Google App Engine - Endpoints API - Consuming from another App Engine App -python 在没有App Engine的情况下运行Google Cloud端点 - Running google cloud endpoints without App Engine 配置Google App Engine SDK以便离线使用 - Configuring the Google App Engine SDK for offline use 配置脚本处理程序Google App Engine - Configuring Script Handlers Google App Engine Google Cloud Endpoints V2多类API错误App Engine标准 - Google Cloud Endpoints V2 multi-class API error App Engine Standard 如何使用OAuth从Python应用程序访问Google App Engine端点API? - How can I access Google App Engine endpoints API from Python application with use OAuth? 表情符号字符会破坏Google App Engine和Endpoints库中的文本(Python中的Engine,端点库位于Android上) - Emoji characters destroys text in Google App Engine and Endpoints library (Engine in Python, endpoints library is on Android)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM