Sitecoreコンテンツシリアライズ
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore Content Serialization(SCS)は、テンプレート、レンダリング、レイアウト、設定などの構造変更をSitecore AIのアプリケーションコードと同期させるために開発者が主に使用するツールです。
Sitecore AIでは、すべてがアイテムです。開発者がテンプレートや設定項目に依存するコードを変更する場合、それらの項目はバージョン設定され、コードと一緒にデプロイされなければなりません。
シリアライズの役割
シリアライズはSitecoreAIのアイテムを、その構造やフィールド値を表すYAMLファイルに変換します。これらのYAMLファイルは通常、ソース管理のもとでプロジェクトリポジトリにディスクに保存されます。
SCSでは、以下のことができます:
-
SitecoreAIからディスクにアイテムを引き出し、YAML表現を作成または更新します。
-
ディスクからSitecoreAIへアイテムをプッシュし、ソース管理に保存された定義を適用します。
これは以下間での双方向同期です:
-
SitecoreAI環境
-
あなたの地元のプロジェクト
-
あなたのソース管理リポジトリ
例えば、開発者がテンプレートを更新して構造的項目を変更すると、その項目はYAMLファイルとしてディスクに引き出されます。そのファイルはコードベースの一部となり、関連するコード変更とともにレビュー、バージョン管理、デプロイが可能です。
シリアライズされたアイテムをプッシュすることで、SitecoreAI環境がソース管理に保存されたアイテム定義を反映していることを保証します。
なぜ開発者がシリアライズを使うのか
他のシステムではシリアライズはしばしばコンテンツ転送に関連付けられますが、SitecoreAIではより広い目的を果たします。
シリアライズは主に以下の目的で使われます:
-
構造的な項目の変更(テンプレート、レイアウト、レンダリング、プレースホルダー設定)を同期させます。
-
コードとアイテム定義は一緒にバージョン管理してください。
-
開発者チームが一貫して作業できるようにすること。
-
展開中、環境が整合性を保つこと。
シリアライズなし:
-
ある環境で行われたテンプレートの変更が、別の環境では存在しない場合があります。
-
コードは欠けているフィールドやテンプレートに依存しているかもしれません。
-
チームはお互いの構造変更を上書きし合うことができます。
シリアライズは、コードと同様にアイテム定義をバージョン管理されたアーティファクトに変換します。
シリアライズが保証するもの
コードを変更し、コードが依存するテンプレートも変更する場合:
-
シリアライズは、両方の変更が一緒に移動するようにします。
-
コードをデプロイすれば、テンプレートの変更も一緒に行われます。
-
もし他の開発者が最新のコードを引っ張れば、その開発者もテンプレート構造を手に入れます。
-
開発、テスト、本番のすべての環境において、構造は一貫しています。
シリアライゼーションがワークフローにどのように位置づけられるか

シリアライズは、シリアライズされたアイテムを管理するために使われるリポジトリ内の設定ファイルによって制御されます(例:Sitecore AIをローカルで実行する際のバックエンドソリューションなど)。
-
sitecore.json (プロジェクトレベルの構成)
-
*.module.jsonファイル(モジュールレベルのアイテム定義)
これらのファイルは以下を定義しています:
-
どの項目が含まれているか
-
スコープの定義
典型的な現像液フロー
-
Modify a structural item in SitecoreAI
例えば、テンプレートに新しいフィールドを追加するとします。
-
Pull the item to disk
更新されたテンプレートはローカルプロジェクト内のYAMLファイルとして保存されます。
-
Commit the YAML file to source control
テンプレート構造は、それに依存するコードとともにバージョン管理されます。
-
Apply code and serialized item changes to other environments
コードとアイテムの変更はSitecore AIで同時に適用されます。
この流れは以下を保証します:
-
コードとアイテムの構造は一貫性を保ちます。
-
開発者も同じ定義に基づいています。
SCSは、モジュールごとに定められたシリアライズパスのもとで、プロジェクト内のYAMLファイルとしてシリアライズされたアイテムを保存します。これらのファイルはソース管理にコミットされ、デプロイプロセスの一部となります。
構成プロパティの完全なリストについては、Sitecore Content Serialization Configuration Referenceを参照してください。
手動および自動同期
アイテムの同期方法は2通りあります:
マニュアル:
Sitecore CLIを使えば、以下のことができます:
-
Sitecore AIからアイテムを引き出す
-
アイテムをSitecore AIにプッシュしてください
自動(ウォッチモード):
Sitecore CLIでウォッチコマンドを有効にし、変更を監視し、開発中に更新された項目を自動的にディスクに引き寄せることができます。
Sitecore CLIはWindows、macOS、Linuxで動作します。
SitecoreAI環境でのSCS使用について
SCS Content Management APIを介してSitecoreAIに接続し、以下をサポートします:
-
SitecoreAIからディスクへのアイテム取得
-
SitecoreAIへのシリアライズされたYAMLファイルをプッシュする
SCSは、どの項目がシリアライズされ同期されているかを定義します。
管理型SitecoreAI環境でのシリアライズアイテムの展開方法は、ビルド構成(例:Accelerateシナリオのxmcloud.build.json )で別途設定されます。
デプロイメントオプションには、Items as Resources(IAR)などがあり、これは通常開発者が制御する構成のためにファイルシステムにデプロイされるアイテムです。
シリアライズは真実の出典を定義します。ビルド構成は、その真実のソースをどのように展開時に適用するかを定義します。
シリアライズが有用なその他の文脈
主に開発者同期に使われますが、シリアライゼーションは以下にも利用できます:
-
バックアップ構造物
-
環境間でのアイテム移動
-
チーム間の構成共有
-
インスタンス間で特定の構造アイテムツリーをプロモートする
しかし、個々のメディア資産を大規模に同期させることを目的としたものではありません。
連載されるべきもの
一般的な原則として:
-
コードが依存する開発者が作成または修正したアイテムをシリアライズします。
-
デフォルトのSitecore AIインストールで提供されている基本アイテムは、意図的にカスタマイズしていない限りシリアライズしないでください。
シリアライズが必要な典型的なアイテムには以下が含まれます:
-
テンプレートとブランチテンプレート
-
レンダリングアイテム
-
レイアウトの定義
-
プレースホルダー設定
-
サイトルートアイテム
-
プロジェクトフォルダー下の構造構成