ローカルで作成したコンポーネントを XM Cloud の Staging に反映させる

公開日 :

前回は Types という全部の項目を利用するコンポーネントを作成しました。今回はこのコンポーネントを利用して、CLI を利用して Staging のサーバーに追加していきます。

コンポーネントのシリアライズ

作成をしたコンポーネントをシリアライズして、リポジトリに反映させます。シリアライズの設定に関しては、手元の環境では src\SitecoreDemo.module.json というファイルを用意して、内容は以下のように設定しています。

{
  "namespace": "SitecoreDemo",
  "references": ["InitItems"],
  "items": {
    "includes": [
      {
        "name": "placeholders",
        "path": "/sitecore/layout/Placeholder Settings/Project/sitecoredemo-jp"
      },
      {
        "name": "demo-renderings",
        "path": "/sitecore/layout/Renderings/Feature/Demo"
      },
      {
        "name": "demo-settings",
        "path": "/sitecore/system/Settings/Feature/Demo"
      },
      {
        "name": "demo-branches",
        "path": "/sitecore/templates/Branches/Feature/Demo"
      },
      {
        "name": "demo-template",
        "path": "/sitecore/templates/Feature/Demo"
      },
      {
        "name": "renderings",
        "path": "/sitecore/layout/Renderings/Project/sitecoredemo-jp"
      },
      {
        "name": "templates",
        "path": "/sitecore/templates/Project/sitecoredemo-jp"
      },
      {
        "name": "languages",
        "path": "/sitecore/system/Languages"
      }
    ]
  }
}

上記にテンプレートやレンダリングなど、追加をした項目に関してはシリアライズをする形になっています。コンテンツに関しては別の Json ファイルにしているため、これに絞ればコンテンツツリー以外はすべてシリアライズが可能です。

Sitecore CLI を利用することで、関連するファイルをシリアライズすることができます。

powershell dotnet sitecore ser pull -n default -i SitecoreDemo

実際にいくつかのデータがシリアライズされて、以下の画面のように追加、更新されています。

random desc

以下のコマンドで Staging に反映させます。

dotnet sitecore ser push -n staging -i SitecoreDemo

この状態では、まだサイトではコンポーネントを認識していません。/sitecore/content/sitecoredemo-jp/sitecoredemo-jp/Presentation/Available Renderings/Demo の利用できるコンポーネントに対して、Types を設定します。

random desc

これで準備ができたので Pages を開きます。コンポーネントが左側に追加されているのがわかります。

random desc

まとめ

ローカルで作成したコンポーネントを XM Cloud 側に反映させる手続きを今回は CLI を利用して実施しました。シリアライズをする仕組みをうまく活用することで、コンポーネントを開発、関連するデータとともにクラウドに反映させることができます。