DG

開發人員指導方針

背景

DG 會識別 AEM 6.5AEM as a Cloud Service 選定開發指導方針的偏離。遵循最佳實務可以改進系統的可維護性和效能。儘管其中部分的偏離可能在其他應用程式 (包括舊版 AEM) 內容中不成問題,但在 AEM as a Cloud Service 中使用時則可能會造成問題。

子類型用於識別偵測到的不同違規類型:

  • java.io.inputstream:在應用程式的程式碼中使用了 java.io.InputStream
  • maintenance.task.configuration:某種定期維護活動的設定。
  • sling.commons.scheduler:Sling Commons Scheduler API 用於已排程任務。
  • unsupported.asset.api:在應用程式程式碼中使用不受支援的 Asset Manager API。

可能影響和風險

  • java.io.inputstream

    • 使用 java.io.InputStream 串流處理二進位資料,可能會消耗記憶體資源到影響效能的程度。由於 AEM as a Cloud Service 中所用容器的記憶體有限,這個問題特別大。
  • maintenance.task.configuration

    • 以前需要明確設定的部分維護任務,現在是在 AEM as a Cloud Service 內自動設定和管理的。
    • AEM as a Cloud Service 中的維護任務設定必須移至原始檔控制系統。
  • sling.commons.scheduler

    • 因為 AEM as a Cloud Service 中無法保證執行,所以相依於背景任務 (使用 Sling Commons Scheduler) 的應用程式可能無法如預期運作。
    • 對於背景任務和長時間執行工作的 AEM as a Cloud Service 開發指導方針建議,執行為已排程任務的程式碼必須假設執行所在的例項隨時都會停機。因此程式碼必須有韌性和可恢復性。
  • unsupported.asset.api

    • 下列 AssetManager API 在 AEM as a Cloud Service 中被標記為不受支援。
      • createAssetForBinary
      • getAssetForBinary
      • removeAssetForBinary
      • createAsset

可能的解決方案

  • java.io.inputstream

    • 使用直接二進位上傳方法,即二進位直接新增至資料存放區。
    • 對於資產使用案例,請使用 aem-upload。對於其他類型的二進位資料,自訂上傳邏輯可以仿照此相同模式。
  • maintenance.task.configuration

  • sling.commons.scheduler

  • unsupported.asset.api

    • 不要再使用不受支援的 Asset Manager API,請改為使用 aem-upload
  • 請聯繫我們的 AEM 支援團隊以澄清或解決問題。

本頁內容