カスタムのxConnectモデルも含めて
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックでは、Sitecore Experience Platform(XP)実装のために画像を作成する際にカスタムxConnectモデルSitecore Docker含める方法について説明します。さらに、このガイドはxConnect Sitecoreモデル、xConnectモデル、カスタマイズの仕組みについてある程度の知識を持っていることを前提としています。
Docker Examplesリポジトリをクローンする
まだやっていなければ、Docker Examplesリポジトリ をマシン上の場所にクローンしてください。このトピックではリポジトリのcustom-imagesフォルダを使用します。
例の準備
カスタムイメージの例は実行前に準備が必要です。まだ準備をしていない場合は、準備手順に従うか、付属のinit.ps1スクリプトを実行して自動的にこれらの準備手順を実行してください。
-
PowerShell管理者プロンプトを開き、custom-imagesフォルダに移動し、-LicenseXmlPathをSitecoreライセンスファイルの場所に置き換えて次のコマンドを実行してください。
.\init.ps1 -LicenseXmlPath C:\License\license.xml
xConnectモデルの展開を理解する
xConnectのカスタムモデル開発には複数のビルドアーティファクトが必要であり、これらのアーティファクトがSitecore Experience Platformコンテナ環境内の特定のイメージに含まれていることを確実にしてください。
ビルドアーティファクトの定義
カスタムxConnectモデルの作成および展開に関するドキュメントによると、以下の(仮説的な)ビルドアーティファクトがあります:
- CustomModel.dll
- CustomModel, 1.0.json
- sc.CustomModel.xml (ドキュメントのステップ2 する)
- Sitecore.XConnect.Client.config パッチ(ドキュメントのステップ2「 モデルをコアロールにデプロイする 」セクション)
アーティファクトを修復するSitecore画像
以下の表は、XP0(シングル)およびXP1(スケールド)トポロジーの両方のSitecoreイメージを示しています。どの画像がxConnectビルドアーティファクトを必要とし、どこに含めるべきかを確認できます。ここに画像が記載されていない場合は、アーティファクトは必要ありません。
これらのアーティファクトは、各画像ロールごとにSitecoreランタイムのDockerfileに含めます。
Sitecore イメージ/役割
XP0
XP1
CustomModel.dll
CustomModel、1.0.json
SC。CustomModel.xml
Sitecore。XConnect.Client.configパッチ
CD
x
root\bin
x
CM
x
x
root\bin
x
xconnect(xconnect)
x
root\bin
root\App_Data\モデル
root\App_Data\Config\Sitecore\MarketingAutomation
xdbsearchworker
x
x
root\App_Data\モデル
xdbautomationworker
x
x
root
root\App_Data\Config\Sitecore\MarketingAutomation
コルテックスプロセッシングワーカー
x
x
root
root\App_Data\モデル
中華人民共和国
x
root\bin
x
レップ
x
root\bin
x
xdbcollection
x
root\bin
root\App_Data\モデル
xdbsearch
x
root\bin
root\App_Data\モデル
xdbautomation
x
root\bin
root\App_Data\モデル
root\App_Data\Config\Sitecore\MarketingAutomation
rootパスは画像ごとに異なります。ワーカーロールはC:\service、その他は全C:\inetpub\wwwrootです。
Dockerの例xConnectプロジェクト
Docker ExamplesリポジトリにはカスタムxConnectモデルを示す複数のプロジェクトがあります。custom-imagesフォルダに移動し、Visual Studio .sln DockerExamplesソリューションを開きます。このソリューションには以下のプロジェクトが含まれます:
- DockerExamples.XConnect.Model(上記の表にCustomModel.dll )を含みます。
- DockerExamples.XConnect : xConnect アーティファクトのビルドと公開を容易にし、必要な xConnect 設定ファイル DockerExamples.XConnect.Model.DemoModel, 1.0.json(前の表の CustomModel、1.0.json)および sc.DockerExamples.DemoModel.xml(sc.前の表のCustomModel.xml)も含みます。
- DockerExamples.Website、必要なxConnect設定ファイル DockerExamples.XConnect.config (Sitecore。前の表のXConnect.Client.configパッチ )も含まれます。
- App.XConnect.ModelBuilder: 必要なxConnect model JSONファイルを生成するためのコンソールアプリです。
- App.XConnect.Demo。
Helixソリューションでは、DockerExamples.XConnectとDockerExamples.Websiteプロジェクトは、多くの場合、別々の環境モジュールと1つ以上のプロジェクト/機能モジュールに分割されます。ここでは簡便さを図るためにそれらを組み合わせています。
ソリューションビルドでの設定
Dockerの例でソリューションの設定を見るには:
-
custom-imagesフォルダの中からDockerfileを開きます。xConnectプロジェクト(DockerExamples.XConnect.csproj)がウェブサイト/プラットフォームビルド(DockerExamples.Website.csproj)とは別に構築されており、出力はC:\out\xconnect:
RUN msbuild .\src\DockerExamples.XConnect\DockerExamples.XConnect.csproj /p
=Release /p=True /p=WebPublish /p=FileSystem /p=C:\out\xconnect -
builder段階から最終画像に以下の構造でコピーします。
- \Artifacts\xConnect:
COPY --from=builder C:\out\xconnect .\xconnect\
代替案
手動でJSONモデルを生成する代わりに(例えばApp.XConnect.ModelBuilderを使うなど)、ソリューション(\src\DockerExamples.XConnect\App_Data\DockerExamples.XConnect.Model.DemoModel, 1.0.json)に組み込む代わりに、Dockerfile命令の一部としてこれを行うことができます。ただし、この方法の欠点は、xConnectモデルを実行中のコンテナに公開できないことです。なぜなら、これはイメージビルドが必要なからです。
App.XConnect.ModelBuilderの例は、出力パスの引数を受け入れています。builder段階でApp.XConnect.ModelBuilderを作成し、それを使ってxConnect model JSONファイルを生成できます:
RUN msbuild .\src\App.XConnect.ModelBuilder\App.XConnect.ModelBuilder.csproj /p
=Release /p=C:\build RUN .\App.XConnect.ModelBuilder C:\out\xconnect\modelsその後、最終的なアーティファクト指示を調整して以下にコピーしなければなりません:
COPY --from=builder C:\out\xconnect .\xconnect\ COPY --from=builder C:\out\xconnect\models .\xconnect\App_Data\Models\
Sitecoreのランタイムイメージにアーティファクトを追加
以下の例は、Sitecore Experience Platform - Single(XP0) トポロジーの構成を示しています。
!注もし上流環境でSitecore Experience PlatformのScaled(XP1 )トポロジーにデプロイする予定があるなら、サービス用のSitecoreランタイムイメージを設定することを検討してください。Docker Examplesリポジトリには、これらのサービス用のSitecoreランタイムDockerファイル(xdbcollection、xdbsearchなど)も含まれています。
この例を見るには:
-
xconnectサービスのSitecoreランタイムDockerfileを開きます(例:C:\sitecore\docker-examples\custom-images\docker\build\xconnect\Dockerfile)。
-
これはIISイメージを使用するため、C:\inetpub\wwwrootはワーキングディレクトリに設定され、solutionビルドイメージのxConnectビルドファイルがコピーされます:
WORKDIR C:\inetpub\wwwroot COPY --from=solution \artifacts\xconnect\ .\
-
xdbsearchworkerサービスのSitecoreランタイムDockerfileを開きます。xConnectワーカーロールはCore.NETなので、異なるワーキングディレクトリC:\service使われます。
WORKDIR C:\service
前の表を見ると、ワーカーの役割は含まれるアーティファクトに対してより選択的になっていることがわかります。 xdbsearchworkerイメージはモデルJSONファイルのみを必要とします:
COPY --from=solution \artifacts\xconnect\App_Data\Models\ .\App_Data\Models\
しかし、xdbautomationworkerはモデルアセンブリとXMLファイルを必要とします:
COPY --from=solution \artifacts\xconnect\bin\ .\ COPY --from=solution \artifacts\xconnect\App_Data\Config\Sitecore\MarketingAutomation\ .\App_Data\Config\Sitecore\MarketingAutomation\
一方、cortexprocessingworkerはモデルアセンブリとJSONファイルを必要とします:
COPY --from=solution \artifacts\xconnect\bin\ .\ COPY --from=solution \artifacts\xconnect\App_Data\Models\ .\App_Data\Models\
Docker Examplesを実行する
Dockerの例を実行するには:
-
PowerShellプロンプトを開き、custom-imagesフォルダにアクセスし、Docker Compose upコマンドでDocker例を実行します:
docker-compose up -d
-
インスタンスが稼働したら、Visual Studioに戻ってApp.XConnect.Demoコンソールアプリケーションを実行してください。これによりカスタムモデル(DemoModel)とファセット(DemoFacet)を使うテスト連絡先が追加されます。
カスタムファセットで連絡先が追加されたことを確認するには、SQL Serverに接続してから記録を取得するSitecore.Xdb.Collection.Shard0/1.xdb_collection.ContactFacets:

-
downコマンドでコンテナを停止し、取り出します:
docker-compose down