1. カスタムSitecoreイメージの作成

カスタムxConnectモデルを含める

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このトピックでは、Sitecore Experience Platform (XP) 実装用のSitecore Dockerイメージをビルドするときに、カスタムxConnectモデルを含める方法について説明します。また、このガイドでは、Sitecore xConnect、xConnectモデルおよびカスタマイズ方法に関する知識があることを前提としています。

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

Docker Examplesリポジトリをマシン上の場所にまだクローンしていない場合は、クローンします。このトピックでは、リポジトリのcustom-imagesフォルダを使用します。

サンプルの準備

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 (ドキュメントDeploy the model to the Marketing Automation Engineセクションのステップ2)

  • Sitecore.XConnect.Client.configパッチ (ドキュメントDeploy the model to core rolesセクションのステップ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\ごみ箱

x

センチメートル

x

x

root\ごみ箱

x

xconnectの

x

root\ごみ箱

root\App_Data\モデル

root\App_Data\Config\Sitecore\MarketingAutomation

xdbsearchworker

x

x

root\App_Data\モデル

xdbオートメーションワーカー

x

x

root

root\App_Data\Config\Sitecore\MarketingAutomation

CortexProcessingワーカー

x

x

root

root\App_Data\モデル

中国

x

root\ごみ箱

x

XDBコレクション

x

root\ごみ箱

root\App_Data\モデル

xdbsearch(xdbsearch)

x

root\ごみ箱

root\App_Data\モデル

XDBオートメーション

x

root\ごみ箱

root\App_Data\モデル

root\App_Data\Config\Sitecore\MarketingAutomation

rootパスは画像ごとに異なり、ワーカーロールにC:\service、その他すべてにC:\inetpub\wwwrootすることに注意してください。

Docker Examples xConnectプロジェクト

Docker Examplesリポジトリには、カスタムxConnectモデルを示す複数のプロジェクトがあります。 custom-imagesフォルダーに移動し、Visual StudioでソリューションDockerExamples.slnを開きます。このソリューションには、次のプロジェクトが含まれています。

  • 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: Webサイト/プラットフォーム アーティファクトのビルドと公開を容易にし、必要なxConnect設定ファイルDockerExamples.XConnect.config ( 前の表のSitecore.XConnect.Client.config patch ) も含まれています。

  • App.XConnect.ModelBuilder: 必要なxConnectモデルのJSONファイルを生成するために使用するコンソール アプリ。

  • App.XConnect.Demo: カスタムモデルとファセットを使用してテスト問い合わせを追加するコンソールアプリケーション。

Helixソリューションでは、DockerExamples.XConnectプロジェクトとDockerExamples.Websiteプロジェクトは、ほとんどの場合、別々の環境モジュールと1つ以上のプロジェクト/機能モジュールに分割されます。ここでは、シンプルさのために組み合わせています。

ソリューションビルドでの構成

Dockerの例でソリューションがどのように構成されているかを確認するには、次のようにします。

  1. custom-imagesフォルダ内のDockerfileを開きます。これは、xConnectプロジェクト (DockerExamples.XConnect.csproj) がWebサイト/プラットフォームビルド (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\Models\DockerExamples.XConnect.Model.DemoModel, 1.0.json) 代わりに、これをDockerfile命令の一部として行うことができます。これの欠点は、イメージのビルドが必要なため、xConnectモデルを実行中のコンテナにパブリッシュできないことです。

App.XConnect.ModelBuilder例では、出力パスの引数を受け入れます。builderステージ内で、App.XConnect.ModelBuilderをビルドし、それを使用してxConnectモデルの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ランタイムDockerfileもあります (xdbcollectionxdbsearchなど)。

この例を表示するには、次の手順を実行します。

  1. xconnectサービスのSitecoreランタイムDockerfileを開きます (例: 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ワーカー ロールは .NET Coreであるため、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の例を実行する

Dockerサンプルを実行するには、次のようにします。

  1. PowerShellプロンプトを開き、custom-imagesフォルダーに移動して、Docker Compose upコマンドを使用してDocker Examplesを実行します。

    docker-compose up -d
  2. インスタンスが稼働したら、Visual Studioに戻り、App.XConnect.Demoコンソール アプリケーションを実行します。これにより、カスタムモデル (DemoModel) とファセット (DemoFacet) を使用するテスト問い合わせが追加されます。

    連絡先がカスタム ファセットで追加されたことを確認するには、SQL Serverに接続し、Sitecore.Xdb.Collection.Shard0/1.xdb_collection.ContactFacetsからレコードを取得します。

  3. コンテナを停止し、downコマンドを使用して削除します。

    docker-compose down
この記事を改善するための提案がある場合は、 お知らせください!