---
title: "Experience Edgeへの公開"
slug: "publishing-to-experience-edge"
abstract: "Sitecore XMやXM CloudからExperience Edgeに公開する際の公開パイプライン、コンテンツ選択、依存関係の計算を理解しましょう。"
---
# Experience Edgeへの公開

Sitecoreでウェブサイトを作成すると、さまざまな種類のコンテンツアイテムを作成します。これらのアイテムはウェブページ、サイトレイアウト、ナビゲーション、その他の要素としてSitecore Experience Edge公開されます。Edgeのコンテンツを消費する軽量JSSフロントエンドを使ってウェブサイトをレンダリングします。

以下の図は出版パイプラインを示しています:

![A diagram showing the publishing pipeline in Sitecore XM and XM Cloud.](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/hd/19/sitecore-headless-development/images/Publishing_pipeline.png)

## ベストプラクティス:ワークフロー

公開を制御するための [ワークフロー](https://doc.sitecore.com/xp/en/developers/102/sitecore-experience-manager/workflow.html) の導入を強くお勧めします。手動公開に頼ると、未完成のコンテンツを誤って公開してしまう可能性があります。以下のセクションでは、依存関係が意図せずにアイテムを公開させる方法について説明しますが、ワークフローを実装することでそれを防ぐことができます。

ワークフローを使えば、以下のようなことができます:

-   どのコンテンツをEdgeに公開するかを管理し、準備ができた時だけ公開するようにしましょう。
-   コンテンツレビューのためのフローを設定しましょう。

## コンテンツの選択

Sitecoreは公開するコンテンツを選択するための複数のオプションを提供しています。それぞれのオプションは、出版パイプラインやそのパフォーマンスに異なる影響を与えます。

### 単一項目出版

単一アイテムの出版には2種類あります: **再出版** と **スマート**です。

-   **再出版** - アイテムは常に公開されます。
-   **スマートパブリッシュ** - 各アイテムにはリビジョンIDがあり、そのアイテムの変更が保存されるたびにデフォルトで更新されます。 **スマート** パブリッシュでは、Sitecoreがコンテンツ管理インスタンスのリビジョンIDと、Edge内の同じアイテムのリビジョンIDを比較します。両方のリビジョンIDが同じなら、そのアイテムは公開されません。

さらに、すべてのサブアイテム(子項目)を公開することも選択できます。

### すべての項目の公開

コンテンツエディターの **「公開サイト** 」オプションを選択することで、すべてのアイテムを公開できます。その際、利用可能な公開の種類は3種類あります:

-   **インクリメンタルパブリッシュ** - 変更されたアイテムを、変更履歴に基づいて公開します。これは通常、すべての変更されたアイテムを公開する最も効率的な方法です。
-   **スマートパブリッシュ** - 各アイテムのリビジョンIDに基づいて変更されたアイテムを公開します。このタイプのパブリッシングは、保存された変更リストではなくアイテムツリー全体をスキャンするため、時間がかかることがあります。
-   **再出版** - コンテンツツリー内のすべてのアイテムを再公開します。

## 出版パイプライン

パブリッシングパイプラインの主な目的は、公開のために選ばれたコンテンツ管理(CM)アイテムをEdgeエンティティに変換することです。Edgeからアイテムが正常に受信・公開された確認を受けた後、CMは公開アイテムカウンターを更新します。パブリッシングパイプラインは、CMインスタンスから公開可能なコンテンツの正確なスナップショットを作成するために、以下のタスクを実行します:

-   公開する追加のエンティティの計算
-   依存関係の計算
-   依存関係の解決
-   古いコンテンツや期限切れのコンテンツの削除

### 追加実体の計算

すべての公開コンテンツ項目はExperience Edge itemエンティティとみなされ、パスまたはアイテムIDを使って[GraphQL APIで利用可能です](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/query-examples.html "Query examples") 。追加のアイテムタイプが利用可能になる場合があります:

-   メディア - 追加のメディア特有のプロパティ。
-   サイト - SXAのサイト固有のプロパティとサイトマップ。
-   ページ - ページのレイアウト。
-   テンプレートとフィールド - テンプレートまたはフィールド固有のプロパティ。

### 依存関係の計算

アイテムがEdgeに公開されると、そのアイテムの依存関係が計算されます。これらの依存関係は公開されたエンティティ上でクエリ可能なメタデータとして格納されます。公開されるアイテムによっては、多数の依存関係が存在する場合があります。例えば、単純なページアイテムは含まれるすべてのデータソースに依存しています。もう一つの例はテンプレート項目です。テンプレートから継承するサイト内のすべてのアイテムはテンプレートの依存関係です。

また、一部のSXAコンポーネントはページレイアウトで使用する際に依存関係を生み出します。

-   部分的なデザイン - 部分的なデザインを使うページは、その部分的なデザインに依存します。
-   ウィジェット - ウィジェットを使用している任意のページはウィジェットの依存関係です。

> !注単一アイテム公開時には、ローカルデータソース項目の祖先項目もデフォルトでEdgeに公開されるため、公開が遅くなることがあります。ExperienceEdge.IncludeDependencyAncestors設定を*false*に設定する[パッチファイルを作成する](https://doc.sitecore.com/xmc/en/developers/xm-cloud/en/use-a-patch-file-to-customize-the-sitecore-configuration.html#UUID-93caf810-0c58-7fe9-21bb-76461faca4c2_id__Create_a_patch)ことで、祖先の収集を無効にできます。この設定は*\\App\_Config\\Modules\\ExperienceEdgeConnector\\ExperienceEdgeConnector.config*ファイルにあります。

### 依存関係の解決

アイテムを公開すると、システムはEdgeにクエリを送り、そのアイテムに依存している他のアイテムをすべて検索し、それらを公開パイプラインに追加します。これらのアイテムが公開されているため、新しいアイテムに依存するすべてのアイテムも公開されます。依存関係として特定されたアイテムは、変更されていなくても出版に含まれます。このプロセスは、新しい公開可能なアイテムが見つからなくなるまで繰り返されます。

依存関係はアイテムレベルで計算されます。例えば、ナビゲーションのページのデータソース項目を変更することがあります。そのページはデータソースのアイテムに依存し、ナビゲーションコンポーネントによってレンダリングされるため、ナビゲーションコンポーネントを含むページは再公開しなければなりません。現時点では、どの変更がアイテムの再公開を引き起こすかを特定することはできません。

依存関係解決プロセスはワークフローを実装する主な理由の一つです。あるユーザーが変更を加えることで、別のユーザーが作業中のページが公開される可能性があります。 *Draft*状態と状態*Publish*からなる単純な2段階のワークフローでも、ウェブサイトが完成したコンテンツのみを表示するのに十分です。

**スマートパブリッシュ** は依存関係を計算する前にどのアイテムを公開するかを決定します。これにより、何も変わっていなければアイテムとその依存関係をスキップできます。

### 削除

親アイテムの子(サブアイテム)を公開する際、パブリッシングパイプラインはEdge上の子アイテムとCM内のアイテムを比較します。CMに含まれていないアイテムがEdgeに見つかれば、そのアイテムとその子はEdgeから削除されます。増分公開を実行する際にも自動削除がトリガーされることがあります。これはCM内の削除を含む変更履歴に依存しているためです。