---
title: "Commerce Engine環境"
slug: "commerce-engine-environments"
abstract: "単一サーバーインスタンスでデータとサービス機能の別々の設定可能なプールを稼働させたい場合に使われる環境の概要。"
---
# Commerce Engine環境

Sitecore XCソフトウェアアーキテクチャは、異なるCommerce Engine構成を可能にする [環境の概念](https://doc.sitecore.com/xp/en/developers/100/sitecore-experience-commerce/en/sitecore-xc-software-architecture.html) を利用しています。Commerce Environmentsとは、展開要件に応じて単一または複数のCommerce Engineサービスインスタンスで個別に設定可能なデータおよびサービス機能のプールを持てることを意味します。クライアントがCommerce Engineに呼び出しを行うと、[Call Engineのヘッダー](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/service-api-headers.html "Service API headers")でターゲット環境を指定します。

Commerce Engine環境は、Commerce Engineの動作を制御する一連のポリシーによって定義された構成です。環境構成は、エンジンへの呼び出しの処理方法とCommerceデータセットの処理方法を決定します。したがって、呼び出しクライアントの要件に応じてCommerce Engineの機能をカスタマイズできます。同一のエンジンコール(例えば、製品詳細のリクエスト)は、コールヘッダーで指定されたターゲット環境識別子の設定によって異なる動作をすることがあります。

例えば、各Commerce Engineクライアントから期待されるトラフィックレベルを反映した環境間で異なるキャッシュ動作を設定することができます。本番環境では、ストアフロント(コンテンツ配信ロール)からの製品詳細要求は通常*Shops*環境をターゲットにし、パフォーマンスへの影響を最小限に抑えるためにキャッシュからデータを読み込むことが多いです。しかし、同じオーサリング環境を対象としたリクエストに応答する場合、Commerce Engineはデータベースから直接データを取得し、最新の情報を提供する可能性が高いです。

Commerce環境は環境設定JSONファイルで定義します。環境JSONファイルには、特定の[Commerce Engineポリシー](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/commerce-engine-policies.html "Commerce Engine policies")に関する情報が含まれており、JSONファイル外の [ポリシーセット](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/commerce-engine-policies.html#UUID-28a1ac76-9bd2-8394-43a8-f08305f71a6d_section-5d1246d0d63dc-idm45315558952960 "Policy sets") への参照として、またはそのCommerce Engine環境専用に実装されるファイル内の明示的なポリシー設定として含まれています。

## 環境設定ファイル

各Commerce環境は、それぞれ異なる環境構成JSONファイルで定義されています。

Sitecore XCソリューションには、Sitecore.Commerce.Engine.\*.zipパッケージ内のサンプルHabitatおよびAdventure Worksデータセットおよび環境をサポートするための複数の環境設定ファイルが含まれています。Commerce Engineの環境ファイルはwwwroot\\data\\Environmentsフォルダに保存されています。サンプルソリューションには、それぞれHabitat環境とAdventure Works環境のデフォルトの環境ファイルが含まれています。

-   アドベンチャー作品
    -   Plugin.AdventureWorks.CommerceAuthoring-1.0.0.json
    -   Plugin.AdventureWorks.CommerceShops-1.0.0.json
    -   Plugin.AdventureWorks.CommerceMinions-1.0.0.json
-   生息地
    -   Plugin.Habitat.CommerceAuthoring-1.0.0.json
    -   Plugin.Habitat.CommerceShops-1.0.0.json
    -   Plugin.Habitat.CommerceMinions-1.0.0.json

各環境JSONファイルには、Commerce Engineの機能とデータセットを関連付ける2つの重要なプロパティが含まれています。

-   環境名、つまりCommerce Engineの呼び出しヘッダーに指定された環境です。
-   Commerceデータセットと指定された環境名を結びつけるアーティファクトストアのID値です。ArtifactストアのID値は、Commerce EngineがCommerceデータを保存するために使用するキーです。ArtifactストアIDは、Commerce Engineへの呼び出し(その環境名に対して)が処理するデータの集合を定義します。

例として、以下はデフォルトのPlugin.Habitat.Commerce-Authoring-1.0.0.jsonファイルのサンプルを示しており、Habitat Authoring環境("Name": HabitatAuthoring")の挙動を定義するポリシーが含まれ、サンプルのHabitatデータセットを表すアーティファクトストアのID値と関連付けられています。

![Example of the ArtifactStoreID and environment Name property in the Plugin.Habitat.CommerceAuthoring environment JSON file.](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/101/sitecore-experience-commerce/images/XC_Authoring_Env_ArtifactStoreID.png)

これらのデフォルトのCommerce Engine環境間の構成の違いは、それぞれの意図された目的を反映しています。

以下は、Commerce Engine環境JSONファイルの "Policies" コレクション内のキャッシュポリシーセットへの参照例です。

{
 "$type": "Sitecore.Commerce.Core.PolicySetPolicy, Sitecore.Commerce.Core",
 "PolicySetId": "Entity-PolicySet-CachingPolicySet"
 },

例えば、Authoring環境の設定では、Global PromotionsポリシーのPromotionsRequireApprovalパラメータが*false*に設定されています。これは、ビジネスユーザーが通常この環境でプロモーションをテストしているため、公開に承認を必要としないからです。しかしShops環境では、同じパラメータが*true*に設定されているため、ビジネスユーザーは適切なビジネスユーザー(プロモーションマネージャーの役割)の承認なしにストアフロントにプロモーションを公開できません。

![Configuration file settings](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/101/sitecore-experience-commerce/images/Environment-Config10.png)

また、[自分で環境を作成し](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/create-a-custom-commerce-engine-environment.html "Create a custom Commerce Engine environment") 、必要に応じて設定をカスタマイズすることも可能です。

> !注環境のJSONファイルを変更する場合は、[Commerce Engineをブートストラップ](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/bootstrap-the-commerce-engine.html "Bootstrap the Commerce Engine") して変更がグローバルデータベースに伝播するようにする必要があります。

## データ分離

環境は他の環境と同じ永続ストアを共有することも、独自の専用永続ストアに分離することも可能です。

すべてのコマース環境にはアーティファクトストアIDがあり、これはコマースエンジンが [コマースデータベース](https://doc.sitecore.com/xp/en/developers/100/sitecore-experience-commerce/en/sitecore-xc-software-architecture.html)内でデータを保存する鍵です。アーティファクトストアIDは、その環境のコマースエンジンへの呼び出しが対応するデータの集合を定義します。

例えば、[Sitecore Commerce Engine SDK](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/sitecore-commerce-engine-sdk.html "Sitecore Commerce Engine SDK")で提供されているSitecore XCソリューションには、HabitatショップとAdventure Worksショップという2つの異なるサンプルショップデータセットのデフォルト環境が含まれています。各データセットにはアーティファクトストアIDが関連付けられています。

各サンプルデータセットごとに別々のオーサリング環境とショップ環境が設定されています:

-   HabitatAuthoring - この環境はHabitatデータセットに対して機能します。Authoring環境は、Business Toolsからのリクエストに対してCommerce Engineがどのように動作するかを定義します。
-   HabitatShops - この環境はHabitatデータセットに対しても動作します(HabitatAuthoring環境と同じアーティファクトストアのID値を持ちます)。典型的な展開では、Shops環境はStorefrontからのリクエストに対するCommerce Engineの挙動を定義します。
-   AdventureWorksAuthoring - この環境はAdventure Worksデータセットに対して動作します。典型的なデプロイでは、Authoring環境はBusiness Toolsからのリクエストに対してCommerce Engineがどのように動作するかを定義します。
-   AdventureWorksShops - この環境はAdventureWorksデータセットに対しても動作します(AdventureWorksAuthoring環境と同じアーティファクトストアID値を持ちます)。典型的なデプロイでは、Shops環境がStorefrontからのリクエストに対してCommerce Engineがどのように動作するかを定義します。

> !注[Sitecore Commerce Engine SDK](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/sitecore-commerce-engine-sdk.html "Sitecore Commerce Engine SDK")パッケージに含まれるサンプルソリューションは、Shops環境とAuthoring環境ごとに異なる環境ファイルを提供していますが、デフォルトデプロイメントでは実際にはPlugin.Habitat.CommerceAuthoring-1.0.0.jsonファイルで定義された構成のみを使用します。つまり、デフォルトデプロイメントでは、Commerce Engineの呼び出しはSXA StorefrontまたはBusiness Toolsから発信され、すべて同じHabitatAuthoring環境を対象としています。

デフォルトのHabitatAuthoringとHabitatShops環境は、JSONファイルで宣言されている同じアーティファクトストアIDを共有しています。

![The Artifact Store ID in the Commerce Habitat Authoring and Shops environments use the same value.](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/101/sitecore-experience-commerce/images/Artifact-Store-ID.png)

> !重要 [複数の店舗を](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/configure-the-storefront-environment.html "Configure the storefront environment") 異なるCommerce*ショップ* 環境で設定する場合、これらのCommerce環境の設定と、Sitecore.Commerce.Engine.Connect.configファイルで指定されたデフォルト環境の設定がすべて同じアーティファクトストアID値を使用していることを確認してください。