Asset Compute 拡張機能のトラブルシューティング
以下に、AEM Assets 用のカスタム Asset compute ワーカーを開発およびデプロイする際に発生する可能性のある、一般的な問題とエラーのインデックスと、解決方法を示します。
開発 develop
レンディションが部分的に描画された/破損した状態で返される rendition-returned-partially-drawn-or-corrupt
-
エラー:レンディションのレンダリングが不完全(画像の場合)または破損していて開くことができない。
-
原因:レンディションがに完全に
rendition.path
に書き込まれることができる前に、ワーカーのrenditionCallback
関数が関数が終了しています。 -
解決策:カスタムワーカーコードを確認し、
await
を使用してすべての非同期の呼び出しが確実に同期されるようにします。
開発ツール development-tool
Asset Compute プロジェクトに Console.json ファイルが見つからない missing-console-json
-
エラー: エラー:非同期の setupAssetCompute(
.../node_modules/@adobe/asset-compute-devtool/src/assetComputeDevTool.js:XX:YY
)の検証時に必要なファイル(.../node_modules/@adobe/asset-compute-client/lib/integrationConfiguration.js:XX:YY
)がありません -
原因: この
console.json
ファイルが Asset omputeプロジェクトのルートにありません -
解決策: 新しい
console.json
を Adobe I/O プロジェクトからダウンロードします- console.adobe.io で、Asset compute プロジェクトが使用するように設定されている Adobe I/O プロジェクトを開きます
- 右上隅の「ダウンロード」ボタンをタップします
console.json
というファイル名を使用して、ダウンロードしたファイルを Asset Compute プロジェクトのルートに保存します
manifest.yml の YAML インデントが正しくない incorrect-yaml-indentation
- エラー: YAMLException:行 X、列 Y でマッピングエントリの不正なインデント:(
aio app run
コマンドからの標準経由) - 原因: Yaml ファイルはホワイトスペースで区別されます。インデントが正しくない可能性があります。
- 解決策:
manifest.yml
をレビューし、すべてのインデントが正しいことを確認します。
memorySize の上限の設定値が低すぎる memorysize-limit-is-set-too-low
- エラー: ローカル開発サーバー 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.yml
のmemorySize
の制限をレビューし、いずれも許容される最小しきい値を超えていることを確認します。
private.key が見つからず、開発ツールを開始できない場合 missing-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
の完全な絶対パスを含んでいることを確認します。
ソースファイルのドロップダウンが正しくない source-files-dropdown-incorrect
Asset Compute 開発ツールが古いデータを取り込む状態に入る場合があり、そのことが最も気づかれやすいのは、「ソースファイル」ドロップダウンに間違った項目が表示されていることによります。
- エラー:「ソースファイル」ドロップダウンに正しくない項目が表示される。
- 原因: キャッシュされたブラウザーの状態が古いことが原因です
- 解決策: ブラウザーで、ブラウザータブの「アプリケーションの状態」、ブラウザーキャッシュ、ローカルストレージ、サービスワーカーを完全にクリアします。
devToolToken クエリパラメーターがないか無効 missing-or-invalid-devtooltoken-query-parameter
- エラー: Asset Compute 開発ツールでの「未認証」通知
- 原因:
devToolToken
が見つからないか無効です - 解決策:「Asset compute 開発ツール」ブラウザーウィンドウを閉じ、
aio app run
コマンドによって開始された開発ツールの実行中のプロセスをすべて終了して、開発ツールを(aio app run
を使用して)再起動します。
ソースファイルを削除できない unable-to-remove-source-files
-
エラー: 開発ツール UI から追加されたソースファイルを削除する方法がない
-
原因: この機能は実装されていません
-
解決策:
.env
で定義された資格情報を使用して、クラウドストレージプロバイダーにログインします。開発ツールで使用されている(および.env
で指定されている)コンテナを特定し、ソース フォルダーに移動して、ソース画像をすべて削除します。削除されたソースファイルが引き続きドロップダウンに表示される場合は、開発ツールの「アプリケーションの状態」でローカルにキャッシュされている可能性があるので、「ソースファイルのドロップダウンが正しくありません」にまとめられている手順を実行することが必要な場合があります。
テスト test
テストの実行中にレンディションが生成されませんでした test-no-rendition-generated
-
エラー: 失敗:レンディションが生成されませんでした。
-
原因: JavaScript 構文エラーなどの予期しないエラーにより、ワーカーはレンディションの生成に失敗しました。
-
解決策:
/build/test-results/test-worker/test.log
でテストの実行のtest.log
を確認します。このファイル内で、失敗したテストケースに対応するセクションを探し、エラーを確認します。
テストで、間違ったレンディションが生成され、テストが失敗する tests-generates-incorrect-rendition
-
エラー: 失敗:レンディション「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>
でテスト生成ファイルを検証します。正しいことを検証し、それを期待されるレンディションファイルとして使用します。
デバッグ
デバッガーがアタッチしない debugger-does-not-attach
- エラー:Experience Platform Launch の処理中にエラーが発生しました:エラー:次の場所でデバッグターゲットに接続できませんでした…
- 原因:Docker デスクトップがローカルシステムで動作していません。VS Code Debug コンソール(表示/デバッグコンソール)を確認し、このエラーが報告されていることを確認します。
- 解像度:Docker デスクトップを開始して、必要な Docker イメージがインストールされていることを確認します。
ブレークポイントが一時停止しない breakpoints-no-pausing
- エラー:デバッグ可能な開発ツールから Asset Compute ワーカーを実行する場合、VS Code がブレークポイントで一時停止しない。
VS Code デバッガーがアタッチされていない vs-code-debugger-not-attached
- 原因:VS Code デバッガが停止/切断されました。
- 解決策: VS Code デバッガーを再起動し、VS Codeデバッグ出力コンソール(表示/デバッグコンソール)を見てアタッチすることを確認します。
ワーカーの実行が開始した後にVS コードデバッガーがアタッチされる vs-code-debugger-attached-after-worker-execution-began
- 原因:VS Code デバッガーは、開発ツール内で「実行」をタップする前に接続されませんでした。
- 解決策:VS Code のデバッグコンソール(表示/デバッグコンソール)を確認し、開発ツールから Asset Compute ワーカーを再実行して、デバッガーが接続されていることを確認します。
デバッグ中にワーカーがタイムアウトする worker-times-out-while-debugging
- エラー:デバッグコンソールレポートの「-XXX ミリ秒でアクションがタイムアウトします」、または Asset Compute 開発ツールのレンディションプレビューが無期限にスピンする、または、
- 原因: manifest.yml で定義されたワーカーのタイムアウトが デバッグ中に超過しています。
- 解決策:ワーカーのタイムアウトを一時的に manifest.yml で増加する、またはデバッグアクティビティを高速化します。
デバッガープロセスを終了できない cannot-terminate-debugger-process
-
エラー::コマンドラインの
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 以降に更新しますcode language-none $ aio update
デプロイ deploy
AEM のアセットにカスタムレンディションがない custom-rendition-missing-from-asset
- エラー:新しいアセットと再処理されたアセットは正常に処理されましたが、カスタムレンディションが見つかりません
上位フォルダーに処理プロファイルが適用されていない
- 原因:カスタムワーカーを使用する処理プロファイルを含むフォルダーの下にアセットが存在しません
- 解決策:処理プロファイルをアセットの上位フォルダーに適用します
処理プロファイルが下位の処理プロファイルに置き換えられる
- 原因:アセットは、カスタムワーカーの処理プロファイルが適用されたフォルダーの下に存在しますが、そのフォルダーとアセットの間に、顧客のワーカーを使用しない別の処理プロファイルが適用されています。
- 解決策:2 つの処理プロファイルを組み合わせるか、紐付けを行い、中間の処理プロファイルを削除します
AEM でのアセット処理が失敗する asset-processing-fails
- エラー:アセットに「アセット処理失敗」バッジが表示される
- 原因:カスタムワーカーの実行中にエラーが発生しました
- 解決策:
aio app logs
を使用した Adobe I/O Runtime アクティベーションのデバッグ の指示に従います。