开发您的服务

本页面介绍开始开发 Cloud Run 服务时需要了解的一些事项。

代码要求

开发服务时,您必须满足以下要求:

  • 该服务必须侦听请求。您可以配置发送请求的端口。在 Cloud Run 实例内部,PORT 环境变量的值始终反映请求发送到的端口。您的代码应检查是否存在此 PORT 环境变量,如果存在,则应侦听该变量以最大限度地提高可移植性。
  • 该服务必须是无状态服务,不能依赖永久性本地状态。
  • 如果服务在请求处理范围之外执行后台任务,则必须启用基于实例的结算方式设置,以确保在标准请求周期之外也能分配 CPU。
  • 如果服务使用网络文件系统,则必须使用第二代执行环境

如需详细了解这些限制,请参阅容器运行时合同

编程语言支持

Cloud Run 源代码部署便于支持多种语言运行时,每个运行时均通过 Google Cloud 的 Buildpack 提供的容器基础映像提供。您也可以使用其他编程语言或框架,前提是源代码位于符合 OCI 规范的映像中。

快速入门:构建和部署中提供了以多种主流语言编写的示例。

使用 Web 服务器

您可以使用 Web 服务器侦听所需的端口,以及处理和路由传入请求。例如,Node.js 开发者可以使用 Express.js,Python 开发者可以使用 Flask,Ruby 开发者可以使用 Sinatra,等等。

将代码容器化

如需了解详情,请参阅将代码容器化

借助 Gemini 协助设计 Cloud Run 应用

您可以通过 Gemini Cloud Assist 对话获得 AI 驱动的帮助,从而优化应用设计。借助 Gemini Cloud Assist,您可以发现最适合在 Cloud Run 上部署应用的配置和策略,从而高效利用资源,确保服务顺畅运行。

如需在 Google Cloud 控制台中使用 Gemini Cloud Assist,请执行以下操作:

  1. 确保已为您的 Google Cloud 用户账号和项目设置了 Gemini Cloud Assist。
  2. 在 Google Cloud 项目中设置 Cloud Run 开发环境,并确保您拥有相应的部署权限

  3. 前往 Google Cloud 控制台的 Cloud Run 页面。

    转到 Cloud Run

  4. 在控制台工具栏中,选择一个 Google Cloud 项目。请使用与您获批访问 Gemini Cloud Assist 后提交的项目 ID 关联的项目。

  5. 点击 spark 打开或关闭 Gemini AI 对话

    系统会打开 Gemini 面板。

  6. 如果您同意这些条款,请根据需要点击接受

  7. 如果您有关于特定应用的问题,请先打开显示该资源的页面,再提出问题,以便系统获取上下文信息。在生成回答时,Gemini 会包含有关当前控制台页面和项目的信息。

  8. Gemini 面板中输入提示。

    下表提供了一些示例提示,可用于将 Gemini Cloud Assist 与 Cloud Run 搭配使用。

    提示 回答类型
    “我想在 Cloud Run 上设计一个 Node.js 应用。推荐的方法是什么?我需要了解哪些内容?” 有关容器化应用、构建 Node.js 应用以及部署流程的摘要。
    “部署 Cloud Run 应用需要哪些权限?” 所需权限和角色的列表。
    “我想使用 Cloud Run 部署三层式 Web 应用” 设计三层式 Web 应用的步骤概览。
    “如何将 App Engine 应用迁移到 Cloud Run” 简要概述了准备 Cloud Run 开发环境的关键步骤,以及与其他相关产品之间的一些主要区别。指向示例教程的链接,该教程可用于自定义解决方案以满足您的特定需求。
    “将 Cloud Run 服务‘example-service’的最小实例设置更新为 2 的 gcloud CLI 命令是什么?” 建议用于更新最小实例数设置的 gcloud CLI 命令。
    “如何更新 Cloud Run 服务 hello-world 的服务账号” 用于更新服务账号的建议 gcloud CLI 命令。
    “请展示一个使用 LangChain 在 Cloud Run 上构建生成式 AI 应用的示例” 使用 Cloud Run 和 LangChain 创建示例应用的步骤。
    “使用 google_cloud_run_v2_service 资源为 Cloud Run 服务生成 Terraform 配置,该配置将结算设置设为基于实例的结算方式” 用于将结算方式更新为基于实例的建议 Terraform 配置。

如需了解详情,请参阅以下资源:

后续步骤