開發您的服務

本頁面說明開始開發 Knative serving 服務的幾項須知。

程式碼需求

在開發服務時,您必須符合下列需求條件:

  • 服務必須監聽要求。 您可以設定傳送要求的通訊埠。在 Knative 服務容器執行個體中,PORT 環境變數的值一律會反映要求傳送的連接埠。程式碼應檢查是否有這個 PORT 環境變數,如果有的話,應監聽該變數,盡可能提高可攜性。
  • 服務必須是「無狀態」,不能依賴永久本機狀態。
  • 服務不得在處理要求範圍之外執行背景活動。

您可以在容器執行階段合約中找到有關這些限制的詳細資料。

程式設計語言支援

Knative 服務可讓您使用自選的程式設計語言撰寫程式碼。

使用網路伺服器

您可以使用網路伺服器監聽所需的通訊埠,接著處理並轉送傳入的要求。例如,Node.js 開發人員可使用 Express.js,Python 開發人員則可使用 Flask,而 Ruby 開發人員可使用 Sinatra,以此類推。

將程式碼容器化

如要部署到 Knative serving,您必須提供「容器映像檔」。 容器映像檔是一種封裝格式,包含您的程式碼、程式碼的套件、任何必要的二進位依附元件、要使用的作業系統,以及執行服務所需的項目。

有一個叫做 Dockerfile 的檔案,常用於宣告如何建構容器映像檔。

Dockerfile 經常以基本映像檔 (例如 FROM golang:1.11) 為基礎。您可以前往 Docker Hub 尋找 OS 和語言作者所維護的基本映像檔。Cloud Build 會先檢查快取的映像檔,再從 Docker Hub 提取映像檔。如果您使用第三方建構工具,可以設定 Docker Daemon,在同一個快取中檢查映像檔。在 Google Cloud Marketplace 中也可以找到由 Google 管理的基本映像檔。

如果您自備二進位檔案,請確認檔案是針對 Linux ABI x86_64 進行編譯的。

以下資源提供 Dockerfile 的進一步資訊:

後續步驟