构建和部署 Python 服务
如需在 Cloud Shell Editor 中直接获取有关此任务的分步指导,请点击操作演示:
以下部分将引导您完成与点击操作演示相同的步骤。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
编写示例应用
如需使用 Python 编写应用,请执行以下操作:
创建名为
helloworld
的新目录,并转到此目录中:mkdir helloworld cd helloworld
创建名为
main.py
的文件,并将以下代码粘贴到其中:此代码使用我们的“Hello World”问候语响应请求。HTTP 处理由容器中的 Gunicorn Web 服务器进行。当直接调用以供本地使用时,此代码会创建一个基本 Web 服务器,该服务器侦听
PORT
环境变量定义的端口。创建名为
requirements.txt
的文件,并将以下代码粘贴到其中:这会添加示例所需的软件包。
添加包含以下内容的 Dockerfile。
这将启动 Gunicorn 网络服务器,该服务器会侦听 PORT 环境变量定义的端口。
添加一个
.dockerignore
文件,以从容器映像中排除文件。
您的应用已编写完毕,可以进行部署。
从源代码部署到 Cloud Run
重要提示:本快速入门假定您在快速入门中使用的项目中拥有所有者或编辑者角色。否则,请参阅 Cloud Run 部署权限、Cloud Build 权限和 Artifact Registry 权限,获取需要的权限。
从源代码部署会自动从源代码构建容器映像并进行部署。
如需从源代码部署,请执行以下操作:
在源代码目录中,使用以下命令从源代码进行部署:
gcloud run deploy
如果系统提示您启用 API,请回复 y 进行启用。
当系统提示您输入源代码位置时,请按 Enter 键部署当前文件夹。
当系统提示您输入服务名称时,请按 Enter 键接受默认名称
helloworld
。如果系统提示您启用 Artifact Registry API,请按
y
响应。当系统提示您输入区域时:请选择您选择的区域,例如
us-central1
。系统会提示您允许未通过身份验证的调用:响应
y
。
然后等待部署完成。成功完成时,命令行会显示服务网址。
在 Web 浏览器中打开该服务网址,访问部署的服务。
Cloud Run 位置
Cloud Run 是地区级的,这意味着运行 Cloud Run 服务的基础架构位于特定地区,并且由 Google 代管,以便在该地区内的所有区域以冗余方式提供。
选择用于运行 Cloud Run 服务的地区时,主要考虑该地区能否满足您的延迟时间、可用性或耐用性要求。通常,您可以选择距离用户最近的地区,但除此之外,您还应该考虑 Cloud Run 服务使用的其他 Google Cloud 产品的位置。跨多个位置使用 Google Cloud 产品可能会影响服务的延迟时间和费用。
Cloud Run 可在以下地区使用:
基于层级 1 价格
asia-east1
(台湾)asia-northeast1
(东京)asia-northeast2
(大阪)europe-north1
(芬兰) 二氧化碳排放量低europe-west1
(比利时) 二氧化碳排放量低europe-west4
(荷兰)us-central1
(爱荷华) 二氧化碳排放量低us-east1
(南卡罗来纳)us-east4
(北弗吉尼亚)us-west1
(俄勒冈) 二氧化碳排放量低
基于层级 2 价格
asia-east2
(香港)asia-northeast3
(韩国首尔)asia-southeast1
(新加坡)asia-southeast2
(雅加达)asia-south1
(印度孟买)asia-south2
(印度德里)australia-southeast1
(悉尼)australia-southeast2
(墨尔本)europe-central2
(波兰,华沙)europe-west2
(英国伦敦)europe-west3
(德国法兰克福)europe-west6
(瑞士苏黎世) 二氧化碳排放量低northamerica-northeast1
(蒙特利尔) 二氧化碳排放量低northamerica-northeast2
(多伦多) 二氧化碳排放量低southamerica-east1
(巴西圣保罗) 二氧化碳排放量低southamerica-west1
(智利圣地亚哥)us-west2
(洛杉矶)us-west3
(盐湖城)us-west4
(拉斯维加斯)
如果您已创建 Cloud Run 服务,则可以在 Cloud Console 的 Cloud Run 信息中心查看相应的地区。
恭喜!您刚刚将源代码从容器映像部署到了 Cloud Run。Cloud Run 会在需要处理收到的请求时自动横向扩容您的容器映像,并在需要处理的请求数量减少时自动横向缩容您的容器映像。您只需为在处理请求期间消耗的 CPU、内存和网络付费。
清理
移除测试项目
虽然 Cloud Run 不会对未在使用中的服务计费,但您可能仍然需要支付将容器映像存储在 Artifact Registry 中而产生的相关费用。为避免产生费用,您可以删除映像或删除 Cloud 项目。删除 Cloud 项目后,系统即会停止对该项目中使用的所有资源计费。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
后续步骤
如需详细了解如何使用代码源构建容器并推送到代码库,请参阅: