如何在Amazon EC2上实现Google App Engine的helloworld.py?

2 投票
1 回答
758 浏览
提问于 2025-04-21 05:57

我刚接触亚马逊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似乎是为谷歌应用引擎准备的,那我应该使用类似的东西吗?

1 个回答

3

可能有点啰嗦,但AWS提供了一份关于如何在Elastic Beanstalk上使用Python和Flask的指南……我觉得这能帮你实现想要的功能,而且过程简单。

撰写回答