Python是最流行的编程语言之一,并且正在不断发展。它非常适合许多用例,包括Web应用程序,机器学习和大数据。通过Cloud Run,您可以使用所需的任何运行时,从而可以轻松地以无服务器方式部署Python 。 Cloud Run也受到完全管理,这意味着如果您的服务开始获得大量流量,您就不必担心基础架构的扩展。
如果您有现有的无状态Python应用程序,则只需添加一个文件即可将表面部署到Cloud Run。无需更改代码。用户喜欢将Flask用于此类小型服务,因为它是易于设置的轻量级框架。它的服务具有基础,一个HTML文件(可在其中创建表单以获取用户输入),一个简单的CSS文件以及一个app.py文件(可在其中设置路由和定义函数)。
您需要定义的最后一个文件是Docker文件。这允许用户自定义其容器的运行时以完全适合他们的需求。容器是隔离我们的应用程序以使其无论部署在哪里都可以运行的一种方法。
创建Docker文件时,我们首先需要使用FROM命令指定基本的Docker映像,如下所示:
FROM python: 3.8-slim
在这里设置Python运行时。
COPY命令从Docker客户端的当前目录添加文件,如下所示:
COPY. . /
RUN命令为该服务安装Flask , gunicorn和货币转换器依赖项。
RUN pip install Flask gunicorn CurrencyConverter
最后,CMD是用于在容器内启动应用程序并将其绑定到端口的命令。
CMD gunicorn --bind :$PORT app:app
app:app末尾意味着从app.py文件导入我们的应用程序。
Cloud Run的优点之一是,只要有可用的基本Docker映像,您就可以运行所需的任何Python版本。如果愿意,您甚至可以使用Python的最新版本3.8。
现在我们有了Docker文件,我们可以使用Cloud Build来构建容器。这会将我们的代码以及我们在Docker文件中添加的所有内容捆绑在一起,并将其推送到Container Registry(用于存储容器映像的位置)。最后,我们将服务部署到Cloud Run。
只需两个命令即可将服务推向世界。在终端中,我们首先使用builds命令构建容器。
$ gcloud builds submit --tag gcr.io/PROJECT_ID/PROJECT-NAME
然后,我们使用刚刚构建的容器映像来部署服务。
$ gcloud run deploy --image gcr.io/PROJECT_ID/PROJECT-NAME
如果我们查看Google Cloud控制台的Cloud Run部分,则可以看到我们的Cloud Run服务。如果单击该服务,则可以看到重要信息,例如指标和服务的URL。
如果用户发现最新的版本有重大更改,他们还可以在此处将用户流量重定向或拆分到以前的版本。