1. 程式人生 > 其它 >SAP Commerce Cloud 構建過程中的資料夾可寫入性問題分析

SAP Commerce Cloud 構建過程中的資料夾可寫入性問題分析

在構建時,SAP Commerce Cloud 標準的檔案目錄是可寫的,因為構建過程本身需要修改這些檔案目錄。但是不推薦客戶的 Customization 裡也對這些 SAP Artifacts 做修改,因為這違反了開閉原則,可能會引起潛在的問題。SAP 推薦客戶使用 Commerce Cloud 自帶的 Extension 機制來進行定製化。

不要在不受構建過程管理的任意目錄中寫入任何內容,即使這些目錄從技術上來說是處於可寫狀態的,也不要這樣做。這是因為由於優化或安全改進,這些不受構建過程管理的目錄,將來可能會重新變成不可寫入狀態,從而導致構建過程失敗。

在構建過程中,預設認為 Github 倉庫和 Docker Registry 都是處於可訪問狀態。但是無法保證構建過程具有不受限制的網際網路訪問許可權。 在構建過程中不要使用任何外部服務,因為出於優化或安全改進的目的,網路策略可能隨時更改。 構建過程能夠控制的唯一資源就是專案 Git 儲存庫。

Commerce Cloud 構建過程不為第三方 Artifacts 提供任何受信任的儲存庫。 預設情況下,它使用公開可用的儲存庫。

以下是儲存庫使用情況的細分:

  • 如果在 extensioninfo.xml 中啟用,核心定製使用 Maven Central 進行分發
  • JavaScript Storefront 使用 yarn 工具配置的預設登錄檔

[圖片]

對於 yarn 和 npm - 在開發過程中解決依賴關係並將 yarn.lock.json 或 package-lock.json 檔案提交到程式碼儲存庫中。這樣做的目的是,對於相同的輸入,即使重複構建,也能得到相同的輸出。

屬性檔案是包含用於配置管理的鍵值對的標準 Java 檔案。下面是一個例子:

可以使用三種不同的方式為 SAP Commerce Cloud 和 Data Hub 設定屬性:

  • 在 Cloud Portal 中將它們設定為 Service Properties

  • 使用服務特定清單即 Service specific Properties

  • 準備屬性檔案,將它們放在儲存庫中,並使用 useConfig 清單元件來引用它們。