开发您的服务

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

代码要求

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

  • 该服务必须侦听请求。您可以配置发送请求的端口。在 Knative serving 容器实例内部,PORT 环境变量的值始终反映请求发送到的端口。您的代码应检查是否存在此 PORT 环境变量,如果存在,则应侦听该变量以最大限度地提高可移植性。
  • 该服务必须是无状态服务,不能依赖永久性本地状态。
  • 服务不得在请求处理范围之外执行后台活动。

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

编程语言支持

Knative serving 允许您使用自己选择的编程语言来编写代码。

使用 Web 服务器

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

将代码容器化

如需部署到 Knative serving,您需要提供容器映像。容器映像是一种封装格式,其中包含您的代码、代码软件包、所需的全部二进制依赖项、要使用的操作系统以及运行服务所需的其他任何内容。

通常,您可以使用名为 Dockerfile 的文件来声明如何构建容器映像。

Dockerfile 通常从基础映像(例如 FROM golang:1.11)开始。您可以在 Docker Hub 上找到由操作系统和语言作者维护的基础映像。Cloud Build 会先检查缓存的映像,然后再从 Docker Hub 中拉取该映像。如果您使用第三方构建工具,则可以将 Docker 守护进程配置为检查同一缓存中的映像。您还可以在 Google Cloud Marketplace 中找到由 Google 管理的基础映像。

如果您要引入自己的二进制文件,请确保它们是针对 Linux ABI x86_64 编译的。

如需进一步了解 Dockerfile,请参阅以下资源:

后续步骤