Google App Engine是否支持C ++?

时间:2013-04-04 02:53:00

标签: google-app-engine

主App Engine页面指出“为Python环境编写的应用程序代码必须只用Python编写。不支持用C语言编写的扩展。”

https://developers.google.com/appengine/docs/whatisgoogleappengine

我们需要将C / C ++应用程序移植到SaaS服务。可以使用Google App Engine完成吗?

1 个答案:

答案 0 :(得分:16)

Google App Engine目前有四种运行时可用:Go,Java,Python& PHP。

这些不仅是唯一可用的运行时,而且还受到语言功能的限制。您无法使用许多传统上可用的子系统来帮助您扩展Web应用程序。您链接的页面上的主要示例提及打开套接字或写入文件系统是不允许的。线程或执行超过一分钟挂钟时间的计算是另一个常见的限制。

  

沙箱

     

应用程序在安全环境中运行,该环境提供对底层操作系统的有限访问。这些限制允许App Engine跨多个服务器分发应用程序的Web请求,并启动和停止服务器以满足流量需求。沙箱将您的应用程序隔离在其自身安全可靠的环境中,该环境独立于Web服务器的硬件,操作系统和物理位置。

     

安全沙箱环境的限制示例包括:

     
      
  • 应用程序只能通过提供的URL提取和电子邮件服务访问Internet上的其他计算机。其他计算机只能通过在标准端口上发出HTTP(或HTTPS)请求来连接到应用程序。
  •   
  • 应用程序无法在任何运行时环境中写入文件系统。应用程序可以读取文件,但只能读取随应用程序代码上载的文件。应用程序必须对请求之间存在的所有数据使用App Engine数据存储区,内存缓存或其他服务。 Python 2.7环境允许读取,写入和修改字节码。
  •   
  • 应用程序代码仅在响应Web请求,排队任务或计划任务时运行,并且必须在60秒内返回响应数据。请求处理程序在发送响应后不能生成子进程或执行代码。
  •   

Google App Engine的重点是编写基于其提供的可扩展服务构建的单线程应用程序。这是传统C / C ++应用程序开发的一种范式转换,因为您需要使用Google的机制来存储数据,访问互联网上的其他资源,发送和接收电子邮件,缓存。这样做的原因是为了消除应用程序中的瓶颈,以便根据请求需求启动和拆除大量应用程序实例。

将传统的C / C ++应用程序移植到GAE(以及许多其他SaaS)很可能需要进行大量重构,以便利用您在SaaS平台上运行所获得的收益进行重写。