---
title: "環境変数を用いたCommerce Engineの設定"
slug: "configuring-the-commerce-engine-using-environment-variables"
abstract: "環境変数を使ってCommerce Engineを設定する方法。"
---
# 環境変数を用いたCommerce Engineの設定

変数ファイルを使ってCommerce Engineの環境を設定することができます。Commerce Engineは実際の値の代わりに、設定ファイルや環境ファイルにプレースホルダーを使用します。設定値は環境変数ファイル内の変数として定義されます。環境変数を使うことで、すべてのXC環境を一括で設定できます。同じ環境変数ファイルを使って、開発環境や本番環境など、異なるCommerce Engineのインスタンスごとに複数の環境変数セットを定義できます。

## Commerce Engine設定ファイルにおけるプレースホルダーの表記

Commerce Engineの設定ファイルでは、環境パラメータに文字列*PlaceholderFor*が付いています。これらの環境設定パラメータは設定ファイルに特定の値を定義する必要はなく、代わりに環境変数から値を取り出すことができます。以下の例は、global.json設定ファイル内の*PlaceholderFor*セグメントを値の一部として含む環境パラメータを示しており、環境変数を使って置き換えることができます。

{
 "$type": "Sitecore.Commerce.Plugin.Management.SitecoreConnectionPolicy, Sitecore.Commerce.Plugin.Management",
 "Host": "PlaceholderForSitecoreHost",
 "SitecoreDatabase": "PlaceholderForSitecoreDatabase",
 "UserName": "PlaceholderForSitecoreUsername",
 "Domain": "PlaceholderForSitecoreDomain",
 "Password": "PlaceholderForSitecorePassword",
 "ConnectionLeaseTimeout": "PlaceholderForConnectionLeaseTimeout|int",
 "AuthRequestUrl": "sitecore/api/ssc/auth/login",
 "Protocol": "PlaceholderForSitecoreProtocol",
 "AllowAnonymousUser": "PlaceholderForSitecoreAllowAnonymousUser|bool"
}

設定ファイル内のプレースホルダーを表す文字列は、以下の文字のみを含められます。

-   小文字(a-z)
    
-   大文字(A-Z)
    
-   ハイフン(「-」)
    
-   アンダースコア(「\_」)
    
    > !注プレースホルダー表記には数字を含めることはできません。
    

実行時に、XCが様々なファイルから設定を読み込む際に、環境変数ファイルを調べ、対応する各パラメータに対して対応する環境変数を使用します。以下は、Visual Studio launchSettings.jsonファイルの環境変数の例で、前の例で使われたプレースホルダーを置き換えるパラメータ値を定義しています。

{
 "$type": "Sitecore.Commerce.Plugin.Management.SitecoreConnectionPolicy, Sitecore.Commerce.Plugin.Management",
 "COMMERCEENGINE\_SitecoreHost": "sxa.storefront.com",
 "COMMERCEENGINE\_SitecoreDatabase": "master",
 "COMMERCEENGINE\_SitecoreUsername": "admin",
 "COMMERCEENGINE\_SitecoreDomain": "sitecore",
 "COMMERCEENGINE\_SitecorePassword": "b",
 "COMMERCEENGINE\_SitecoreProtocol": "http",
 "COMMERCEENGINE\_SitecoreAllowAnonymousUser": "false",
}

## プレースホルダーでサポートされるデータ型

Sitecore XC環境変数からパラメータ値を構成する場合、特に指定がない限り、データ型が文字列であると仮定します。他にも対応可能なデータ型には整数型とブール型があります。設定ファイルでは、文字列以外のデータ型が値の末尾に付加され、パイプ(|)で区切られます。以下の例に示されています。

種類

設定ファイルにおけるプレースホルダーの値

ストリング

"PlaceholderForSitecoreHost"  
  
\> \[!注\]  
\> 文字列型は暗黙的です。

ブール値

"PlaceholderForSitecoreAllowAnonymousUser|bool"

整数

"PlaceholderForIntegerValue|int"

## 環境変数launchSettings.json

Visual StudioからCommerce Engineを起動すると、環境変数は参照Sitecoreの*Properties*フォルダにあるlaunchSettings.jsonファイルから読み込まれます*。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"))。サンプルlaunchSettings.jsonファイルは、"Development"環境および"Production"環境用の環境変数プロファイルをあらかじめ定義しており、以下の例に示されています。

