本頁面說明開始開發 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 的進一步資訊:
- 如要瞭解 Dockerfile 語法,請參閱 Dockerfile 參考資料。
- 透過編寫 Dockerfile 的最佳做法,瞭解 Dockerfile 的搭配使用方式。
後續步驟
- 準備好服務程式碼和 Dockerfile 時,您應建構容器映像檔,再繼續反覆執行本機測試。
- 如果您要遷移現有的網頁應用程式,請參閱將服務遷移到 Knative serving。
- 如需設計、實作、測試及部署 Knative Serving 服務的最佳做法,請參閱開發提示。