環境変数の定義
環境変数は動的なプレースホルダーのセットであり、環境内でのサービスの動作に影響を与える可能性があります。
環境変数は、Liferay Cloud コンソールから、または各サービスの LCP.json ファイルを設定することで定義できます。
Liferay Cloud は常に最新の設定変更を適用します。 LCP.jsonファイルで最新の変更が行われた場合、再起動時に、環境変数がWebコンソールに反映されます。 ただし、Web コンソールで環境変数が変更されると、コンテナは新しい構成で再起動されます。
Liferay Cloud Console で環境変数を定義する
Liferay Cloud コンソールを使用して、サービスの環境変数を追加、変更、または削除できます。 この方法でサービスを設定すると、すべての変数は、定義されたプロジェクト環境にスコープされます。
サービスの環境変数を更新すると、変更を適用するためにサービスが再起動されます。 再起動中、サービスは数分間リクエストの受信を停止し、変数の値によっては異なる動作をすることがあります。
Liferay Cloud コンソール経由でサービスに環境変数を追加するには、次の手順に従います。
-
プロジェクト環境に移動します。
-
環境メニューの [Services] をクリックします。
-
設定するサービスをクリックすると、その環境変数が表示されます。
![図1:サービスの[環境変数]タブに移動します。](https://resources.learn.liferay.com/images/dxp/latest/en/cloud/reference/defining-environment-variables/images/01.png)
-
新しい環境変数をキーと値のペアで入力します。 次の例では、Liferay サービスのクラスタリングを無効にします。
- キー:
LCP_PROJECT_LIFERAY_CLUSTER_ENABLED - 値:
false
- キー:
-
Save Changes をクリックすると、新しい環境変数でサービスが再起動します。
環境変数をサービスに追加すると、サービスのの 環境変数 タブからいつでも環境変数を削除したり、値を変更したりできます。
変数を削除するには、 [削除] ボタン(⨉)をクリックします。
変数の値を変更するには、 表示 アイコンをクリックし、新しい値を入力します。
変数の削除や変更が完了したら、 [Save Changes] をクリックして、環境変数が更新された状態でサービスを再起動します。
![図2:[アイコンを表示]をクリックして、変数の値を表示および編集します。](https://resources.learn.liferay.com/images/dxp/latest/en/cloud/reference/defining-environment-variables/images/02.png)
LCP.jsonによる環境変数の定義
サービスの環境変数は、 LCP.json ファイルの env プロパティを使って定義できます。 このようにサービスを構成すると、すべての環境または選択した環境にわたってサービスの動作を定義できます。
次の例では、 LCP_PROJECT_LIFERAY_CLUSTER_ENABLED 変数に trueという値を定義しています。 この変数は、特に指定がない限り、すべての環境にデフォルトで適用されるトップレベルの属性として設定されます。
{
"id": "liferay",
"image": "liferaycloud/liferay-dxp:7.2-4.0.0",
"env": {
"LCP_PROJECT_LIFERAY_CLUSTER_ENABLED": "true"
}
}
次の例では、トップレベル属性の例外を作成し、 dev 環境のLCP_PROJECT_LIFERAY_CLUSTER_ENABLED 変数に falseの値を定義しています。
{
"environments": {
"dev": {
"env": {
"LCP_PROJECT_LIFERAY_CLUSTER_ENABLED": "false"
}
}
}
}
サービスの LCP.json ファイルの編集が完了したら、変更を保存してデプロイし、環境変数を更新します。 詳細については、「 Liferay PaaS でのサービスの更新 」を参照してください。
秘密の環境変数
通常の環境変数には、特別なセキュリティ対策はありません。 Liferay Cloud プロジェクトにアクセスできるユーザーは、サービスの変数値も確認できます。
機密性の高い変数値(ログイン認証情報など)を保存するには、シークレットを使用することができます。 シークレットはバックエンドで暗号化され、 管理者 役割がないユーザーから非表示にすることができます。 通常の環境変数は、値を保護するために 秘密を参照 することもあります。 詳細については、 Secret を使用した安全な環境変数の管理 を参照してください。