Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 从应用程序引擎访问计算引擎_Google App Engine_Lua_Google Compute Engine_Torch - Fatal编程技术网

Google app engine 从应用程序引擎访问计算引擎

Google app engine 从应用程序引擎访问计算引擎,google-app-engine,lua,google-compute-engine,torch,Google App Engine,Lua,Google Compute Engine,Torch,我在计算引擎上运行了一个实例,它使用Torch预测图像中的对象。我想制作一个简单的web界面,用户可以使用它上传图像,图像被发送到服务器(计算引擎),对象被预测,列表被返回给用户。 在我的计算引擎(Ubuntu 14.04)中,这行代码用于预测图像中的对象。(所有其他设置都已在计算引擎中完成。) 我想从web应用程序中调用这一行,并将图像传递到图像文件夹,然后获取对象列表。我该怎么做呢?在过去的项目中,我讨论过并使用不同的方法在谷歌应用程序引擎和谷歌计算引擎之间进行通信。一般来说,两个常见的嫌疑

我在计算引擎上运行了一个实例,它使用Torch预测图像中的对象。我想制作一个简单的web界面,用户可以使用它上传图像,图像被发送到服务器(计算引擎),对象被预测,列表被返回给用户。 在我的计算引擎(Ubuntu 14.04)中,这行代码用于预测图像中的对象。(所有其他设置都已在计算引擎中完成。)


我想从web应用程序中调用这一行,并将图像传递到图像文件夹,然后获取对象列表。我该怎么做呢?

在过去的项目中,我讨论过并使用不同的方法在谷歌应用程序引擎和谷歌计算引擎之间进行通信。一般来说,两个常见的嫌疑犯是:

  • 来自App Engine的编排:在这种方法中,App Engine应用程序是活动部分,并向计算实例上的服务发送请求。这是他在评论中已经描述过的。我们在compute实例上使用了一个tomcat实例,该实例运行一个完整的restapi来调用实例上的命令。可能的帮助者:
    • 使用from App Engine时,您可以获取计算实例的外部IP地址。因此,您知道您的请求将必须转到哪里
  • 从计算实例轮询:由于您知道应用程序引擎应用程序的应用程序id,因此可以在计算实例上编写一个简单的循环,从应用程序引擎应用程序请求新作业。我将这种方法与编排结合使用,编排将向不再需要的实例发送关闭命令,从而减少appengine上的轮询负载。如果创建了新的作业,我将启动一个新的计算实例,该实例将进行轮询,直到它再次收到关闭命令
这两种方法都很有效。如果使用Compute API并了解计算实例的IP,则可以将轮询端点和命令调用请求限制到这些IP,以实现基本安全性

不过,我会尽量避免过多的投票,因为,让我给你一个报价:

主动轮询是穷人启动工作流过程的解决方案。()


但是,如果在计算实例完成工作负载后关闭它们,我看不出有什么理由不应该使用轮询。如果您不这样做,并且将计算实例的数量增加到几个实例,那么您将在应用程序引擎应用程序上加载,而不会产生任何成本。

基本上,您需要运行一个应用程序,该应用程序将为命令行和文件提供http接口。我相信github上有很多这样的网站。
th eval.lua -model /path/to/model -image_folder /path/to/image/directory -num_images 10