---
title: "カスタムのxConnectモデルも含めて"
slug: "including-a-custom-xconnect-model"
abstract: "画像を作成する際にはカスタムのxConnectモデルSitecore Docker含めてください。"
---
# カスタムのxConnectモデルも含めて

このトピックでは、Sitecore Experience Platform(XP)実装のために画像を作成する際にカスタムxConnectモデルSitecore Docker含める方法について説明します。さらに、このガイドはxConnect Sitecoreモデル、xConnectモデル、カスタマイズの仕組みについてある程度の知識を持っていることを前提としています。

## Docker Examplesリポジトリをクローンする

まだやっていなければ、[Docker Examplesリポジトリ](https://github.com/Sitecore/docker-examples) をマシン上の場所にクローンしてください。このトピックではリポジトリの*custom-images*フォルダを使用します。

## 例の準備

*カスタムイメージ*の例は実行前に準備が必要です。まだ準備をしていない場合は、準備[手順](https://doc.sitecore.com/xp/ja/developers/103/developer-tools/run-sitecore.md#preparation)に従うか、付属の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

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*:カスタムのxConnectモデルとファセット(上記の表に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ソリューション](https://helix.sitecore.net/)では、*DockerExamples.XConnect*と*DockerExamples.Website*プロジェクトは、多くの場合、別々の環境モジュールと1つ以上のプロジェクト/機能モジュールに分割されます。ここでは簡便さを図るためにそれらを組み合わせています。

## ソリューションビルドでの設定

Dockerの例でソリューションの設定を見るには:

1.  *custom-images*フォルダの中からDockerfileを開きます。*xConnectプロジェクト(DockerExamples.XConnect.csproj*)がウェブサイト/プラットフォームビルド(*DockerExamples.Website.csproj*)とは別に構築されており、出力はC:\\out\\xconnect:
    
    RUN msbuild .\\src\\DockerExamples.XConnect\\DockerExamples.XConnect.csproj /p:Configuration=Release /p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:PublishUrl=C:\\out\\xconnect
    
2.  builder段階から最終画像に以下の構造でコピーします。
    
    -   *\\Artifacts\\xConnect*:
    
    COPY --from=builder C:\\out\\xconnect .\\xconnect\\
    

### 代替案:xConnectモデルのJSONファイルを動的に生成する

手動で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:Configuration=Release /p:OutDir=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*など)も含まれています。

この例を見るには:

1.  *xconnect*サービスの[SitecoreランタイムDockerfile](https://doc.sitecore.com/xp/ja/developers/103/developer-tools/build-sitecore-images.md#sitecore-runtime-dockerfiles)を開きます(例:C:\\sitecore\\docker-examples\\custom-images\\docker\\build\\xconnect\\Dockerfile)。
    
2.  これはIISイメージを使用するため、C:\\inetpub\\wwwrootはワーキングディレクトリに設定され、solutionビルドイメージのxConnectビルドファイルがコピーされます:
    
    WORKDIR C:\\inetpub\\wwwroot
    COPY --from=solution \\artifacts\\xconnect\\ .\\
    
3.  *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の例を実行するには:

1.  PowerShellプロンプトを開き、*custom-images*フォルダにアクセスし、Docker Compose upコマンドでDocker例を実行します:
    
    docker-compose up -d
    
2.  インスタンスが稼働したら、Visual Studioに戻って*App.XConnect.Demo*コンソールアプリケーションを実行してください。これによりカスタムモデル(DemoModel)とファセット(DemoFacet)を使うテスト連絡先が追加されます。
    
    カスタムファセットで連絡先が追加されたことを確認するには、SQL Serverに接続してから記録を取得するSitecore.Xdb.Collection.Shard0/1.xdb\_collection.ContactFacets:
    
    ![Docker-Examples-XConnect-Model.png](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/103/developer-tools/images/Docker-Examples-XConnect-Model.png)
    
3.  downコマンドでコンテナを停止し、取り出します:
    
    docker-compose down