[使用GAE开发] Google App Engine

2023-11-11 07:58
文章标签 使用 app 开发 google engine gae

本文主要是介绍[使用GAE开发] Google App Engine,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本章提供了 Google App Engine 的一些概念。我们将看看 Google App Engine 的开发以及 Google App Engine 怎样通过开发和运行服务来实现云计算的概念。

 

什么是 Google App Engine

Google App Engine 是一个基于 Python (译者注:现在也已经支持 JAVA 语言了)的应用服务运行平台,在 Google 大量的基础架构上提供了 Web 应用托管、数据存储以及高速网络的功能。

开发人员可以利用 Google App Engine 提供的 API 免费创建应用服务,包含着下面的一些限制:

  • 一个月限制在 500 万次访问(包括带宽和 CPU 使用)。
  • 可以使用 500M 的存储空间。

注意:本文写作的时候 Google App Engine 还只是免费试用,而且暂时没有收费计划。
上面的这些限制考虑到下面的特性就不会奇怪了:

  • Google App Engine 的开发是在用户终端上进行的,支持的主机包括 OS X Linux Windows
  • Google App Engine 提供了高效的动态网页执行功能,即使是在很强数据量的情况下,这主要得益于内置的负载均衡机制。
  • 存储系统支持事务、查询和排序。
  • 可以使用 Gmail API 提供 E-mail 认证支持。

运行环境已经通过底层的操作系统抽象出来从而避免了系统平台的依赖性。 Google 的基础架构通过分发在多个服务器为你的应用提供了自动和按需的流量整形和负载均衡功能。每一个应用都运行在一个单独的安全沙盒上,而不会影响到其他应用和引起资源冲突。应用可以运行在一个默认的 appspot.com 域名上,或者是你自己的 Google App 帐号。使得应用建立并运行起来只需要一些简单的设置工作。

 

Google App Engine 和云计算

云计算描述了运行在第三方提供的分布式运算资源上的应用。有些云计算提供商提供通用计算和存储能力,而另一些提供专门或专业服务。

 

云上的终端用户应用

最引入注目的云计算例子是终端用户应用。这集成了软件为服务(Software as a Service (SaaS))以及平台为服务(Platform as a Service(PaaS))的计算模型。用户通过标准的 Web 浏览器和应用进行交互,而不用关心发布和内部管理。

 

云上的服务

除了能够发布交互式应用,供应方可以通过通信或者数据交互协议发布服务的 API 或者是开启服务的平台。这些服务可能还包括主机系统提供。还有的一些云服务包括:

Web 服务:Salesforce.com,the United States Postal Service,Google Maps都为其特定的任务提供了 API

服务平台:Mule, Postini, SecureWorks和Cape Clear通过引入基于 ESB 技术的第三方提供或者用户的应用的商业系统提供了整合能力。

管理服务:Sun Microsystems, IBM, Liquid Computing, 和3Tera为终端用户和服务软件提供了主机服务,同时还包括用户架构和 IT 团队支持。

 

Google App Engine 和云计算

Google App Engine 为终端用户提供了 3 个特别的云计算特性:

  • 一个 PaaS 服务。开发小组或者公司可以使用 Google App Engine 创建公共或者内部的 Web 应用,支持事务、单点认证和健壮的可扩展性和可用性。
  • 使用 Google App Engine 创建的应用是通过 SaaS 提供的,可以直接通过用户的 Web 浏览器来访问。
  • 还有和其他第三方提供的服务平台集成的能力。

怎样开始实现一个云计算服务呢?本章接下来的部分描述了 Google App Engine 如何使得这个任务非常容易。

 

在使用 Google App Engine 之前

在使用 Google App Engine 之前需要知道一些基础知识:

  • 一些 Python 编程知识(越多越好)。
  • Web 应用如何创建已经运行行为的基本知识,包括 CGI 使用、 servlet 和应用容器。
  • 如何使用 SQL 命令查询和更新数据库。

容易使用是 Google App Engine 的一个主要设计目标。可以通过 SDK 或者是标准的 Python 代码使用一个 App 模拟器来对代码进行测试。 Python 的解释特性使得可以快速的做行测试以及原型设计。 SDK App 模拟器的硬件需求是很低的,所以只要是一个简单的工作站和基本的互联网能力都可以工作得很好。

提示:“Dive into Pytho”是学习 Python 语言的好的途径,包括基本的和高级的概念。这本书可以从 http://www.diveintopython.org 上获得。

