常見問題 Code Engine
有關 IBM Cloud® Code Engine 服務的常見問題的回答。
何謂 IBM Cloud Code Engine?
Code Engine 由 IBM 開發,並以許多開放程式碼元件建置。 目標是擴充 Kubernetes 的功能,協助您建立現代化、以原始碼為中心的容器化,以及在 Kubernetes 集群上執行的無伺服器應用程式。 此平台專門設計用來因應開發人員的需求,現今的開發人員必須決定他們要在雲端執行哪種類型的應用程式:12 因子應用程式、容器或函數。 如需相關資訊,請參閱關於 Code Engine。
使用 Code Engine,您可以從單一儀表板部署應用程式、執行工作,甚至建置原始碼。
何謂專案?
專案是 Code Engine 實體 (例如應用程式、工作及建置) 的分組。 專案以 Kubernetes 名稱空間為基礎。 專案名稱在 IBM Cloud® 資源群組、使用者帳戶及地區內必須是唯一的。 專案用來管理資源,並提供對其實體的存取權。
專案提供下列項目。
- 提供實體名稱的唯一名稱空間。
- 管理對專案資源的存取權 (入埠存取權)。
- 管理對支持服務、登錄及儲存庫 (出埠存取權) 的存取權。
- 具有自動產生的傳輸層服務 ( TLS ) 憑證。
如需專案的相關資訊,請參閱 管理專案。
哪裡可以找到程式碼範例?
您可以找到程式碼範例,以協助您探索 Code Engine的功能。 請造訪我們的 GitHub 上的 Code Engine 程式碼範例儲存庫。
我需要更多的記憶! 我可以提高我的限制嗎?
我是否需要 Docker Hub 帳戶才能使用 Code Engine?
Code Engine 不需要 Docker Hub 帳戶。 雖然 Code Engine 會執行儲存器,但您不需要瞭解儲存器技術,即可在 Code Engine上部署工作量。 您可以從原始碼開始,然後 Code Engine 會為您建置容器映像檔,並將它儲存在您帳戶所擁有的 IBM Cloud Container Registry 名稱空間中。 雖然使用 IBM Cloud Container Registry 作為預設儲存器登錄,但 Code Engine 可以從可從 IBM Cloud存取的任何其他公用及專用登錄中推送及取回映像檔。
我系統上的 Docker 建置與 Code Engine中的建置之間有何差異?
如果您使用 Code Engine中的相同 Dockerfile 來執行建置,則在本端系統上執行 Docker 建置的結果會是您取得的相同容器映像檔。 不過,Code Engine 中的建置不是在本端系統上執行,而是在 Code Engine 系統中執行。 Code Engine 中的這項建置提供數個優點。
- 您不需要在本端安裝軟體,例如 Docker Desktop。
- 您可以使用 Code Engine提供的資源。 例如,您可以利用 IBM Cloud 的速度來為您推送及取回容器登錄映像檔。
- 您可以使用 建置套件建置策略 而非 Dockerfile 來建置容器映像檔,Dockerfile 會偵測各種語言的來源並自動建置容器。
- 如果您具有使用非 Intel 型處理器建置的映像檔,則 Code Engine 可以為您重建它。
為什麼在 Code Engine 中使用 Buildpacks 建立的容器影像會顯示許多漏洞?
使用 Buildpacks 建立策略建立的映像使用 Ubuntu 基本映像。 雖然這個基本映像會被主動維護,但有些 Ubuntu 套件只能在 Ubuntu Pro 訂閱模式下獲得安全修復。 因此,您的映像包含 Canonical 會發佈漏洞通知的套件,但只提供修補程式給 Ubuntu Pro 訂閱 者。 由於 Code Engine 使用的是公開版本,因此無法自動套用這些更新。 在弱點報告中,您可以透過檢查套件需要更新到的版本來識別這些弱點。 如果此版本號包含 esm,則只會修復
Ubuntu Pro。
請注意,基本映像包含一些執行時需要的套件。 安裝這些套件的原因是 Buildpacks 無法在建立過程中可靠地判斷您的應用程式在執行時可能需要哪些系統函式庫。 雖然您的特定應用程式可能不需要某些套件,但為了確保各式各樣的工作負載都能成功執行,我們還是包含了這些套件。
如果您想要完全控制基本映像,包括哪些 Ubuntu 套件存在以及何時更新,請考慮從 Buildpacks 建立策略轉換為提供您自己的 Dockerfile。 透過基於 Dockerfile 的建置,您可以選擇最小化的基本映像,完全依您的喜好更新套件,並減少出現在弱點掃描的元件數量。
為何使用非 Intel 處理器建置的映像檔無法使用 Code Engine?
如果您的映像檔存在於容器登錄中,且映像檔是以非 Intel 型處理器所建置,則 Code Engine 無法執行容器映像檔。Code Engine 使用 Intel 型處理。 如果您使用 Intel 處理 (x86 處理器),則可以建置自己的映像檔。 您也可以選擇讓 Code Engine 為您處理建置程序。 如需相關資訊,請參閱 規劃建置。
做Code Engine應用程式支援WebSockets?
是的! 您可以造訪 GitHub上的 Code Engine 範例儲存庫,以找到 使用 WebSockets 的範例應用程式。
任何應用程式連線的時間上限為 10 分鐘,即使連線未閒置也一樣。 使用 Code Engine,您可以使用 timeout 值設定此連線時間。 使用 CLI,將 --timeout 選項與 app create 指令或
app update 指令搭配使用。 從主控台,您可以從 資源與擴充 標籤中設定應用程式的 Timeout 值。 對於使用 WebSockets, 的應用程式,用戶端必須在連線關閉後重新連線到應用程式。 因此,如果您的應用程式需要持續連線,請在達到
timeout 值之前建立新的連線。
做Code Engine應用程式支援gRPC?
是的! 您可以造訪 GitHub上的 Code Engine 範例儲存庫,以找到 使用 gRPC 的範例應用程式。
因為 gRPC 相依於 HTTP/2,您必須將埠名稱設為 h2c,並將埠值設為 8080,然後您的 Code Engine 應用程式可以支援 HTTP/2 資料流量。 使用 Code Engine CLI 來配置 app create 指令的 --port h2c:8080 選項,或使用 app update 指令來配置應用程式以使用 gRPC。 請參閱 使用 gRPC實作應用程式。
Code Engine 是否提供一種方法來限制對 Code Engine 專案內特定實體的存取?
否,在 Code Engine中,套用至任何 Code Engine 實體的角色僅以選取作為現行環境定義的專案為範圍。 因此,您無法控制 Code Engine 專案內個別資源的許可權。
Code Engine 是否提供已部署函數的 OpenAPI 規格?
否,Code Engine 不會為您部署的函數產生或提供 OpenAPI 規格。 有一些套件和工具可供許多程式設計語言用來從程式碼產生 OpenAPI 規格。
如何檢閱 Code Engine 服務條款?
如需最新的服務水準合約條款,請參閱 服務條款。
如何提供意見?
您對 Code Engine 的意見對我們很重要,有助於我們改善。 您可以透過多種方式提供意見:
- 點選開啟文件問題在文件頁面的末尾打開問題並提供您的評論。
- 透過 Slack 分享意見。 您可以在 #code-engine 頻道中加入討論。