1. Visual Studio Code を使用してスクリプトをデバッグする方法

Visual Studio Code を使用してスクリプトをデバッグする方法

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

前提条件

作業フォルダの初期化

まず、Visual Studio Code で Intellisense とスクリプトのデバッグをサポートするために必要なファイルを使用して、作業フォルダーを初期化します。作業フォルダには、任意のフォルダを選択することができます。

次のコマンドを実行します。

ch-cli scripting initialize -f <your-folder-path>

初期化後は、作業フォルダに次のファイルが含まれます。

[working folder]
├── omnisharp.json
├── references.json
├── .vscode
   ├── extensions.json
   ├── launch.json
   ├── tasks.json
├── lib
   ├── Newtonsoft.Json.dll
   ├── Remotion.Linq.dll
   ├── Stylelabs.M.Scripting.Types.dll
   ├── Stylelabs.M.Sdk.dll
   ├── Stylelabs.M.Sdk.Fluent.dll
   ├── Stylelabs.M.Sdk.ScriptClient.dll
   └── Stylelabs.Scripting.dll
├── references
   ├── Action.csx
   ├── Base.csx
   ├── MediaProcessing.csx
   ├── Shared.csx
   ├── UserPostRegistration.csx
   ├── UserPreRegistration.csx
   ├── UserSignIn.csx 

Pull スクリプト

デバッグしたいスクリプトを Content Hub から作業ディレクトリにプルします。

次のコマンドを実行します。

ch-cli scripting pull -n <your-script-name> -f <your-folder-path>

デバッグの開始

  1. VS Codeで作業ディレクトリを開きます。

  2. VS Codeの横にあるアクティビティ バーで [実行] のアイコンを選択します。キーボード ショートカットの Ctrl+Shift+D を使用することもできます。

  1. [実行] ビューの [構成] ドロップダウンを使用して「デバッグ スクリプト」という名前の設定を選択します。

  1. 起動設定とブレークポイントを設定したら、F5 でデバッグ セッションを開始します。

  2. Visual Studio Code により、プロセスにアタッチするように求められます。CLI コマンドの端末出力に表示されるプロセス ID を選択します。

  1. Content Hub インスタンスでスクリプトをトリガーし、デバッグを開始します。

Visual Studio Code の組み込みデバッガーについては、こちらを参照してください。

注意

スクリプトのデバッグ セッションを開始すると、デバッグ セッションが進行中であることを示すためにエンティティ定義のロック エンティティ M.ScriptDebugLock が作成されます。スクリプトの実行が完了するとロックが再び解除され、Sitecore Content Hub 自体による次の実行処理が可能になります。

プロセスの終了やネットワーク、接続の問題など、ローカル マシンでの特定のイベントによって、ロック エンティティが適切にクリーン アップされないことがあります。その場合、エンティティを手動で見つけて削除するか、次のコマンドを使用できます。

ch-cli scripting cancel-debug -n <your-script-name>

既知の制限

グローバル変数の検査

スクリプトをデバッグすると、グローバル変数 ContextMClient が設定されますが、Roslyn の制限により、現在、Visual Studio Code の変数またはウォッチ セクションのこれらの変数を検査することはできません。

検査が必要な場合の基本的な回避策は、必要な変数を再割り当てし、スクリプト全体で使用することです。

var context = Context;
var client = MClient;

client.Logger.Warn("Hello world!");

スクリプト コンテキスト

アクション スクリプトのデバッグ時に、Context.ChangeTracker はサポートされていません。

この記事を改善するための提案がある場合は、 お知らせください!