如何在Amazon EC2上实现Google App Engine的helloworld.py?
我刚接触亚马逊AWS,想做的第一件事就是用Python创建一个简单的网页,显示“你好,世界”。
在谷歌的应用引擎上,这个过程相对简单,可以在这里找到相关信息。
在名为helloworld.py的文件里,有一个叫做webapp2的东西,它使用了一种叫做Web服务器网关接口的技术。当有请求时,它会返回一个响应,里面包含HTTP头、内容类型和“你好,世界”的信息。
import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.write('Hello, World!')
application = webapp2.WSGIApplication([
('/', MainPage),
], debug=True)
在另一个文件(app.yaml)中,有一个简单的配置:
application: your-app-id
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: helloworld.application
这样一来,启动起来就非常简单了。那么在AWS上有没有类似的做法呢?
首先,我需要设置一个实例,这个过程也很简单。对于我来说,我选择了亚马逊Linux,因为它的描述里提到了Python,并且使用了一个“t1微型实例”,这样我可以利用“免费套餐”服务,非常适合我这种低功耗、低带宽的学习需求。
然后,我用密钥文件顺利登录,坐在命令提示符下。
[]$ python -v
Python 2.6.9 (unknown, Mar 28 2014, 00:06:37)
[GCC 4.8.2 20131212 (Red Hat 4.8.2-7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
dlopen("/usr/lib64/python2.6/lib-dynload/readline.so", 2);
import readline # dynamically loaded from /usr/lib64/python2.6/lib-dynload/readline.so
>>> 1+1
2
>>>
所以,我创建了Linux实例,并成功启动了Python。接下来,我应该采取哪些步骤来实现“你好,世界”,就像我在谷歌应用引擎上做的那样?我还要提到的是,webapp2并没有安装,我怀疑我想要的其他东西,比如beautifulsoup/bs4,也没有安装。
所以我需要安装一些软件包,使用pip安装非常顺利:
wget http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#md5=62a9f08dd5dc69d76734568a6c040508
tar -xvf pip*.gz
cd pip*
sudo python setup.py install
webapp2似乎是为谷歌应用引擎准备的,那我应该使用类似的东西吗?