Asset Compute 拡張機能のトラブルシューティング

最終更新日: 2024-01-29
  • 作成対象:
  • Intermediate
    Experienced
    Developer

以下に、AEM Assets 用のカスタム Asset compute ワーカーを開発およびデプロイする際に発生する可能性のある、一般的な問題とエラーのインデックスと、解決方法を示します。

開発

レンディションが部分的に描画された/破損した状態で返される

  • エラー:レンディションのレンダリングが不完全(画像の場合)または破損していて開くことができない。

    レンディションが部分的に描画された状態で返されます

  • 原因:レンディションがに完全に rendition.path に書き込まれることができる前に、ワーカーの renditionCallback 関数が関数が終了しています。

  • 解決策:カスタムワーカーコードを確認し、await を使用してすべての非同期の呼び出しが確実に同期されるようにします。

開発ツール

Asset Compute プロジェクトに Console.json ファイルが見つからない

  • エラー:​エラー:検証時に(…/node_modules/@adobe/asset-compute-client/lib/integrationConfiguration.js:XX:YY)非同期 setupAssetCompute に(…/node_modules/@adobe/asset-compute-devtool/src/assetComputeDevTool.js:XX:YY)必要なファイルが見つからない
  • 原因:​この console.json ファイルが Asset omputeプロジェクトのルートにありません
  • 解決策:​新しい console.json を Adobe I/O プロジェクトからダウンロードします
    1. console.adobe.io で、Asset compute プロジェクトが使用するように設定されている Adobe I/O プロジェクトを開きます
    2. 右上隅の「ダウンロード」ボタンをタップします
    3. console.json というファイル名を使用して、ダウンロードしたファイルを Asset Compute プロジェクトのルートに保存します

manifest.yml の YAML インデントが正しくない

  • エラー: YAMLException:行 X、列 Y でマッピングエントリの不正なインデント:(aio app run コマンドからの標準経由)
  • 原因: Yaml ファイルはホワイトスペースで区別されます。インデントが正しくない可能性があります。
  • 解決策:manifest.yml をレビューし、すべてのインデントが正しいことを確認します。

memorySize の上限の設定値が低すぎる

  • エラー:​ローカル開発サーバー OpenWhiskError:PUT https://adobeioruntime.net/api/v1/namespaces/xxx-xxx-xxx/actions/xxx-0.0.1/__secured_workeroverwrite=true で HTTP 400(無効なリクエスト)が返される -->「リクエストのコンテンツの形式が正しくありません:要求が失敗しました:メモリ 64 MB が許容されるしきい値の 134217728 B を下回っています」
  • 原因:manifest.yml のワーカーの memorySize の制限が、エラーメッセージでバイト単位で報告されているように、許可される最小しきい値を下回って設定されています。
  • 解決策:manifest.ymlmemorySize の制限をレビューし、いずれも許容される最小しきい値を超えていることを確認します。

private.key が見つからず、開発ツールを開始できない場合

  • エラー:​ローカル開発サーバーエラー:validatePrivateKeyFile に必要なファイルがありません…。(aio app run コマンドからの標準経由)
  • 原因:.env ファイルの ASSET_COMPUTE_PRIVATE_KEY_FILE_PATH 値で、private.key または private.key を指しておらず、現在のユーザーによって読み取り可能ではありません。
  • 解決策:.env ファイルの ASSET_COMPUTE_PRIVATE_KEY_FILE_PATH 値をレビューし、ファイルシステムの private.key の完全な絶対パスを含んでいることを確認します。

ソースファイルのドロップダウンが正しくない

Asset Compute 開発ツールが古いデータを取り込む状態に入る場合があり、そのことが最も気づかれやすいのは、「ソースファイル」ドロップダウンに間違った項目が表示されていることによります。

  • エラー:「ソースファイル」ドロップダウンに正しくない項目が表示される。
  • 原因:​キャッシュされたブラウザーの状態が古いことが原因です
  • 解決策:​ブラウザーで、ブラウザータブの「アプリケーションの状態」、ブラウザーキャッシュ、ローカルストレージ、サービスワーカーを完全にクリアします。

devToolToken クエリパラメーターがないか無効

  • エラー: Asset Compute 開発ツールでの「未認証」通知
  • 原因:devToolToken が見つからないか無効です
  • 解決策:「Asset compute 開発ツール」ブラウザーウィンドウを閉じ、aio app run コマンドによって開始された開発ツールの実行中のプロセスをすべて終了して、開発ツールを(aio app run を使用して)再起動します。

ソースファイルを削除できない

  • エラー:​開発ツール UI から追加されたソースファイルを削除する方法がない

  • 原因:​この機能は実装されていません

  • 解決策:.env で定義された資格情報を使用して、クラウドストレージプロバイダーにログインします。開発ツールで使用されている(および .env で指定されている)コンテナを特定し、ソース​フォルダーに移動して、ソース画像をすべて削除します。削除されたソースファイルが引き続きドロップダウンに表示される場合は、開発ツールの「アプリケーションの状態」でローカルにキャッシュされている可能性があるので、「ソースファイルのドロップダウンが正しくありません」にまとめられている手順を実行することが必要な場合があります。

    Microsoft Azure Blob Storage

テスト

テストの実行中にレンディションが生成されませんでした

  • エラー:​失敗:レンディションが生成されませんでした。

  • 原因: JavaScript 構文エラーなどの予期しないエラーにより、ワーカーはレンディションの生成に失敗しました。

  • 解決策:/build/test-results/test-worker/test.log でテストの実行の 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> でテスト生成ファイルを検証します。正しいことを検証し、それを期待されるレンディションファイルとして使用します。

デバッグ

デバッガーがアタッチしない

ブレークポイントが一時停止しない

  • エラー:デバッグ可能な開発ツールから Asset Compute ワーカーを実行する場合、VS Code がブレークポイントで一時停止しない。

VS Code デバッガーがアタッチされていない

  • 原因:VS Code デバッガが停止/切断されました。
  • 解決策: VS Code デバッガーを再起動し、VS Codeデバッグ出力コンソール(表示/デバッグコンソール)を見てアタッチすることを確認します。

ワーカーの実行が開始した後にVS コードデバッガーがアタッチされる

  • 原因:VS Code デバッガーは、開発ツール内で「実行」をタップする前に接続されませんでした。
  • 解決策:VS Code のデバッグコンソール(表示/デバッグコンソール)を確認し、開発ツールから Asset Compute ワーカーを再実行して、デバッガーが接続されていることを確認します。

デバッグ中にワーカーがタイムアウトする

  • エラー:デバッグコンソールレポートの「-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 のアセットにカスタムレンディションがない

  • エラー:新しいアセットと再処理されたアセットは正常に処理されましたが、カスタムレンディションが見つかりません

上位フォルダーに処理プロファイルが適用されていない

  • 原因:カスタムワーカーを使用する処理プロファイルを含むフォルダーの下にアセットが存在しません
  • 解決策:処理プロファイルをアセットの上位フォルダーに適用します

処理プロファイルが下位の処理プロファイルに置き換えられる

  • 原因:アセットは、カスタムワーカーの処理プロファイルが適用されたフォルダーの下に存在しますが、そのフォルダーとアセットの間に、顧客のワーカーを使用しない別の処理プロファイルが適用されています。
  • 解決策:2 つの処理プロファイルを組み合わせるか、紐付けを行い、中間の処理プロファイルを削除します

AEM でのアセット処理が失敗する

このページ