{
 "iisSettings": {
 "windowsAuthentication": false,
 "anonymousAuthentication": true,
 "iisExpress": {
 "applicationUrl": "https://localhost:5000/",
 "sslPort": 0
 }
 },
 "profiles": {
 "IISExpress": {
 "commandName": "IISExpress",
 "launchBrowser": true,
 "launchUrl": "api/$metadata",
 "environmentVariables": {
 "ASPNETCORE\_ENVIRONMENT": "Development",
 "COMMERCEENGINE\_AppSettings\_\_DeploymentId": "HabitatAuthoring01",
 "COMMERCEENGINE\_AppSettings\_\_EnvironmentName": "HabitatAuthoring",
 ...
 }
 },
 "Engine": {
 "commandName": "Project",
 "launchUrl": "https://localhost:5000/api/$metadata",
 "environmentVariables": {
 "ASPNETCORE\_ENVIRONMENT": "Development",
 "COMMERCEENGINE\_AppSettings\_\_DeploymentId": "HabitatAuthoring01",
 ...
 }
 },
 "EngineProduction": {
 "commandName": "Project",
 "environmentVariables": {
 "ASPNETCORE\_ENVIRONMENT": "Production",
 "COMMERCEENGINE\_AppSettings\_\_DeploymentId": "HabitatAuthoring01",
 "COMMERCEENGINE\_AppSettings\_\_EnvironmentName": "HabitatAuthoring",
 ...
 }
 }
 }
}

> !注この例はすべての事前定義変数を示しているわけではありません。あらかじめ定義された環境変数の完全なリストについては、SitecoreのサンプルlaunchSettings.jsonファイルを参照してください [。商取引。SDK](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/sitecore-commerce-engine-sdk.html "Sitecore Commerce Engine SDK")。

## 環境変数docker-compose.yml

コンテナ化されたXCソリューションを実行する際、./docker-compose.ymlファイルで定義された環境変数が読み込まれます。 ./docker-compose.ymlファイルは環境変数をあらかじめ定義します。例えば:

engine\_authoring:
 image: ${XC\_SITECORE\_DOCKER\_REGISTRY}sitecore-xc1-engine:${XC\_PACKAGES\_TAG}
 depends\_on:
 mssql:
 condition: service\_healthy
 solr:
 condition: service\_started
 id:
 condition: service\_started
 redis:
 condition: service\_started
 environment:
 COMMERCEENGINE\_AppSettings\_\_DeploymentId: HabitatAuthoring01
 COMMERCEENGINE\_AppSettings\_\_EnvironmentName: HabitatAuthoring
 COMMERCEENGINE\_AppSettings\_\_SitecoreIdentityServerUrl: http://${IDENTITY\_SERVICE\_IP}
 COMMERCEENGINE\_AppSettings\_\_AllowedOrigins: http://${XC\_BIZFX\_IP}|http://${CM\_SERVICE\_IP}|http://${CD\_SERVICE\_IP}
 COMMERCEENGINE\_AppSettings\_\_AntiForgeryEnabled: "false"
 COMMERCEENGINE\_AppSettings\_\_UseHttpsInKestrel: "false"
 COMMERCEENGINE\_Caching\_\_Redis\_\_Options\_\_Configuration: ${REDIS\_SERVICE\_IP}
 COMMERCEENGINE\_Caching\_\_Redis\_\_Options\_\_InstanceName: Redis
 COMMERCEENGINE\_CommerceConnector\_\_ClientId: ${XC\_ENGINE\_CONNECT\_CLIENTID}
 COMMERCEENGINE\_GlobalDatabaseName: ${XC\_GLOBAL\_DB}
 COMMERCEENGINE\_GlobalDatabaseServer: ${SITECORE\_MSSQL\_SERVICE\_IP}
 COMMERCEENGINE\_GlobalDatabaseUserName: sa
 COMMERCEENGINE\_GlobalDatabasePassword: ${SQL\_SA\_PASSWORD}
 COMMERCEENGINE\_GlobalTrustedConnection: "${XC\_GLOBAL\_DB\_TRUSTED\_CONNECTION}"
 COMMERCEENGINE\_SharedDatabaseName: ${XC\_SHARED\_DB}
 COMMERCEENGINE\_SharedDatabaseServer: ${SITECORE\_MSSQL\_SERVICE\_IP}
 COMMERCEENGINE\_SharedDatabaseUserName: sa
 COMMERCEENGINE\_SharedDatabasePassword: ${SQL\_SA\_PASSWORD}
 COMMERCEENGINE\_SharedTrustedConnection: "${XC\_SHARED\_DB\_TRUSTED\_CONNECTION}"

> !注この例はすべての事前定義変数を示しているわけではありません。事前定義された環境変数の完全なリストについては、サンプル ./docker-compose.ymlファイルをご参照ください。