1

我有两个 appengine 托管网站,并使用 protopc 在它们上定义了几个服务。

问题是我想在两个应用引擎服务之间进行 rpc 调用。有没有可以用来创建 rpc 客户端的库?或者是否有任何推荐的方式从 appengine 进行 RPC 调用?

4

1 回答 1

2

确保您在解释后看到重要说明

您可以通过服务库创建标准 ProtoRPC 客户端,并使用它们在使用 HTTPTransport 类的应用程序之间进行调用。

远程模块的模块文档字符串有一些关于如何使用存根建立连接的信息,只要您在客户端应用程序中包含服务和消息类的副本(或从注册表服务构建它们):

https://code.google.com/p/google-protorpc/source/browse/python/protorpc/remote.py?spec=svnc9ceffb855c0b0eeaebed381f91bd8326a98605f&r=4bd74add778c42d2b882b0915fa9b3ba64dc6437#88

HttpTransport 类可以在 transport.py 模块中找到。

在这种情况下,当您创建应用程序时,您将向其提供应用程序的 URL,例如:

http://your-app.appspot.com/your/service/path

请注意,这是您的服务的路径,而不是任何特定方法的路径。消息类将知道如何在其下构造 URL。

重要提示:如果您向公共服务(不需要正确身份验证的服务)发出请求,则此方法可以正常工作。但是,如果您需要控制访问,您可能需要直接使用 urlfetch 库发出请求,以便提供额外的身份验证信息,并且可能需要在服务器端设置一个 WSGI 层来拦截授权信息。ProtoRPC 目前没有很好的身份验证选项!

于 2013-04-29T18:40:48.683 回答