疑難排解Asset compute擴充性

上次更新: 2024-01-26
  • 建立對象:
  • Intermediate
    Experienced
    Developer

以下是為AEM Assets開發和部署自訂Asset compute背景工作時可能遇到的常見問題和錯誤的索引,以及解決方法。

開發

轉譯已傳回部分繪製/損毀

  • 錯誤:轉譯未完全轉譯(影像時)或已損毀,無法開啟。

    已傳回部分繪製的轉譯

  • 原因:工作者的 renditionCallback 函式即將結束,才能將轉譯完全寫入 rendition.path.

  • 解析度:檢閱自訂背景工作程式碼,並確保所有非同步呼叫均透過進行同步 await.

開發工具

asset compute專案中缺少Console.json檔案

  • 錯誤: 錯誤:驗證時遺失必要檔案(…/node_modules/@adobe/asset-compute-client/lib/integrationConfiguration.js:XX:YY)於async setupAssetCompute (…/node_modules/@adobe/asset-compute-devtool/src/assetComputeDevTool.js:XX:YY)
  • 原因:console.json asset compute專案的根目錄中缺少檔案
  • 解析度: 下載新的 console.json 形成您的Adobe I/O專案
    1. 在console.adobe.io中,開啟Asset compute專案設定要使用的Adobe I/O專案
    2. 點選 下載 右上角的按鈕
    3. 使用檔案名稱將下載的檔案儲存至Asset compute專案的根目錄 console.json

manifest.yml中的YAML縮排不正確

  • 錯誤: YAMLException:行X、欄Y:(透過標準輸出自)的對映專案縮排錯誤 aio app run 命令)
  • 原因: Yaml檔案的空格很敏感,您的縮排可能不正確。
  • 解析度: 檢閱您的 manifest.yml 並確保所有縮排都正確無誤。

memorySize限制設定得太低

  • 錯誤: 本機開發伺服器OpenWiskError:PUThttps://adobeioruntime.net/api/v1/namespaces/xxx-xxx-xxx/actions/xxx-0.0.1/__secured_workeroverwrite=true傳回HTTP 400 (錯誤請求) —> 「請求內容格式錯誤:需求失敗:記憶體64 MB低於允許的134217728 B臨界值」
  • 原因: A memorySize 中背景工作者的限制 manifest.yml 設定為低於錯誤訊息所報告的最小允許臨界值(位元組)。
  • 解析度: 檢閱 memorySize 中的限制 manifest.yml 並確保它們都大於允許的最小臨界值。

開發工具無法啟動,因為遺失private.key

  • 錯誤: 本機Dev ServerError:在validatePrivateKeyFile遺漏必要的檔案… (透過標準輸出,從 aio app run 命令)
  • 原因:ASSET_COMPUTE_PRIVATE_KEY_FILE_PATH 中的值 .env 檔案,未指向 private.keyprivate.key 目前使用者無法讀取。
  • 解析度: 檢閱 ASSET_COMPUTE_PRIVATE_KEY_FILE_PATH 中的值 .env ,並確保其包含 private.key 檔案系統上的。

來源檔案下拉式清單不正確

「Asset compute開發工具」可能會進入提取過時資料的狀態,在 來源檔案 顯示不正確專案的下拉式清單。

  • 錯誤: 來源檔案下拉式清單顯示不正確的專案。
  • 原因: 過時的快取瀏覽器狀態導致
  • 解析度: 在瀏覽器中完全清除瀏覽器標籤的「應用程式狀態」、瀏覽器快取、本機儲存空間和Service Worker。

devToolToken查詢引數遺失或無效

  • 錯誤: asset compute開發工具中的「未獲授權」通知
  • 原因: devToolToken 遺失或無效
  • 解析度: 關閉「Asset compute開發工具」瀏覽器視窗,終止透過啟動的任何執行中的「開發工具」程式。 aio app run 指令,然後重新啟動開發工具(使用 aio app run)。

無法移除來源檔案

  • 錯誤: 無法從開發工具UI中移除新增的源檔案

  • 原因: 此功能尚未實作

  • 解析度: 使用中定義的憑證登入您的雲端儲存空間提供者 .env. 找出開發工具所使用的容器(也指定於 .env),導覽至 來源 資料夾,並刪除任何來源影像。 您可能需要執行中概述的步驟 來源檔案下拉式清單不正確 如果刪除的來源檔案繼續顯示在下拉式清單中,因為這些檔案可能在開發工具「應用程式狀態」本機快取。

    Microsoft Azure Blob儲存體

測試

