App Engine标准版和Cloud Run是Google Cloud Platform提供的两种不同的托管服务。这两种托管服务都提供了快速、可扩展的应用程序部署和管理,但它们有一些不同之处,需要根据自己的需求进行选择。
隔离级别:App Engine标准版使用基于实例的隔离,每个应用程序都运行在自己的实例中。而Cloud Run使用更为轻量级的容器隔离,每个请求都会运行在自己的容器中。
自定义:App Engine标准版提供了更多的自定义选项,可以配置应用程序的内存、CPU等资源。Cloud Run更加灵活,可以与各种语言和框架集成,但是缺乏与App Engine标准版同样的粒度控制。
自承载容器:如果您需要自己管理来提供容器,请考虑使用Cloud Run。如果您希望Google管理实例,请使用App Engine标准版。
以下是一个示例代码,使用Flask在App Engine标准版和Cloud Run中运行相同的应用程序。
#app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
在App Engine标准版中运行:
#app.yaml
runtime: python37
在Cloud Run中运行:
gcloud builds submit --tag gcr.io/[project_id]/[image_name]
gcloud run deploy --image gcr.io/[project_id]/[image_name] --platform managed