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)は、レビュー用のコマンド出力として返されます。