Google App Engine是一个开发、托管网络应用程序的平台,使用Google管理的数据中心。简单来讲,就是一个主机空间。每个帐号每天有1GB流量的免费额度,对于个人用户来说勉强足够。我最近在研究在上面部署一个私人的TG bot,环境选择了python,当然GAE也支持Java、PHP 、Go、Node.js、.Net、Ruby应用的托管。

新建一个项目

登录google帐号,在 App Engine 页面创建一个项目

记住 hello-world-238914,这是appid

下载安装SDK

由于在arch上,我选择了 Linux 64位版,具体各版本在https://cloud.google.com/sdk/docs/有相应文档

## 首先确认是否安装了python2.7,没有就安装
$ python2 -V
$ wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-240.0.0-linux-x86_64.tar.gz
## 注意验证SHA256 校验和
$ vim check-sha256
5b7ad4e2632c77d5643162af6e1a586d22c5da82fe4e2ec18c411c831c6f5a44 google-cloud-sdk-240.0.0-linux-x86_64.tar.gz
$ sha256sum -c check-sha256
$ tar -xvzf google-cloud-sdk-240.0.0-linux-x86_64.tar.gz
$ cd google-cloud-sdk
## 安装
$ ./install.sh
$ vim ~/.zshrc  ## 末尾加上
export GCLOUD_PYTHON=python2
$ source ~/.zshrc  
## 重启终端
## 由于一些原因,你可能需要设置代理登录来进行认证
$ gcloud config set proxy/type socks5
$ gcloud config set proxy/address 127.0.0.1
$ gcloud config set proxy/port your_port
## 初始化
$ gcloud init

编写Hello World

这个其实已经有官方的样例了,我照搬一下吧,地址:https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/appengine/standard

编写代码

main.py:

import webapp2


class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write('Hello, World!')


app = webapp2.WSGIApplication([
    ('/', MainPage),
], debug=True)

main_test.py

import webtest

import main


def test_get():
    app = webtest.TestApp(main.app)

    response = app.get('/')

    assert response.status_int == 200
    assert response.body == 'Hello, World!'

app.yaml:

runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: main.app

测试代码

cd到项目目录,执行:

dev_appserver.py app.yaml

然后就可以到 http://localhost:8080/ 查看效果了
http://localhost:8000/instances 可以看到管理页面。

部署项目

cd到项目目录,执行:

gcloud app deploy

之后就可以在 https://hello-world-238914.appspot.com/ 或者输入 gcloud app browse 查看应用了