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 run console.log(...)
  • aio app testから、ログは /build/test-results/test-worker/test.log にプリント
    aio app test console.log(...)
  • wskdebug を使用して、ログはステートメントを VS Code デバッグコンソール(表示/デバッグコンソール)、標準出力にプリント
    wskdebug console.log(...)
  • aio app logs を使用して、ログはステートメントをアクティベーションログ出力にプリント

アタッチされたデバッガーを介したリモートデバッグ

WARNING
wskdebug との互換性を確保するには、Microsoft Visual Studio Code 1.48.0 以降を使用

wskdebug npm モジュールは、Asset Compute ワーカーへのデバッガーのアタッチをサポートしています。これには、VS Code でブレークポイントを設定し、コードを順を追って設定する機能が含まれます。

wskdebug を使用した Asset Compute ワーカーのデバッグのクリックスルー(オーディオなし)

  1. wskdebug および ngrok npm モジュールがインストールされていることを確認します

  2. Docker Desktop とサポートする Docker イメージがインストール、実行されていることを確認します

  3. 開発ツールの実行中のアクティブなインスタンスをすべて閉じます。

  4. aio app deploy を使用して最新のコードをデプロイし、デプロイ済みのアクション名([...] の間にある名前)を記録します。これは、手順 8 の launch.json の更新に使用できます。

    code language-none
    ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
    
  5. コマンド npx adobe-asset-compute devtool を使用して、Asset Compute 開発ツールの新しいインスタンスを開始します。

  6. VS Code で、左側のナビゲーションのデバッグアイコンをタップします。

    • プロンプトが表示されたら、 launch.json ファイルを作成/Node.js ​をタップして、新しい launch.json ファイルを作成します。
    • それ以外の場合は、「起動プログラム」ドロップダウンの右にある​ 歯車 ​アイコンをタップして、エディターで既存の launch.json を開きます。
  7. 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
    }
    
  8. ドロップダウンから新しい wskdebug を選択します。

  9. wskdebug ドロップダウンの左にある緑の「実行」ボタンをタップします。

  10. /actions/worker/index.js を開いて、行番号の左側をタップして、ブレークポイント 1 を追加します。手順 6 で開いた、Asset Compute 開発ツール web ブラウザーウィンドウに移動します。

  11. 実行」ボタンをタップしてワーカーを実行します。

  12. VS Code、/actions/worker/index.js に戻り、コードにアクセスします。

  13. デバッグ可能な開発ツールを終了するには、 手順 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 の特定のワークスペースで実行されたワーカーからログを取得できます。

  1. デバッグが必要なワークスペースに基づいて、ワークスペース固有の環境変数AIO_runtime_namespace および AIO_runtime_auth を介して設定されいることを確認します。

  2. コマンドラインから aio app logs を実行します。

    • ワークスペースで大量のトラフィックが発生する場合は、--limit フラグからアクティベーションログの数を増やします。
      $ aio app logs --limit=25
  3. 最新のアクティベーションログ(最大は指定された --limit)は、レビュー用のコマンド出力として返されます。

    aio app logs

トラブルシューティング

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69