正在启动谷歌应用程序引擎中的应用程序引擎模块



应用程序引擎"模块"是应用程序引擎中的一个新功能(也是实验性的,名称令人困惑):https://developers.google.com/appengine/docs/python/modules.开发人员被敦促将"后端"功能的使用转换为这一新功能的使用。

启动模块实例似乎有两种方法:向其发送HTTP请求(即在appname应用程序和modulename模块的http://modulename.appname.appspot.com),或调用google.appengine.api.modules.start_module()

简单的方法

启动模块实例的简单方法似乎是创建一个HTTP请求。然而,在我的情况下,这只会导致两种结果,这两种结果都不是我想要的:

  • 如果我使用应用程序定义的后端名称,即http://backend.appname.appspot.com,则请求会被正确路由到后端并被正确拒绝(因为后端访问在默认情况下被定义为私有)。

  • 任何其他操作都会导致请求被路由到默认模块的唯一前端实例,甚至使用随机字符串作为模块名称,例如http://sdlsdjfsldfsdf.appname.appspot.com。这甚至适用于虚构的实例ID,例如http://99.sdlsdjfsldfsdf.appname.appspot.com等。当然(这是问题所在),也适用于我的模块的实际名称。

通过API启动

文档中说,使用模块的名称和版本调用start_module()应该会启动指定模块的指定版本。然而,每当我用有效的参数调用这个函数时,我都会得到一个UnexpectedStateError

不幸的事态

因为我无法实现这一点,我想知道文档中是否有一些微妙之处可能没有提到。我的设置非常简单,所以我想知道这是否是一个普遍存在的问题,有人已经找到了解决方案。

原来版本不能是数字。这个问题的出现似乎是因为我们模块的版本是"1"而不是(例如)"v1"。

对于模块,他们稍微改变了一些术语。过去的"后端"现在是"基本缩放"或"手动缩放"实例。

"自动缩放"one_answers"基本缩放"实例在处理请求时启动,而"手动缩放"实例则持续运行。

通常,要启动一个实例,您会向模块的URL发送HTTP请求。

start_module()似乎对具有"手动缩放"实例的模块或使用stop_module()重新启动已停止的模块的用途有限。

您可以添加:

login: admin

到后端的处理程序。通过这种方式,管理员用户可以调用您的后端并触发它运行。使用login:admin,您还可以从应用程序中的elsewhwere(即从前端)发出URLFetch请求来触发后端。

相关内容

  • 没有找到相关文章

最新更新