測試執行期間未產生轉譯

  • 錯誤: 失敗:未產生轉譯。

  • 原因: 背景工作無法產生轉譯,因為發生非預期的錯誤,例如JavaScript語法錯誤。

  • 解析度: 檢閱測試執行的 test.log/build/test-results/test-worker/test.log. 找到此檔案中對應失敗測試案例的區段,並檢閱錯誤。

    疑難排解 — 未產生轉譯

測試產生錯誤的轉譯,導致測試失敗

  • 錯誤: 失敗:轉譯'rendition.xxx'未如預期。
  • 原因: 背景工作會輸出與不相同的轉譯 rendition.<extension> 於測試案例中提供。
    • 如果預期 rendition.<extension> 檔案的建立方式與測試案例中本機產生的轉譯不完全相同,測試可能會失敗,因為位元之間可能有一些差異。 例如,如果Asset compute背景工作使用API變更對比,並且預期結果藉由調整Adobe Photoshop CC中的對比而建立,則檔案可能顯示相同,但位元中的細微變化可能不同。
  • 解析度: 導覽至,檢閱測試的轉譯輸出 /build/test-worker/<worker-name>/<test-run-timestamp>/<test-case>/rendition.<extension>,並和測試案例中的預期轉譯檔案進行比較。 若要建立完全相同的預期資產,您可以:
    • 使用開發工具來產生轉譯、驗證是否正確,並當做預期的轉譯檔案使用
    • 或者,驗證測試產生的檔案,位於 /build/test-worker/<worker-name>/<test-run-timestamp>/<test-case>/rendition.<extension>,驗證是否正確,並當做預期的轉譯檔案使用

偵錯

偵錯工具未附加

  • 錯誤:處理啟動時發生錯誤:錯誤:無法連線到偵錯目標,於……
  • 原因:Docker Desktop未在本機系統上執行。 檢閱VS程式碼偵錯主控台(「檢視>偵錯主控台」)以確認此錯誤,加以確認。
  • 解析度:開始 Docker案頭並確認已安裝必要的Docker映像.

中斷點未暫停

  • 錯誤:從可偵錯的開發工具執行Asset compute背景工作時,VS Code不會暫停在中斷點。

未附加VS程式碼偵錯工具

  • 原因: VS程式碼偵錯工具已停止/中斷連線。
  • 解析度: 重新啟動VS程式碼偵錯工具,並透過觀看VS程式碼偵錯輸出主控台(「檢視>偵錯主控台」)來驗證其附加

背景工作執行開始後附加的VS程式碼偵錯工具

  • 原因: VS程式碼偵錯工具在點選前並未附加 執行 在開發工具中。
  • 解析度: 檢閱VS Code的偵錯主控台(「檢視>偵錯主控台」),然後從開發工具重新執行Asset compute背景工作,藉此確保偵錯工具已附加。

Worker在偵錯時逾時

  • 錯誤:除錯主控台報告「動作將在 — XXX毫秒內逾時」或 asset compute開發工具的 轉譯預覽會無限期旋轉或
  • 原因:中定義的背景工作逾時 manifest.yml 在偵錯期間超過。
  • 解析度:在「 」中臨時增加背景工作的逾時 manifest.yml 或加速偵錯活動。

無法終止偵錯工具程式

  • 錯誤Ctrl-C 在命令列上不會終止偵錯工具處理序(npx adobe-asset-compute devtool)。

  • 原因:中的錯誤 @adobe/aio-cli-plugin-asset-compute 1.3.x,結果 Ctrl-C 未被識別為終止命令。

  • 解析度:更新 @adobe/aio-cli-plugin-asset-compute 至1.4.1+版

    $ aio update
    

    疑難排解 — aio更新

部署

AEM資產中缺少自訂轉譯

  • 錯誤: 新資產和重新處理資產程式成功,但缺少自訂轉譯

處理設定檔未套用至上級資料夾

  • 原因: 該資產不存在於具有使用自訂背景工作程式的處理設定檔的資料夾下
  • 解析度: 將處理設定檔套用至資產的上階資料夾

由較低層處理設定檔取代的處理設定檔

  • 原因: 資產存在於已套用自訂背景工作處理設定檔的資料夾下方,但已在該資料夾與資產之間套用不使用客戶背景工作的不同處理設定檔。
  • 解析度: 合併或以其他方式協調兩個處理設定檔,並移除中繼處理設定檔

AEM中的資產處理失敗

  • 錯誤: 資產上顯示的資產處理失敗徽章
  • 原因: 執行自訂背景工作時發生錯誤
  • 解析度: 請依照以下說明操作: 偵錯Adobe I/O Runtime啟用 使用 aio app logs.

本頁內容