跳至主要內容

20.3 安装 Go App Engine SDK:为 Go 部署的开发环境


20.3 安装 Go App Engine SDK:为 Go 部署的开发环境

20.3.1 安装

从下载页面下载合适你的系统的 GAE SDK 压缩文件:https://cloud.google.com/appengine/downloadsopen in new window

例如:你的系统是 64 位的 Linux Ubuntu 11.10 系统,则下载 go_appengine_sdk_linux_amd64-1.6.1.zip 文件。

用 Archieve Manager 打开并且提取出到你选择的一个目录下(例如你的 home 目录):它会创造一个叫做 google_appengine 的文件,其包含了整个 AppEngine for Go 的开发环境。例如在 /home/user/google_appengine 或者 "install root"/google_appengine/goroot 目录下。

这个环境包含了您在本地开发、构建和测试您的应用程序所需的一切:它包括一个 AppEngine 服务器来测试您的应用程序,一个 DataStore,用来在这里存储数据,就像您最终在 AppEngine 服务器上托管的实时应用程序一样;以及其他 API 支持和工具,使您可以模仿真正的 AppEngine 来进行开发和测试的目的。由于这个 AppEngine 环境是针对 Go 的,它也包含了 适当的 Go 编译器、软件包和工具作为下载的一部分。

GAE-Go 和普通 Go 之间的区别:

GAE-Go 的运行时 (runtime) 提供完整的 Go 语言和几乎所有的标准库,除了一些在 App Engine 环境中没有意义的东西:

因此,把你的 GAE 和非 GAE-Go 工具完全分开;如果你只做 GAE 开发,你可以完全不使用标准工具。在 google_appengine 目录下有几个 Python 脚本,是 Google App Engine 的基本工作程序。确保它们是可执行的(如果不是,请使用 chmod +x *.py 命令)。同时将它们的路径添加到 PATH 变量中,以便你在调用它们时不必包含完整的路径:例如,如果你有一个 bash shell,在你的 .bashrc 或 .profile 文件中添加一行:

export PATH=/home/user/google_appengine:$PATH

注意:

  1. 如果你已经有了一个工作的 Go 环境(就像你在阅读本书时那样),这个 AppEngine 的安装是在它之外的,与它平行而不影响它;特别是您不需要改变您操作系统中的 Go 环境变量。AppEngine 上的 Go 有其自己完全独立的环境,包含自己的 Go 版本(在 "install root"/google_appengine/goroot 目录下)
  2. 下载文档也是一个好主意,这样你可以在离线时浏览。从官网下载 google-appengine-docs-20111011.zip 并解压。
  3. GAE 大量使用 Python,这在 Mac OS X 和 Linux 上默认安装;如果由于某种原因不是这种情况,请从 www.python.orgopen in new window 下载并安装 Python 2.5。
  1. 源代码:库和 SDK 是开源的:http://code.google.com/p/appengine-go/。用以下方法下载:open in new window
hg clone https://code.google.com/p/appengine-go/
  1. 一个给定应用程序的所有 Go 包都内置在一个单一的可执行文件中,并且请求调度由 Go 程序本身处理。由 Go 程序本身处理;这与 Java 和 Python SDK 的情况不同。
    第 20.8 节,我们将看到如何连接到 GAE 云来部署你的应用程序。但在这你将在你刚刚安装的本地GAE环境中开发、测试和运行你的应用程序,这是对开发环境最好的模拟。

20.3.2 检查和测试

检查安装:

为了控制一切工作正常,在控制台中进入 google_appengine,通过调用 dev_appserver.py 来调用本地 AppEngine 服务器。

如果你看到以下内容:

Invalid arguments
Runs a development application server for an application.
dev_appserver.py [options]
Application root must be …

则一切正常。

运行一个演示应用程序:

在 SDK 捆绑包中有一些演示应用程序。让我们运行一个以确保一切正常。

注意,这将自动编译、链接和运行 Go 程序。