依存関係と出版
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
SitecoreAIプロジェクト内の依存関係の数、それらがどのようにリンクされ、依存関係の設定方法が、公開プロセス、特に完了までの時間に大きな影響を与えます。
出版の文脈における「依存」とは何か
多くのアイテムは他のアイテムに依存して正しく機能します。これらの関係は依存関係と呼ばれます。これらの依存関係は、公開時にどの追加項目を公開作業に含めるべきかを決定するために使われます。
依存関係は、あるアイテムが他のアイテムの公開出力に寄与する場合に存在します。例えば、ページがデータソースのアイテムを使ってコンテンツを提供したり、設定やレイアウト、レンダリング時に使用されたコンテンツを提供する他のアイテムを参照したりすることがあります。公開はこれらの関係性を考慮し、必要なすべてのコンテンツがターゲット環境で利用可能であることを確認できます。
アイテムがEdgeに公開されると、その依存関係が計算されます。一部の項目には多数の依存関係が含まれていることがあります。例えば、単純なページアイテムは含まれるすべてのデータソースに依存しています。もう一つの例はテンプレート項目です。テンプレートから継承されたサイト内のすべてのアイテムはテンプレートに依存しています。テンプレートが変更された場合、その依存するすべての項目は再公開する必要があります。
ページレイアウトで使用すると依存関係を生み出すコンポーネントもあります:
-
Partial designs - 部分的なデザインを使用する任意のページは、その依存ページとなります。
-
Publishing groups - 出版グループ内のすべての項目が互いに依存関係にあること。
依存関係の計算と解決
アイテムを公開すると、システムはEdgeとマスターデータベースにクエリし、そのアイテムに依存している他のすべてのアイテムを見つけてパブリッシングパイプラインに追加します。これらのアイテムが公開されているため、新しいアイテムに依存するすべてのアイテムも公開されます。スマートパブリッシングを使用している場合、依存関係として特定されたアイテムは、リビジョンIDが変更されている場合にのみパブリッシュに含まれます。再公開する場合は、変更されていなくてもアイテムとそのすべての依存関係は公開されます。このプロセスは、新しい公開可能なアイテムが見つからなくなるまで繰り返されます。
依存関係はアイテムレベルで計算されるため、どの変更がアイテムを公開させるかを特定することはできません。例えば、ナビゲーションでページのデータソース項目を変更することがあります。そのページはデータソースアイテムに依存し、ナビゲーションコンポーネントによってレンダリングされるため、スナップショットパブリッシングを使う場合はナビゲーションコンポーネントを含むページは再公開されます。しかし、Edge Runtime publishingを使用している場合は、ページがこのデータソースへの参照があるため再公開は不要です。
ExperienceEdge.ComputeContentDependencies設定は、公開プロセス中にサポートされているリンクおよびリストフィールドタイプで参照されるアイテムの依存関係が計算されるかどうかを制御します。この設定はデフォルトで無効化されています。有効化すると、参照されたアイテムは依存関係として保存されるため、変更された参照項目を公開すると依存項目も再公開できます。この設定を有効または無効にした後は、サイトを再公開し、Experience Edge内のすべてのアイテムの依存関係データを再計算する必要があります。この設定は環境変数(Sitecore_ExperienceEdge_dot_ComputeContentDependencies)を使って設定することも可能です。
Experience Edge Connectorは、公開時にSitecoreアイテム間の依存関係を2段階で計算します。
-
計算フェーズ — アイテムが公開されると、依存関係メタデータがそのアイテムのエンティティメタデータ(Edgeまたはメタデータプロバイダーに保存されます)に書き込まれます。これはアイテムが依存する内容を記録します。
-
解決フェーズ — 公開時に、保存されたメタデータを逆にクエリし、公開対象のアイテムに依存するすべてのアイテムを見つけます。これらの依存項目は公開マニフェストに追加されます。
これにより双方向の依存グラフが作成されます。計算フェーズは「アイテムAはテンプレートXに依存している」と書き、解決フェーズはメタデータを検索して「どの項目がテンプレートXに依存しているか?」と答えます。
依存関係の深さ
依存関係は複数のレベルで存在し得ます。一部の依存関係は直接参照であり、あるアイテムが別のアイテムを直接参照します。他の依存関係は多層参照で、アイテムが別のアイテムを参照し、そのアイテムがさらに他の項目を参照する形です。パブリッシングはこれらの関係をたどり、パブリッシング操作中に考慮すべき関連項目を特定できます。
パブリッシングが依存関係を評価する際には、これらの関係を経由して関連する項目を特定できます。関係レベルが増えるにつれて依存チェーンはより深くなります。これらの依存チェーンの公開動作は、使用される公開オプションや設定によって影響を受けることがあります。
出版設定が依存行動に与える影響
依存関係の挙動に影響を与える設定の一つがPublishing.DeepScanRelatedItemsです。有効化すると、この設定はパブリッシングプロセスに再帰的に多層参照項目を含みます。無効化すると直接参照のみが含まれます。
Publishing.DeepScanRelatedItems関連 アイテムの公開 設定と操作します。 関連アイテムの公開 が有効になると、Publishing.DeepScanRelatedItemsが公開中に関連項目をどれだけ深くスキャンするかを制御します。
Publishing.DeepScanRelatedItemsがtrueに設定されると、システムは関連するすべてのアイテムを再帰的に収集します。まず与えられたアイテムが直接参照したアイテムを集め、次にそれらのアイテムが参照するアイテムを順に収集し、連鎖的に順に進みます。falseに設定すると、直接参照されたアイテムのみが関連アイテムとして含まれます。
依存関係の挙動に影響を与える他の公開設定には、ExperienceEdge.IncludeDependencyAncestors、ExperienceEdge.ComputeContentDependencies 、ExperienceEdge.LinkDependentTypesがあります。
依存関係が出版成果に与える影響
スマートパブリッシュとバージョン管理されたコンテンツの相互作用により、特にディープリンク(複数の参照レベルでアイテムが接続され、深い依存チェーンが形成される構造)がある場合は、公開されたアイテムがサイトに表示されなくなることがあります。これはスナップショットまたはEdgeランタイムの公開で公開されたコンテンツに影響を及ぼします。詳細や防止方法については 、「ディープリンクによる問題」を参照してください。