上传您的应用程序

This item was filled under [ GAE使用入门 ]

您可以使用管理控制台在 App Engine 中创建和管理应用程序。为您的应用程序注册了应用程序 ID 后,即可使用名为 appcfg.py 的 SDK 中提供的命令行工具将其上传到您的网站。

注意:截至本文档编写之时,还无法在 App Engine 中删除应用程序。很快就会添加该功能。在此次预览期间,您最多可注册 10 个应用程序 ID。如果您不想在本教程中用掉一个您分配的应用程序 ID,那么,您可以只阅读本部分,并在以后准备上传第一个应用程序时参考本部分。

注册应用程序

您可以从位于以下网址的 App Engine 管理控制台创建以及管理 App Engine 网络应用程序:

http://appengine.google.com/

使用您的 Google 帐户登录到 App Engine。如果您没有 Google 帐户,可以使用电子邮件地址和密码创建一个 Google 帐户

要创建新应用程序,请单击 [创建应用程序] 按钮。请按照说明注册一个应用程序 ID,即一个对该应用程序唯一的名称。如果您选择使用免费的 appspot.com 域名,那么该应用程序的完整网址将为 http://application-id.appspot.com/。您还可以为您的应用程序购买一个顶级域名,或使用一个您已注册的顶级域名。

编辑 app.yaml 文件,然后将 application: 设置的值从 helloworld 更改为您注册的应用程序 ID。

上传应用程序

要将您完成的应用程序上传到 Google App Engine,请运行以下命令:

appcfg.py update helloworld/

在提示下输入您的 Google 用户名和密码。

现在您就可以看到您的应用程序在 App Engine 上运行了。如果您创建了免费的 appspot.com 域名,那么您网站的网址将以您的应用程序 ID 开头:

http://application-id.appspot.com

Bookmark and Share

Hello, World!

This item was filled under [ GAE使用入门 ]

Google App Engine 应用程序使用 CGI 标准与网络服务器进行通信。当服务器收到来自应用程序的请求时,它使用环境变量和标准输入流(对于 POST 数据)中的请求数据运行应用程序。为了做出响应,应用程序会向标准输出流写入响应,包括 HTTP 标头和内容。

让我们开始构建显示简短消息的小型应用程序。

创建简单请求处理程序

创建名为 helloworld 的目录。该应用程序的所有文件都驻留在该目录中。

helloworld 目录中,创建名为 helloworld.py 的文件,并赋予其以下内容:

print 'Content-Type: text/plain'
print ''
print 'Hello, world!'

该 Python 脚本会对带有 HTTP 标头(描述内容、空行和消息 Hello, world!)的请求作出响应。

创建配置文件

App Engine 应用程序中包含名为 app.yaml 的配置文件。除其他内容外,文件还介绍了哪个处理程序脚本应用于哪个网址。

helloworld 目录中,创建名为 app.yaml 的文件,内容如下:

application: helloworld
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
  script: helloworld.py

从上到下,该配置文件描述了有关该应用程序的以下内容:

  • 应用程序标识符为 helloworld。当您在用 App Engine 注册应用程序的最后步骤时,您将选择唯一标识符,然后更新该值。在开发过程中,该值可以是任意内容。暂时将其设置保留为 helloworld
  • 这是该应用程序代码的版本号 1。如果您在上传新版本的应用程序软件之前调整了该内容,App Engine 将会保留之前的版本,并可让您使用管理控制台回滚到之前的版本。
  • 该代码运行于 python 运行时环境中,版本为 [1]。将来可能支持其他运行时环境和语言。
  • 对路径与正则表达式 /.*(所有网址)匹配的网址的所有请求应由 helloworld.py 脚本进行处理。

该文件的语法为 YAML。有关配置选项的完整列表,请参阅 app.yaml 参考

测试应用程序

用处理程序脚本和配置文件将每个网址映射到处理程序后,应用程序就完成了。您可以立即用 App Engine SDK 附带的网络服务器对其进行测试。

用以下命令启动网络服务器,向其提供到 helloworld 目录的路径:

google_appengine/dev_appserver.py helloworld/

网络服务器正在运行,在端口 8080 监听请求。通过在网络浏览器中访问以下网址测试应用程序:

有关运行开发网络服务器的详细信息(包括如何更改它使用哪个端口),请参阅开发网络服务器参考,或使用 --help 选项运行命令。

重复开发

您可以在开发应用程序时保持网络服务器运行。网络服务器将自动查看您源文件中的更改,并在必要时重新加载它们。

立即尝试:保持网络服务器运行,然后编辑 helloworld.py 以将 Hello, world! 更改为其他内容。重新加载 http://localhost:8080/ 以查看更改。

要关闭网络服务器,请确保终端窗口处于活动状态,然后按 Control-C(或您的控制台上相应的 [break] 键)。

