Google Code 有以下版本: English - Español - 日本語 - 한국어 - Português - Pусский - 中文(简体) - 中文(繁體)
通过使用 Google App Engine,您可以在 Google 基础架构上运行网络应用程序。App Engine 应用程序易于构建和维护,并且可随着通信量和数据存储需求增长而轻松扩展。在使用 Google App Engine 时,不需要维护任何服务器:您只需上传应用程序,它便可以为用户提供服务。
您可以使用 Google Apps 通过自己的域名(如 http://www.example.com/)提供应用程序。或者,也可以使用 appspot.com 域中的免费名称提供应用程序。您可以与世界各地的用户共享应用程序,或者仅限您所在单位的成员能够访问应用程序。
Google App Engine 支持使用几种编程语言编写的应用程序。通过使用 App Engine 的 Java 运行时环境,您可以使用标准 Java 技术构建应用程序,包括 JVM、Java Servlet 和 Java 编程语言或任何其他使用基于 JVM 的解释器或编译器的语言(如 JavaScript 或 Ruby)。App Engine 还提供一个专用的 Python 运行时环境,其中包括快速 Python 解释器和 Python 标准库。建立的 Java 和 Python 运行时环境旨在确保快速安全地运行应用程序,而不会受到系统上的其他应用程序的干扰。
在使用 App Engine 时,您只需为使用的资源付费。没有设置成本,也没有日常性费用。应用程序使用的资源(如存储空间和带宽)测量单位是 GB,并按非常有竞争力的价格收费。您可以控制应用程序使用的最大资源数量,以使其始终保持在预算范围内。
在开始使用 App Engine 时,不需要支付任何费用。所有应用程序最多可使用 500 MB 存储空间以及足够的 CPU 和带宽,以使应用程序有效地提供每月约 500 万页的浏览量,并且是绝对免费的。在为应用程序启用计费时,将提高您的免费限制,您只需为超过免费级别的资源付费。
通过使用 Google App Engine,您可以轻松构建可靠运行的应用程序,即使在负载和数据量很大的情况下。App Engine 包含以下功能:
应用程序可以在以下两个运行时环境之一中运行:Java 环境和 Python 环境。每种环境提供了标准协议和常用技术以进行网络应用程序开发。
应用程序在安全环境中运行,其中提供了对基本操作系统的有限访问。通过设置这些限制,App Engine 可以在多个服务器之间分配应用程序的网络请求,以及启动和停止服务器以满足通信量需求。沙盒将应用程序隔离在自己的安全可靠环境中,该环境与网络服务器的硬件、操作系统和物理位置无关。
安全沙盒环境的限制示例包括:
您可以使用常用的 Java 网络开发工具和 API 标准为 Java 运行时环境开发应用程序。应用程序使用 Java Servlet 标准与该环境进行交互,并且可以使用常用的网络应用程序技术,例如 JavaServer Pages (JSP)。
Java 运行时环境使用 Java 6。App Engine Java SDK 支持使用 Java 5 或 6 开发应用程序。
该环境包含 Java SE Runtime Environment (JRE) 6 平台和库。沙盒环境限制是在 JVM 中实现的。只要不超过沙盒限制,应用程序就可以使用任何 JVM 字节码或库功能。例如,尝试打开套接字或写入到文件的字节码将引发运行时异常。
应用程序使用 Java 标准 API 访问大多数 App Engine 服务。对于 App Engine 数据存储区,Java SDK 包含 Java 数据对象 (JDO) 和 Java 持久性 API (JPA) 接口实现。应用程序可以使用 JavaMail API 通过 App Engine 邮件服务发送电子邮件。java.net HTTP API 访问 App Engine 网址提取服务。App Engine 还包含低级 API 以使其服务实现额外的适配器,或者直接从应用程序中使用。请参阅数据存储区、内存缓存、网址提取、邮件、图片和 Google 帐户 API 文档。
通常,Java 开发人员使用 Java 编程语言和 API 为 JVM 实现网络应用程序。通过使用与 JVM 兼容的编译器或解释器,您还可以使用其他语言开发网络应用程序,例如,JavaScript、Ruby 或 Scala。
有关 Java 运行时环境的详细信息,请参阅 Java 运行时环境。
通过使用 App Engine 的 Python 运行时环境,您可以使用 Python 编程语言实现应用程序,以及在优化的 Python 解释器上运行应用程序。App Engine 包含丰富的 API 和工具以进行 Python 网络应用程序开发,其中包括功能丰富的数据建模 API、易于使用的网络应用程序框架以及用于管理和访问应用程序数据的工具。您还可以利用各种成熟的库和框架进行 Python 网络应用程序开发,例如 Django。
Python 运行时环境使用 Python 2.5.2 版。我们考虑在将来的版本中为 Python 3 提供额外的支持。
Python 环境包含 Python 标准库。当然啦,并非该库的所有功能都可以在沙盒环境中运行。例如,调用尝试打开套接字或写入到文件的方法将引发异常。为了方便起见,已停用运行时环境不支持其核心功能的一些标准库模块,导入这些模块的代码将产生错误。
只能使用 Python 为 Python 环境编写应用程序代码。不支持使用 C 语言编写的扩展。
Python 环境为数据存储区、Google 帐户、网址提取和电子邮件服务提供了丰富的 Python API。App Engine 还提供了一个称为 webapp 的简单 Python 网络应用程序框架,从而可以轻松开始构建应用程序。
只要其他第三方库是完全使用 Python 实现的,并且不需要任何不支持的标准库模块,您就可以随应用程序上传这些库。
有关 Python 运行时环境的详细信息,请参阅 Python 运行时环境。
App Engine 提供了一个强大的分布式数据存储服务,其中包含查询引擎和事务。就像分布式网络服务器随通信量增长一样,分布式数据存储区也随数据而增长。
App Engine 数据存储区与传统关系数据库不同。数据对象(或“实体”)具有种类和一组属性。查询可以检索按属性值过滤和排序的给定种类的实体。属性值可以是任何支持的属性值类型。
数据存储区实体“没有架构”。数据实体结构是应用程序代码提供和实施的。Java JDO/JPA 接口和 Python 数据存储区接口包含在应用程序中应用和实施结构的功能。应用程序还可以直接访问数据存储区以应用所需数量的结构。
数据存储区保持高度一致并使用开放式并发性控制。如果在事务中更新某个实体,同时其他进程尝试更新该实体,则会重试固定的次数。应用程序可以在一个事务中执行多个数据存储区操作,这些操作要么全部成功,要么全部失败,从而确保了数据的完整性。
数据存储区在其分布式网络中使用“实体组”实现事务。事务处理单个组中的实体。同一组中的实体存储在一起以提高事务执行效率。应用程序可以在创建实体时将其分配到组中。
App Engine 支持将应用程序与 Google 帐户集成以进行用户身份验证。应用程序允许用户使用 Google 帐户登录,然后访问与该帐户关联的电子邮件地址和可显示名称。用户可通过 Google 帐户更快地开始使用应用程序,因为用户可能不需要创建新的帐户。您还省去了专为应用程序实现用户帐户系统的麻烦。
如果应用程序在 Google Apps 中运行,则它可以使用与您所在单位的成员和 Google Apps 帐户相同的功能。
用户 API 还可通知应用程序当前用户是否为注册的应用程序管理员。这样,便可以轻松实现仅管理员能够访问的网站区域。
有关与 Google 帐户集成的详细信息,请参阅用户 API 参考。
App Engine 提供了多种不同的服务,您可以在管理应用程序的同时执行常见的操作。我们提供了以下 API 以访问这些服务:
应用程序可以使用 App Engine 的网址提取服务访问互联网上的资源,例如,网络服务或其他数据。网址提取服务使用高速 Google 基础架构检索网络资源,很多其他 Google 产品也通过该基础架构检索网页。
应用程序可以使用 App Engine 的邮件服务发送电子邮件。邮件服务使用 Google 基础架构发送电子邮件。
内存缓存服务为应用程序提供高性能的内存中键值缓存,该缓存可供多个应用程序实例访问。对于不需要数据存储区的持久性和事务功能的数据(例如,临时数据或从数据存储区复制到缓存以进行高速访问的数据),内存缓存是非常有用的。
通过使用图片服务,应用程序可以对图片进行处理。通过使用该 API,您可以裁剪、旋转和翻转 JPEG 和 PNG 格式的图片以及调整图片大小。
应用程序可以在网络请求响应外部执行任务。应用程序可以按配置的时间表执行这些任务,例如,每天或每小时执行一次。或者,应用程序也可以执行应用程序本身添加到队列中的任务,例如,在处理请求时创建的后台任务。
计划任务也称为“Cron 作业”,它们是由 Cron 服务处理的。有关使用 Cron 服务的详细信息,请参阅 Python 或 Java Cron 文档。
任务队列当前是作为实验功能发布的。目前,仅 Python 运行时环境可以使用任务队列。在不久的将来,将发布用于 Java 应用程序的任务队列接口。有关任务队列服务和 Python API 的信息,请参阅 Python 文档。
用于 Java 和 Python 的App Engine 软件开发工具包 (SDK) 均包含一个网络服务器应用程序,用于模拟本地计算机上的所有 App Engine 服务。每个 SDK 包含 App Engine 中提供的所有 API 和库。该网络服务器还模拟安全沙盒环境,包括检查尝试访问 App Engine 运行时环境中不允许的系统资源的操作。
每个 SDK 还包含一个将应用程序上传到 App Engine 的工具。在创建应用程序代码、静态文件和配置文件后,您可以运行该工具以上传数据。该工具将提示您提供 Google 帐户电子邮件地址和密码。
在为 App Engine 上已运行的应用程序构建新的主要发行版时,您可以将新发行版作为新版本上传。在切换到新版本之前,旧版本将继续为用户提供服务。可以在旧版本仍在运行的同时,在 App Engine 上测试新版本。
Java SDK 在任何具有 Java 5 或 Java 6 的平台上运行。该 SDK 以 Zip 文件的形式提供。如果您使用 Eclipse 开发环境,则可以使用 Google Eclipse 插件创建、测试和上传 App Engine 应用程序。SDK 还包含一些命令行工具,用于运行开发服务器和上传应用程序。
Python SDK 完全是使用 Python 实现的,它可以在具有 Python 2.5 的任何平台上运行,包括 Windows、Mac OS X 和 Linux。该 SDK 以 Zip 文件的形式提供,其中包含用于 Windows 和 Mac OS X 的安装程序。
管理控制台是一个基于网络的界面,用于管理在 App Engine 上运行的应用程序。您可以使用该控制台创建新的应用程序,配置域名,更改活动应用程序版本,检查访问和错误日志以及浏览应用程序的数据存储区。
您不仅可以轻松创建 App Engine 应用程序,而且还是免费的!您可以免费创建帐户并发布应用程序以使用户可以立即使用,而无需承担任何责任。通过免费帐户发布的应用程序最多可使用 500 MB 存储空间以及每月最多 500 万页的浏览量。如果需要更多空间和浏览量,您可以启用计费,设置每天的最高预算,并根据需要为每种资源分配预算。
您最多可以为每个开发人员帐户注册 10 个应用程序。
将在限制或“配额”内为每个应用程序分配资源。配额决定了应用程序可以在一个日历日中使用给定资源的数量。在不久的将来,您可以通过购买额外的资源来调整其中的某些配额。
有些功能施加与配额无关的限制以保持系统的稳定性。例如,在调用应用程序以处理网络请求时,应用程序必须在 30 秒内发出响应。如果应用程序花费的时间太长,则会终止该进程,并且服务器向用户返回错误代码。响应超时是动态的;如果请求处理程序很少达到其超时,则可以缩短请求超时以节省资源。
尝试破坏或滥用配额(例如,使用多个串联工作的帐户运行应用程序)将违反服务条款,可能导致停用应用程序或关闭帐户。
有关配额列表和配额系统说明(包括可通过启用计费增加的配额,请参阅配额。
获取 Google App Engine 详细信息:
欢迎使用 Google App Engine!