和用户交互的 App Engine 应用需要支持一个 Web 应用框架。 Python Web 服务网关接口(Web Server Gateway Interface (WSGI))是你的 App Engine 应用可以使用的和 Web 服务器以及应用服务器通信的标准机制。 App Engine 支持 WSGI ,并且可以工作在任何兼容的应用服务器上。如果需要阅读有关 WSGI 的背景,以及和应用服务器的集成,请阅读第四章。

 

设置开发环境

开发和发布环境是 App Engine 服务的一个组合,可以下载一个 SDK 到你的工作站上。 Google App Engine 需要一个账号来绑定环境,就像 Google Docs Gmail 一样。你可以在 http://code.google.com/appengine上注册和获取 SDK 。按照下面的步骤开始吧

  1. 确保你的工作站上安装了 Python2.5 或更高版本,打开一个终端,输入 Python --version
  2. 定义一个需要开始的应用
  3. 提供一个移动号码, Google 将向这个号码发送短信消息用来确认。
  4. 创建应用标识符用来形成应用的 URL yourappid.appspot.com 。在本书中,将使用genpasswd 和bookmarksbin作为应用标识符。你可以设置更多的选项,如终端用户访问认证设置等(见第八章)。
  5. 安装合适你的操作系统的 SDK 。从http://code.google.com/appengine/downloads.html下载。
  6. 开始GoogleAppEngineLauncher 用来结束安装。在 OS X Windows 下的启动器需要管理员密码,因为启动器将设置本地应用服务模拟器和上传工具的链接,同时为 SDK 创建主目录(/usr/local/google_appengine)。这是一次性的安装,以后就再也不需要管理员密码了。
  7. 确保应用服务器模拟器和上传工具可以全局性的运行。输入下面的命令进行测试:

    dev_appserver.py –help

    appcfg.py –help

     

  8. 检查 Python App Engine 的安装目录是否在 PATH 环境变量中:如在 OS X Linux 下可以输入which dev_appserver.py。你应该可以看到如 /usr/local/bin/dev_appserver.py,使用set | grep PATH应该可以得到/usr/local/bin。

现在你已经做好编写和管理 App Engine 工程的准备了!

 

Hello, World!

App Engine 应用在本地文件系统中的组织方式和上传到 Google 服务器后的组织方式是一样的。一个工程至少要包含有一个 Python 程序文件和一个 YAML 文件,用来告诉 Web 服务器如何运行,以及如何响应用户的请求。

什么是 YAML YAML 是一种用于配置文件、存储和网络消息的跨语言、用户友好的数据序列化语言。 YAML 容易为人所阅读,而且比 XML 消耗更少的资源。“ YAML ”代表“YAML Ain’t a Markup Language,”,可以从 http://yaml.org   上找到更多的信息。

创建一个名为greetingprogram的目录,并在其中生成一个greeting.py文件:

Listing 1-1. greeting.py

# Greeting program

print 'Content-Type: text/plain'

print ''

print 'Hello, World!'

这个程序唯一需要提及的是需要告诉 Web 服务器响应的内容类型。在第二章和第三章中将看到如何利用 WSGI 框架,而不是每次都这样输出类型。

 

Listing 1-2显示了你的新应用中使用 YAML 定义的运行元信息。app.yaml是默认的,因为 Web 服务器启动的时候会搜索此文件。使用不同的文件名将触发一个AppConfigNotFoundError错误。

Listing 1-2. app.yaml

application: greetingprogram

version: 1

runtime: python

api_version: 1

handlers:

- url: /.*

script: greeting.py

打开一个系统终端,转到开发目录,输入下面的命令:

dev_appserver.py greetingprogram/

 

这将启动应用服务器并在控制台下显示服务器日志。greetingprogram/目录是你的开发目录,包含 Python 文件和 YAML 文件。如果没有问题的话,你可以看到下面的信息:

Running application greetingprogram on port 8080:

http://localhost:8080

 

最后,指向浏览器中的这个地址,并验证你的 greeting 程序,如图 1-1 所示。

 

  1-1  greeting.py 的输出

 

小结

Google App Engine 是一个运行在 Google 可伸缩基础架构上的开发面向终端用户软件服务( SaaS )的服务平台( Paa S )应用框架。 App Engine 设计得可以让只有很少 Python Web 编程知识的开发者都可以很容易的书写和发布复杂的应用。 Google App Engine 简化了云应用的发布及其组件,这在其他终端应用的云计算平台上可能不稳定。

本章的程序并没有实际意义。怎样完成一个实际的项目并发布到 Web 上去呢?在第二章中将通过使用 SDK 中的开发工具来熟悉这一过程。

 

这篇关于[使用GAE开发] Google App Engine的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/388629

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版