Reference
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

LCP.jsonによる設定

Liferay Cloud 環境内の各サービスには、サービスを構成するために使用できる LCP.json ファイルがあります。 サービスID、メモリ、CPU数、環境変数、ボリュームなどのプロパティを設定できます。

この表は、 LCP.jsonに追加できるプロパティの一覧と説明です。

項目種類デフォルト値説明
id文字列ランダムサービスID
image文字列""Docker Hubからのサービスイメージ
envオブジェクト未分類環境変数
loadBalancerオブジェクト{}公開ポートとドメインの宣言
cpu数字1CPUの数
scale数字1インスタンスの開始数
memory数字512メモリ量(MB)
volumesオブジェクト未分類データを永続化するためのパス
readinessProbeオブジェクト{ "timeoutSeconds": 5 }サービス準備状況の確認
livenessProbeオブジェクト{ "timeoutSeconds": 5 }サービスの生存確認
dependencies配列[]依存関係のデプロイメント順序
kind文字列Deploymentデプロイメントタイプ(例:デプロイメントまたはステートフルセット)
strategyオブジェクト{ "type": "RollingUpdate" }デプロイ戦略(RollingUpdateやRecreateなど)
ports配列[]ポートとプロトコルの宣言
environmentsオブジェクト{}環境固有の構成
deployブール値true指定された環境にサービスがデプロイされるかどうか。 このプロパティは、ルート レベルではなく、 環境 プロパティ内でのみ使用してください。 サンプル LCP.json ファイルを参照してください。
autoscaleオブジェクト{ "cpu": 80, "memory": 80 }オートスケーリングでのCPUおよびメモリの目標平均使用率。 自動スケーリングでのこの動作の詳細については、 自動スケーリングを参照してください。

使用量

ここにすべてのプロパティを使用する LCP.json ファイルの例を示します。

{
  "id": "myservice",
  "image": "liferaycloud/example",
  "env": {
    "DB_USER": "root",
    "DB_PASSWORD": "pass123"
  },
  "loadBalancer": {
    "cdn": true,
    "targetPort": 3000,
    "customDomains": ["example.com"],
    "ssl": {
      "key": "...",
      "crt": "..."
    }
  },
  "cpu": 2,
  "scale": 2,
  "memory": 2048,
  "volumes": {
    "storage": "/opt/storage"
  },
  "livenessProbe": {
    "timeoutSeconds": 5,
    "httpGet": {
      "path": "/status",
      "port": 3000
    },
    "initialDelaySeconds": 40,
    "periodSeconds": 5,
    "successThreshold": 1
  },
  "readinessProbe": {
    "timeoutSeconds": 5,
    "exec": {
      "command": ["cat", "/tmp/healthy"]
    },
    "initialDelaySeconds": 40,
    "periodSeconds": 5
  },
  "dependencies": ["service1", "service2"],
  "kind": "StatefulSet",
  "strategy": {
    "type": "RollingUpdate"
  },
  "ports": [
    {
      "port": 3400,
      "targetPort": 7000,
      "protocol": "TCP"
    },
    {
      "port": 9000,
      "targetPort": 8000,
      "protocol": "TCP",
      "external": true
    }
  ],
  "environments": {
    "prd": {
      "memory": 4096,
      "cpu": 6
    },
    "dev": {
      "deploy": false
    }
  },
  "autoscale": {
    "cpu": 90,
    "memory": 90
  }
}

環境 構成

環境 構成では、 LCP.json 構成に対して環境固有のオーバーライドが可能になります。

たとえば、CI サービスは infra 環境にのみデプロイされる必要があるため、この environments 構成は、特に infra 環境に対して動作 ("deploy": false) をオーバーライドします。

{
  "id": "ci",
  "memory": 8192,
  "cpu": 4,
  "deploy": false,
  "environments": {
    "infra": {
      "deploy": true
    }
  }
}

JSONオブジェクトのオーバーライド

JSON オブジェクト構成 ( loadBalancer 構成など) の場合は、環境ごとにオーバーライドする特定のフィールドのみを指定します。 その他のフィールドは、デフォルトで既存の構成から継承されます。

この例では、 環境 構成により、 dev 環境の CDN が無効になりますが、すべての環境のターゲット ポート 80 が保持されます。

{
  "id": "webserver",
  "memory": 512,
  "cpu": 2,
  "loadBalancer": {
    "targetPort": 80,
    "cdn": true
  },
  "environments": {
    "dev": {
      "loadBalancer": {
        "cdn": false
      }
    }
  }
}

JSON配列のオーバーライド

JSON オブジェクトとは異なり、 環境 構成で JSON 配列をオーバーライドする場合は、オーバーライドで配列全体を定義する必要があります。 含まない配列の要素は、環境固有の結果に含まれない。

この例では、 ports 配列をオーバーライドし、 environments 構成によって、 uat 環境を 1 つのポートのみで構成します (他のすべての環境では 2 つのポート)。

{
  "id": "database",
  "memory": 1024,
  "cpu": 2,
  "ports": [
    {
      "port": 3306,
      "external": false
    },
    {
      "port": 3000,
      "external": false
    }
  ],
  "environments": {
    "uat": {
      "ports": [
        {
          "port": 3306,
          "external": true
        }
      ]
    }
  }
}