您可以使网络服务器在本教程的其余部分时保持运行。如果您需要停止它,可以通过运行以上命令再次重新启动它。

下一步…

您现在完成了 App Engine 应用程序!您可以立即部署该简单问候并与全球用户共享。但是在部署之前,让我们考虑使用网络应用程序框架来更轻松地添加功能。

Bookmark and Share

开发环境

This item was filled under [ GAE使用入门 ]

使用 App Engine 软件开发套件 (SDK) 为 Google App Engine 开发和上传应用程序。

SDK 包含模拟 App Engine 环境的网络服务器应用程序,其中包括数据库的本地版本、Google 帐户,以及使用 App Engine API 从您的计算机直接抓取网址和发送电子邮件的功能。SDK 可在采用 Python 2.5 的任意计算机上运行,并且有适合 Windows、Mac OS X 和 Linux 的版本。

如有必要,请从 Python 网站为您的平台下载和安装 Python 2.5。Mac OS X 10.5 Leopard 用户已安装 Python 2.5。

下载 App Engine SDK。按照下载页面中的说明在计算机上安装 SDK。

对于本教程,您将使用两个来自 SDK 的命令:

对于 Windows 用户:Windows 安装程序会将这些命令置于命令路径中。安装后,您可以从命令提示符运行这些命令。

对于 Mac 用户:Google App Engine 启动程序会将这些命令包含在应用程序中。您可以通过从 [GoogleAppEngineLauncher] 菜单中选择 [Make Symlinks...] 将这些命令置于命令路径中。或者,您可以使用启动程序来运行开发网络服务器并部署您的应用程序,而不必运行命令。

如果您使用 SDK 的 Zip 归档版本,您将在 google_appengine 目录中找到这些命令。

通过本地开发环境,您可以在向外界推出 App Engine 应用程序之前对其进行全面的开发和测试。让我们写一些代码。

Bookmark and Share

简介

This item was filled under [ GAE使用入门 ]

欢迎使用 Google App Engine!创建 App Engine 应用程序非常简单,只需几分钟时间,而且是免费的:立即上传您的应用程序并与用户共享,不需要支付费用也不需要承担什么义务。

在本教程中,您将创建一个简单的留言簿应用程序,使用户可以在公共信息板上发布消息。用户可以匿名发布,也可以使用其 Google 帐户发布。

留言簿应用程序会演示如何使用 App Engine 数据库、如何将 App Engine 应用程序与 Google 帐户集成,以及如何使用 App Engine 中附带的名为 webapp 的简单 Python 网络框架。应用程序还会演示如何使用 Django 模板引擎。

要开始开发 Google App Engine 应用程序,您必须先下载并设置 App Engine 软件和开发套件。

Bookmark and Share

管理控制台

This item was filled under [ google_app_engine ]

Google App Engine 管理控制台为您提供可完整访问您的应用程序的公共版本的权限。通过在网络浏览器中访问以下链接来访问该控制台:

http://appengine.google.com/

使用您的 Google 帐户登录,或使用电子邮件地址和密码创建一个新的 Google 帐户。

如果您正通过您的 Google 企业应用套件帐户使用 App Engine,您可以使用类似下面的网址登录至您的域的 App Engine,其中 your-domain.com 是您的 Google 企业应用套件域:

http://appengine.google.com/a/your-domain.com

您可以使用管理控制台执行以下操作:

  • 创建新应用程序,并设置一个免费的 appspot.com 子域或您选择的顶级域名
  • 邀请其他人员成为您的应用程序的开发人员,这样,这些人员就可以访问该控制台并上传代码的新版本
  • 查看访问数据和错误日志,并分析访问量
  • 浏览您的应用程序的数据库并管理索引
  • 测试您的应用程序的新版本,并切换用户看到的版本

有关使用 appcfg.py 命令上传您的应用程序代码的信息,请参阅上传应用程序

Bookmark and Share

限额和限制

This item was filled under [ google_app_engine ]

创建 App Engine 应用程序不仅简单,而且是免费的!您可以创建帐户,然后发布一个用户可以立即使用的应用程序,无需承担任何费用和责任。通过免费帐户发布的应用程序可使用多达 500MB 的存储空间和多达每月 500 万的页面浏览量。

在此次预览中,仅提供免费帐户。您很快就能够以有竞争力的市场价格购买其他的计算资源。预览期过后,免费帐户可继续使用。

在此次预览中,最多可注册 3 个应用程序。

应用程序资源限制([限额])会不断刷新。如果您的应用程序达到基于时间的限额(例如带宽),则该限额将以指定限制的比率立即开始刷新。固定限额(例如存储空间)只能通过降低使用量来缓和限制。

