调用云框架端点api

时间:2017-10-13 14:22:55

标签: google-app-engine google-cloud-endpoints

我通过资源管理器访问api时遇到错误' _ah / api / explorer'或者当从应用程序调用api时。

以下是app.yaml和api实现的相关内容。

从stackoverflow上的其他问题来看,如果没有使用gcloud服务管理部署端点配置,但是在上传gatewayv1openapi.json之后发生了事件,可能会发生这种情况。我收到了类似的错误。

我是否需要在api代码或app.yaml中更改某些内容?还有一件事是我已经将完全相同的代码库(只有差异是其他项目ID而不是app.yaml中的ixp-test)上传到另一个旧项目并且它工作正常。任何新创建的项目都会出现此错误。

/ _啊/ API /网关/ V1 /调用?ALT = JSON

没有调度程序线程,scheduler.run()将由report(...)调用(/base/data/home/apps/s~ixp-test/20171013t215957.404774686885375478/server/lib/endpoints_management/control/ client.py:235) Traceback(最近一次调用最后一次):   文件" /base/data/home/apps/s~ixp-test/20171013t215957.404774686885375478/server/lib/endpoints_management/control/client.py" ;,第231行,开始     self._thread.start()   文件" /base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/api/background_thread/background_thread.py",第108行,开始     start_new_background_thread(self。 bootstrap,())   文件" /base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/api/background_thread/background_thread.py",第87行,在start_new_background_thread中     提出ERROR_MAPerror.application_error FrontendsNotSupported 。 。 。  (/base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/runtime/wsgi.py:263) Traceback(最近一次调用最后一次):   文件" /base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/runtime/wsgi.py" ;,第240行,处理     handler = _config_handle.add_wsgi_middleware(self._LoadHandler())   _LoadHandler中的文件" /base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/runtime/wsgi.py",第299行     handler,path,err = LoadObject(self._handler)   在LoadObject中的文件" /base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/runtime/wsgi.py",第96行     __import (cumulative_path)   文件" /base/data/home/apps/s~ixp-test/20171013t215957.404774686885375478/server/main.py" ;,第18行,在     api = endpoints.api_server([GatewayApi])   文件" /base/data/home/apps/s~ixp-test/20171013t215957.404774686885375478/server/lib/endpoints/apiserving.py",第514行,在api_server中     控制器)   文件" /base/data/home/apps/s~ixp-test/20171013t215957.404774686885375478/server/lib/endpoints_management/control/wsgi.py" ;,第126行,在add_all中     a_service = loader.load()   文件" /base/data/home/apps/s~ixp-test/20171013t215957.404774686885375478/server/lib/endpoints_management/control/service.py" ;,第111行,载入中     return self._load_func(** kw)   文件" /base/data/home/apps/s~ixp-test/20171013t215957.404774686885375478/server/lib/endpoints_management/config/service_config.py",第79行,在fetch_service_config中     _log_and_raise(例外,message_template.format(status_code))   文件" /base/data/home/apps/s~ixp-test/20171013t215957.404774686885375478/server/lib/endpoints_management/config/service_config.py" ;,第127行,在_log_and_raise中     提出exception_class(消息) 例外:获取服务配置失败(状态代码403)

以下是相关配置

的app.yaml

runtime: python27
api_version: 1
threadsafe: false
automatic_scaling:
  max_idle_instances: 0


env_variables:
  ENDPOINTS_SERVICE_NAME: ixp-test.appspot.com
  ENDPOINTS_SERVICE_VERSION: 2017-08-13r0

API

@endpoints.api(name='gateway', version='v1')
class GatewayApi(remote.Service):
    @endpoints.method(
        GatewayRequest,
        GatewayResponse,
        path='invoke',
        http_method='POST',
        name='invoke')
    def invoke(self, request):
        pass
    @endpoints.method(
        GatewayRequest,
        GatewayResponse,
        path='invokeSecure',
        http_method='POST',
        name='invokeSecure',
        scopes=[endpoints.EMAIL_SCOPE])
    def invoke_secure(self, request):
        pass

2 个答案:

答案 0 :(得分:1)

如果gatewayv1openapi.json中的服务名称与app.yaml中的服务名称不匹配,则可能会发生这种情况。你能仔细检查一下吗?

答案 1 :(得分:0)

管理解决它。问题是由于没有更新

cell.selectionStyle = UITableViewCellSelectionStyle.None

用于新项目。来自其工作的旧部署项目的值导致错误。

来自getting started tutorial

ENDPOINTS_SERVICE_VERSION: 2017-08-13r0