Asset Compute ワーカーのデバッグ
Asset Compute ワーカーは、単純なデバッグログステートメント、リモートデバッガーとして添付された VS Code、AEM as a Cloud Service から開始された Adobe I/O Runtime でのアクティベーションログの取り込みなど、様々な方法でデバッグできます。
ログ
Asset Compute ワーカーのデバッグで最も基本的な形式は、ワーカーコードで従来の console.log(..)
ステートメントを使用することです。console
JavaScript オブジェクトは暗黙的なグローバルオブジェクトであり、すべてのコンテキストに常に存在するので、読み込む必要はありません。
次のログステートメントは、Asset Compute ワーカーの実行方法に応じてレビューで様々に使用できます。
aio app run
から、ログは標準出力と開発ツールのアクティベーションログにプリント
aio app test
から、ログは/build/test-results/test-worker/test.log
にプリント
wskdebug
を使用して、ログはステートメントを VS Code デバッグコンソール(表示/デバッグコンソール)、標準出力にプリント
aio app logs
を使用して、ログはステートメントをアクティベーションログ出力にプリント
アタッチされたデバッガーを介したリモートデバッグ
wskdebug npm モジュールは、Asset Compute ワーカーへのデバッガーのアタッチをサポートしています。これには、VS Code でブレークポイントを設定し、コードを順を追って設定する機能が含まれます。
wskdebug を使用した Asset Compute ワーカーのデバッグのクリックスルー(オーディオなし)
-
Docker Desktop とサポートする Docker イメージがインストール、実行されていることを確認します
-
開発ツールの実行中のアクティブなインスタンスをすべて閉じます。
-
aio app deploy
を使用して最新のコードをデプロイし、デプロイ済みのアクション名([...]
の間にある名前)を記録します。これは、手順 8 のlaunch.json
の更新に使用できます。code language-none ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
-
コマンド
npx adobe-asset-compute devtool
を使用して、Asset Compute 開発ツールの新しいインスタンスを開始します。 -
VS Code で、左側のナビゲーションのデバッグアイコンをタップします。
- プロンプトが表示されたら、 launch.json ファイルを作成/Node.js をタップして、新しい
launch.json
ファイルを作成します。 - それ以外の場合は、「起動プログラム」ドロップダウンの右にある 歯車 アイコンをタップして、エディターで既存の
launch.json
を開きます。
- プロンプトが表示されたら、 launch.json ファイルを作成/Node.js をタップして、新しい
-
configurations
配列に次の JSON オブジェクト設定を追加します。code language-json { "type": "pwa-node", "request": "launch", "name": "wskdebug", "attachSimplePort": 0, "runtimeExecutable": "wskdebug", "args": [ "wkndAemAssetCompute-0.0.1/__secured_worker", // Version must match your Asset Compute worker's version "${workspaceFolder}/actions/worker/index.js", // Points to your worker "-l", "--ngrok" ], "localRoot": "${workspaceFolder}", "remoteRoot": "/code", "outputCapture": "std", "timeout": 30000 }
-
ドロップダウンから新しい wskdebug を選択します。
-
wskdebug ドロップダウンの左にある緑の「実行」ボタンをタップします。
-
/actions/worker/index.js
を開いて、行番号の左側をタップして、ブレークポイント 1 を追加します。手順 6 で開いた、Asset Compute 開発ツール web ブラウザーウィンドウに移動します。 -
「実行」ボタンをタップしてワーカーを実行します。
-
VS Code、
/actions/worker/index.js
に戻り、コードにアクセスします。 -
デバッグ可能な開発ツールを終了するには、 手順 6 で
npx adobe-asset-compute devtool
コマンドを実行したターミナルでCtrl-C
をタップします。
Adobe I/O Runtime からのログへのアクセス aio-app-logs
Adobe I/O Runtime で直接呼び出すことで、AEM as a Cloud Service は、処理プロファイルを介して Asset Compute ワーカーを活用します。これらの呼び出しはローカル開発を伴わないので、Asset Compute 開発ツールや wskdebug などのローカルツールを使用して実行をデバッグすることはできません。 代わりに、Adobe I/O CLI を使用して、Adobe I/O Runtime の特定のワークスペースで実行されたワーカーからログを取得できます。
-
デバッグが必要なワークスペースに基づいて、ワークスペース固有の環境変数が
AIO_runtime_namespace
およびAIO_runtime_auth
を介して設定されいることを確認します。 -
コマンドラインから
aio app logs
を実行します。- ワークスペースで大量のトラフィックが発生する場合は、
--limit
フラグからアクティベーションログの数を増やします。$ aio app logs --limit=25
- ワークスペースで大量のトラフィックが発生する場合は、
-
最新のアクティベーションログ(最大は指定された
--limit
)は、レビュー用のコマンド出力として返されます。