有些功能会施加与限额无关的限制,以保护系统的稳定性。例如,当调用某应用程序以为网络请求提供服务时,该应用程序必须在几秒钟内发出响应。如果该 应用程序花费的时间过长,则进程会被终止并且服务器将向用户返回错误代码。响应超时是动态的,如果请求处理程序经常达到其超时,则可以缩短请求超时以节省 资源。

服务限制的另一示例是查询返回的结果数。一个查询最多可返回 1,000 条结果。本该返回更多结果的查询只能返回该最大值。在这种情况下,执行这种查询的请求不可能在超时前返回请求,但限制仍存在以节省数据库上的资源。

试图破坏或滥用限额(例如同时在多个帐户上操作应用程序)违反服务条款,并可能导致应用程序被禁用或帐户关闭。

Bookmark and Share

开发工作流程

This item was filled under [ google_app_engine ]

App Engine 软件开发套件 (SDK) 包括可以在您的本地计算机上模拟所有 App Engine 服务的网络服务器应用程序。该 SDK 包括 App Engine 中的所有 API 和库。该网络服务器还可以模拟安全沙盒环境,包括检查是否存在禁用模块的导入以及对不允许访问的系统资源的尝试访问。

Python SDK 完全使用 Python 实现,可以在装有 Python 2.5 的任何平台上运行,包括 Windows、Mac OS X 和 Linux。您可以在 Python 网站上获得适用于您的系统的 Python。该 SDK 以 Zip 文件提供,对于 Windows 和 Mac OS X 还提供安装程序。

您可以在此处下载该 SDK

该 SDK 还包括可将您的应用程序上传到 App Engine 的工具。创建了您的应用程序的代码、静态文件和配置文件后,即可运行该工具上传数据。该工具会提示您提供 Google 帐户电子邮件地址和密码。

构建已在 App Engine 上运行的应用程序的新主要发行版时,可以将新发行版作为新版本上传。在您改为使用新版本之前,旧版本可以继续为用户提供服务。可以在旧版本仍运行的同时在 App Engine 上测试新版本。

管理控制台是基于网络的接口,用于管理在 App Engine 上运行的应用程序。您可以使用它创建新应用程序、配置域名、更改您的应用程序当前的版本、检查访问权限和错误日志以及浏览应用程序数据库。

Bookmark and Share

应用程序环境

This item was filled under [ google_app_engine ]

通过 Google App Engine,即使在负载很重和数据量极大的情况下,也可以轻松构建能安全运行的应用程序。该环境包括以下特性:

  • 动态网络服务,提供对常用网络技术的完全支持
  • 持久存储空间,支持查询、分类和事务
  • 自动扩展和负载平衡
  • 用于对用户进行身份验证和使用 Google 帐户发送电子邮件的 API
  • 一种功能完整的本地开发环境,可以在您的计算机上模拟 Google App Engine

Google App Engine 应用程序是使用 Python 编程语言实现的。该运行时环境包括完整 Python 语言和多数 Python 标准库。

目前,Google App Engine 仅支持 Python 语言,但是我们希望将来它可以支持更多语言。

沙盒

应用程序在安全环境中运行,该安全环境仅提供对基础操作系统的有限访问权限。这些限制让 App Engine 可以在多个服务器之间分发应用程序的网络请求,并可以启动和停止服务器以满足访问量需求。沙盒将您的应用程序隔离在它自己的安全可靠环境中,该环境与网络 服务器的硬件、操作系统和物理位置无关。

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

 

  • 应用程序只能通过提供的网址抓取以及电子邮件服务和 API 访问互联网中的其他计算机。其他计算机只能通过在标准端口上进行 HTTP(或 HTTPS)请求来连接至该应用程序。
  • 应用程序无法向文件系统写入。应用程序只能读取通过应用程序代码上传的文件。该应用程序必须使用 App Engine 数据库存储所有在请求之间持续存在的数据。
  • 应用程序代码仅在响应网络请求时运行,且必须在几秒钟内返回响应数据。请求处理程序不能在响应发送后产生子进程或执行代码。

Python 运行时环境

App Engine 提供了一个使用 Python 编程语言的运行时环境。将来的版本将考虑使用其他编程语言和运行时环境配置。

Python 运行时环境使用 Python 版本 2.5.2。

该环境包括 Python 标准库。当然,您无法调用违反了沙盒限制的库方法,例如尝试打开套接字或向文件写入。为了方便起见,其主要功能不受该运行时环境支持的标准库中的多个模块已被禁用,而导入这些模块的代码将抛出错误。

应用程序代码只能以 Python 编写。具有用 C 编写的扩展的代码不受支持。

Python 环境为数据库Google 帐户网址抓取电子邮件服务提供了丰富的 Python API。App Engine 还提供了一个称为 webapp 的简单 Python 网络应用程序框架,从而可以轻松开始构建应用程序。

