出版プロセス
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Experience Edgeへの公開は、SitecoreAIで公開操作をトリガーしたときに始まります。公開操作を開始すると、Sitecoreが自動的にこのプロセスを処理し、スキーマの作成とEdgeへの公開も含まれます。Sitecoreの公開パイプラインは公開すべき項目を特定し、それを使って初期の公開マニフェストを作成します。
スキーマはアイテムの公開制限を考慮して自動的に作成され、変更はできません。
マニフェストには以下のパス内の項目のみが含まれます:
-
/sitecore/content
-
/sitecore/media library
-
/sitecore/templates
-
sitecore/system/dictionary
サイトを公開する場合、コンテンツとの関係から、どの経路の他の項目も含まれることがあります。出版 制限により、機密性の高い記事が誤って公開されないように守ってください。
伐採
公開前に、トラブルシューティングのための詳細なログ作成プロセスを設定し、どの項目が公開されたのか、なぜ公開されたのかを理解することができます。ログのレベルは 環境変数 PUBLISHING_LOG_LEVEL_VALUEを使って指定できます。
公開されるすべてのアイテムバージョンのログを有効にするには、edgePublishItemパイプラインのSitecore.ExperienceEdge.Connector.Client.Pipelines.EdgePublishItem.UpdateStatisticsプロセッサでtraceToLog設定を使ったパッチファイルを作成します。Edgeに公開する際、すべての公開アイテムバージョンがこれらのログに表示されるわけではありません。
traceToLogがtrueに設定されている場合、公開情報はログファイルに記録され、利用可能です。ログファイルはDeployアプリでアクセスできます。
ログレコードの例:
以下は利用可能なログの詳細です:
-
Operation - 出版候補(ターゲットアイテム)に対して行われる公開アクション。可能な値はskip、update、create、またはdeleteです。
-
ChildAction - 子項目に対する公開措置。可能な値はskip、allow、またはforceです。
-
Explanation - 出版状況の説明、例えば記事が出版されたかどうかや詳細。
Experience Edgeへの公開
Experience Edgeとの通信は、配信リモートプロシージャコール(RPC)エンドポイントを通じて行われます。エンドポイントへのすべての通話はベアラートークンを使用して安全かつ承認されています。モジュールはトークンを自動的に作成・更新します。
公開開始時、Sitecoreは以下の通りに公開プロセスを実行します。
-
JobStartイベントはExperience Edgeに公開されます。
-
Sitecore GraphQLスキーマが生成され、スキーマエンティティがExperience Edgeに公開されます。
-
Edgeは、公開予定のアイテムと既存のものを比較するために呼ばれます。
-
公開ジョブがスマートまたはインクリメンタルの場合、キュー内の各項目がレビューされ、公開が必要なすべての依存項目を計算されます:
-
Rendering data source - 初期マニフェストにあるページでレンダリングデータソースとして使用されるアイテムが含まれており、公開モードが スナップショット公開(v1)であれば、そのページはキューに追加されます。
-
Template - 初期キューにテンプレート項目が含まれている場合、そのテンプレートに基づくすべての項目(直接または継承)がキューに追加されます。新たに追加された項目はページ依存関係もチェックされます。
-
Template field - 初期キューにテンプレートフィールドが含まれている場合、所有者テンプレートもテンプレートと同じように展開されます。
-
Language fallback - 言語フォールバック はすべてのキュー項目についてレビューされ、キューにソース言語のバージョンが含まれている場合、フォールバック言語のバージョンが自動的にキューに追加されます。この機能はEdgeではデフォルトで無効にされており、必要に応じて有効にすることができます。
-
コンテンツサイトのルート項目 - 初期キューにコンテンツサイトのルート項目が含まれている場合、サイト情報は自動的にキューに含まれ、SiteInfoエンティティとしてEdge上で利用可能です。
-
-
キュー内のすべてのアイテム、テンプレート、テンプレートフィールドは、Experience Edge固有の静的フォーマットエンティティにマッピングされ、公開されています。
-
キューにページ(レイアウトのあるアイテム)が含まれている場合、レイアウトデータは計算され、Experience Edgeに公開されます。
-
メディアブロブはExperience Edgeにアップロードされます。
-
メディアメタデータはExperience Edge固有の静的フォーマットエンティティにマッピングされ、公開されます。
-
-
JobEndイベントはExperience Edgeに公開されています。
Experience Edgeを初めて使うときは、サイト全体の再公開を行います。
Experience Edge上の処理エンティティ
公開されたすべてのエンティティがExperience Edgeにアップロードされた後、Sitecoreは公開を最終決定するために以下の追加操作を実行します。
-
Edge publishing – Edgeで公開を最終決定するための様々なアクションが実行されます。
-
Edgeキャッシュクリア – すべてのキャッシュがクリアされ、新たに公開されたコンテンツが利用可能になるようにします。
-
Edge webhook – もしウェブ フ ックが設定されている場合、公開操作の最後にトリガーされ、下流システムが新たに公開されたコンテンツにアクセスできるようにします。
公開ジョブが完了した後、Sitecoreはさらに30秒待ってこれ以上の公開操作がないことを確認し、その後Edgeテナントのキャッシュをクリアし、JobEndメッセージの処理を終えます。キャッシュの完全削除には最大1分かかることがあり、完全なキャッシュのリフレッシュは30〜90秒で完了します。
PowerShellスクリプトを使って公開操作をトリガーする
Sitecore PowerShell拡張機能モジュールを使って、公開操作をトリガーするPowerShellスクリプトを作成できます。SitecoreAIは、1回のPowerShell操作で処理できるアイテムの上限を定めていません。コンテンツサイズ、言語数やバージョン数、カスタムパイプライン、利用可能なメモリによっては、System.OutOfMemoryExceptionエラーのリスクがあります。
メモリの枯渇やサービスの不安定さを防ぐために、以下のガイドラインに従ってください:
-
大規模な作成、更新、公開作業は必ず小規模に処理してください。実際の出発点は、重作業の場合1バッチあたり200〜500点です。
-
コンテンツツリー全体を読み込みたりループしたり、非常に大きなアイテムリストをメモリに保存するスクリプトは避けてください。
-
大きなアイテムコレクションを変数に保存しないでください。アイテムをストリームとして処理し、バッチ間で参照を解放します。
-
重いPowerShellジョブは営業時間外にスケジュールし、他のリソース集約型のタスクと並行して実行するのは避けましょう。
-
まずは非本番環境で小規模にテストし、メモリ使用状況を監視しながらバッチサイズを徐々に増やしましょう。
-
長時間実行するジョブを単一の長期間スクリプトを実行するのではなく、複数の実行に分割する。
大規模で無限のPowerShell操作はSitecoreAIではサポートされておらず、サービスの再起動や一時的な停止を引き起こす可能性があります。
出版結果と失敗の可能性
出版の仕事は、公開中に失敗したエンティティをExperience Edgeに報告することがあります。これらの失敗は多くの場合、エンティティレベルで発生し、必ずしもコンテンツ項目が公開されなかったことを示すわけではありません。失敗した事業体が報告されていても、出版は成功裏に完了することが可能です。
一般的な出版失敗シナリオとその影響評価方法の詳細については、「 出版失敗と診断」をご覧ください。