为了方便起见,App Engine 还包括 Django 网络应用程序框架 0.96.1 版。请注意,App Engine 数据库不是某些 Django 组件必需的关系数据库。某些组件(例如 Django 模板引擎)按照文档化的程序工作,而其他组件则需要做更多工作。有关将 Django 与 App Engine 配合使用的提示,请参阅文章部分。

只要其他第三方库是使用纯 Python 实现的并且不需要任何不受支持的标准库模块,您就可以使用您的应用程序上传这些库。

有关 Python 运行时环境的详细信息,请参阅 Python 运行时环境

数据库

App Engine 提供了一个强大的分布式数据存储服务,其中包含查询引擎和事务功能。就像分布式网络服务器随访问量增加一样,该分布式数据库也会随数据而增加。

该 App Engine 数据库与传统关系数据库不同。数据对象(或 [实体])有一类和一组属性。查询可以检索按属性值过滤和分类的指定种类的实体。属性值可以是受支持的属性值类型中的任何一种。

数据库的 Python API 包括一个可以定义数据库实体结构的数据建模接口。数据模型可以指示属性值必须位于指定范围内,如果未指定值,还可以提供默认值。您的应用程序可以根据需要向数据提供或多或少的结构。

数据库使用乐观锁定进行并发控制。如果有其他进程尝试更新某实体,而同时该实体位于以固定次数进行重新尝试的事务中,此时该实体将更新。应用程序可以在一个事务中执行多项数据库操作(全部成功或者全部失败,从而确保数据的完整性)。

数据库通过其分布式网络使用 [实体组] 实现事务。一个事务操作一个组内的实体。同一组的实体存储在一起,以高效执行事务。应用程序可以在实体创建时将实体分配到组。

有关数据库的详细信息,请参阅数据库 API 参考

Google 帐户

App Engine 包括用于与 Google 帐户集成的服务 API。应用程序使用户可以通过 Google 帐户登录,并可以访问与该帐户关联的电子邮件地址和可显示的名称。使用 Google 帐户使用户可以更快地开始使用您的应用程序,因为用户可以不需要创建新帐户了。Google 帐户还省去只为您的应用程序实现用户帐户系统的麻烦。

如果您的应用程序正在 Google 企业应用套件下运行,则它可以与您组织的成员和 Google 企业应用套件帐户成员使用相同的功能。

用户 API 还可告知应用程序当前用户是否是应用程序的注册管理员。这样便可以轻松实现您站点上仅管理员可访问的区域。

有关与 Google 帐户集成的详细信息,请参阅用户 API 参考

App Engine 服务

App Engine 提供了多种服务,从而可让您在管理应用程序的同时执行常规操作。提供了以下 API 以访问这些服务:

网址抓取

应用程序可以使用 App Engine 的网址抓取服务访问互联网上的资源,例如网络服务或其他数据。网址抓取服务使用用于为许多其他 Google 产品检索网页的高速 Google 基础架构来检索网络资源。有关网址抓取服务的详细信息,请参阅网址抓取 API 参考

邮件

应用程序可以使用 App Engine 的邮件服务发送电子邮件。邮件服务使用 Google 基础架构发送电子邮件。有关邮件服务的详细信息,请参阅邮件 API 参考

Memcache

Memcache 服务为您的应用程序提供了高性能的内存键值缓存,您可通过应用程序的多个实例访问该缓存。Memcache 对于那些不需要数据库的持久性存储和事务功能的数据很有用,例如临时数据或从数据库复制到缓存以进行高速访问的数据。有关 Memcache 服务的详细信息,请参阅 Memcache API 参考

图像操作

图像服务使您的应用程序可以对图像进行操作。使用该 API,您可以对 JPEG 和 PNG 格式的图像进行缩放、裁剪、旋转和翻转。有关图像操作服务的详细信息,请参阅图像 API 参考

Bookmark and Share

什么是 Google App Engine?

This item was filled under [ google_app_engine ]

Google App Engine 可让您在 Google 的基础架构上运行您的网络应用程序。App Engine 应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展。使用 Google App Engine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务。

您可以使用 appspot.com 域上的免费域名为您的应用程序提供服务,也可以使用 Google 企业应用套件从您自己的域为它提供服务。您可以与全世界的人共享您的应用程序,也可以限制为只有您组织内的成员可以访问。

可以免费开始使用 App Engine。注册一个免费帐户即可开发和发布您的应用程序以供全世界的人共享,而且不需要承担任何费用和责任。免费帐户可以使用多达 500MB 的持久存储空间,以及可支持每月约 500 万页面浏览量的超大 CPU 和带宽。

使用 Google App Engine 的预览版期间,仅提供免费帐户。您很快就能够购买其他的计算资源。

Bookmark and Share