Liferay PaaSへのマイクロサービスクライアント拡張機能のデプロイ
ほとんどの場合、Liferay PaaS では、 セルフホストインスタンス と同様にクライアント拡張機能をデプロイできます。
この手順で、フロントエンド、構成、およびバッチクライアント拡張機能をデプロイします。
-
クライアント拡張機能プロジェクトフォルダを、PaaS Liferayワークスペースの
client-extensions/フォルダ(liferay/configs/[ENV]/client-extensions/)に配置します。 -
Liferay サービスの新しいビルドを作成し、 それを環境にデプロイします。
クライアント拡張機能はLiferayのDockerイメージの一部として追加され、Liferay内で単独で動作します。
しかし、 マイクロサービス クライアント拡張機能 を Liferay PaaS にデプロイするには、より多くの作業が必要です。 ここでは、そのプロセスについて学び、Liferayのサンプルワークスペースを使って実際に手順を説明します。
マイクロサービスクライアント拡張機能のデプロイ
Liferay PaaSでマイクロサービスクライアント拡張機能を使用するための一般的な手順は以下のとおりです。
-
Liferay DXPが、別のクラウドコンテナで実行されるマイクロサービスと通信できるようにするには、追加の環境変数が必要です。 全リストはこちらの表を参照。
-
マイクロサービス クライアント拡張プロジェクトには、Liferay で認証するためのクライアント拡張機能 ( OAuth ユーザー エージェント クライアント拡張機能 など) を含める必要があります。 この手順では、それをLiferay DXP側の構成としてデプロイします。
-
この手順では、マイクロサービスをLiferayとは別のコンテナ内で実行される独立したサービスとしてデプロイします。
-
クライアント拡張機能をLiferay DXPにデプロイすると、OAuth 2.0プロファイルが自動的に作成されますが、マイクロサービスと連携させるにはネットワーク構成を更新する必要があります。
-
この手順では、デプロイに必要な環境変数を追加します。 これらの最終変数の値を確認するには、クライアント拡張機能を既にデプロイしている必要があります。
これらの手順のほとんどは、クラウドネットワーク内で安全に通信するための独自の要件があるため、マイクロサービスクライアント拡張機能に特有のものです。
OAuthユーザーエージェントクライアント拡張機能を使用したマイクロサービスで、ご自身で試してみてください。 この例では、Liferay サンプルワークスペースの Spring Boot マイクロサービス を使用します。
Liferayワークスペースを準備する
もしお持ちでない場合は、Liferayのサンプルワークスペースをダウンロードしてください。
curl -o com.liferay.sample.workspace-latest.zip https://repository.liferay.com/nexus/service/local/artifact/maven/content\?r\=liferay-public-releases\&g\=com.liferay.workspace\&a\=com.liferay.sample.workspace\&\v\=LATEST\&p\=zip
この .zip ファイルには、この例に必要な 2 つの拡張機能を含む、さまざまなサンプル クライアント拡張機能を含むワークスペースが含まれています。
-
liferay-sample-etc-spring-boot、マイクロサービス クライアント拡張プロジェクト。 また、認証のためのOAuthユーザーエージェントクライアント拡張機能も含まれています。 -
liferay-sample-custom-element-2、カスタムウィジェットを備えたフロントエンドクライアント拡張機能。 このクライアント拡張機能を使用して、Liferayのマイクロサービスからデータを取得し、両者間の接続が正常に機能していることを実証します。
ワークスペースを解凍し、 client-extensions/ フォルダーを PaaS プロジェクト リポジトリの liferay/configs/[ENV]/ フォルダーにコピーします。 既にクライアント拡張機能フォルダが存在する場合は、既存のフォルダと統合してください。
または、 .zip フォルダーの内容をすべてワークスペースにコピーすることもできますが、 settings.gradle などの既存のファイルにある重要な設定を上書きしないように注意してください。
必要な環境変数を設定する
マイクロサービスを構築してデプロイする前に、Liferayとの通信を設定するための環境変数をいくつか追加してください。
-
コピーした
client-extensions/liferay-sample-etc-spring-boot/フォルダーで、LCP.jsonファイルを開きます。 -
envブロックで、 に新しい環境変数 を以下の値で追加します。COM_LIFERAY_LXC_DXP_DOMAINS: ウェブサイトのドメイン。 (UAT Liferayインスタンスにカスタムドメインを設定していない場合、値は
webserver-mysite-uat.lfr.cloudのようになります)。COM_LIFERAY_LXC_DXP_MAIN_DOMAIN: ウェブサイトのドメイン。
COM_LIFERAY_LXC_DXP_SERVER_PROTOCOL:
httpsLIFERAY_OAUTH_APPLICATION_EXTERNAL_REFERENCE_CODES:
liferay-sample-etc-spring-boot-oauth-application-user-agentこれらの環境変数はすべて、Liferay PaaS のマイクロサービス クライアント拡張機能 に 必要です。
-
OAuth ユーザー エージェント クライアント拡張機能を使用して認証するために必要な追加の環境変数をすべて追加します。ただし、
[ERC]_OAUTH2_USER_AGENT_AUDIENCEと[ERC]_OAUTH2_USER_AGENT_CLIENT_IDは除きます (これらはデプロイ後に構成する方が良いです)。各環境変数名の
[ERC]をLIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENTに置き換えます。 この例では、ルートとスコープが変更されないため、表 に記載されている の例の値を使用できます。"env": { "COM_LIFERAY_LXC_DXP_DOMAINS": "webserver-customereducation-uat.lfr.cloud", "COM_LIFERAY_LXC_DXP_MAIN_DOMAIN": "webserver-customereducation-uat.lfr.cloud", "COM_LIFERAY_LXC_DXP_SERVER_PROTOCOL": "https", "LIFERAY_OAUTH_APPLICATION_EXTERNAL_REFERENCE_CODES": "liferay-sample-etc-spring-boot-oauth-application-user-agent", "LIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENT_OAUTH2_AUTHORIZATION_URI": "/o/oauth2/authorize", "LIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENT_OAUTH2_INTROSPECTION_URI": "/o/oauth2/introspect", "LIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENT_OAUTH2_JWKS_URI": "/o/oauth2/jwks", "LIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENT_OAUTH2_REDIRECT_URIS": "/o/oauth2/redirect", "LIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENT_OAUTH2_TOKEN_URI": "/o/oauth2/token", "LIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENT_OAUTH2_USER_AGENT_SCOPES": "Liferay.Headless.Admin.Workflow.everything" },
これで、クライアント拡張機能をLiferayにデプロイする準備が整いました。
Liferay DXPを使用してクライアント拡張機能を構築およびデプロイする
PaaSリポジトリの liferay/ フォルダにあるLiferayワークスペースは、クライアント拡張機能を含むコードを自動的にビルドしてデプロイします。
次に、Spring Bootとカスタム要素クライアント拡張機能を含む新しいビルドを作成してデプロイし、Liferay DXPで利用できるようにします。
-
リポジトリのルートフォルダから、新しいブランチを作成し、変更をコミットしてください。
git checkout -b client-extensionsgit add .git commit -m "Deploy client extensions to Liferay DXP." -
変更内容をプッシュしてビルドを作成します。
git push origin client-extensions遅延の後、新しいビルドが作成されます。 クライアント拡張はLiferay サービスコンテナの
osgi/client-extensions/フォルダに自動的にデプロイされます。 -
Liferay Cloud コンソールで、 ビルド ページに移動します。
-
アクション (
) → ビルドを… にデプロイ をクリック
-
環境の選択 ドロップダウンメニューから、本番環境を選択してください。
-
変更による影響を承認するチェックボックスをクリックしてください。
-
ビルドをデプロイ をクリックします。
しばらくすると、Liferay サービスは、ページに配置する新しいカスタムウィジェット ( Liferay Sample Custom Element 2と呼ばれます) とマイクロサービスの OAuth 2.0 構成の両方を使用して再デプロイされます。
マイクロサービスをクラウド環境にデプロイする
Liferay DXPに必要な設定はデプロイ済みですが、Spring Bootマイクロサービスはまだ実行されていません。 マイクロサービスは、独立したサービスとして、独自のコンテナ内で実行されなければなりません。
-
Liferay サンプルワークスペースで、
client-extensions/liferay-sample-etc-spring-boot/フォルダーに戻ります。 -
クライアント拡張機能を作成します。
../../gradlew clean buildクライアント拡張機能は、
dist/フォルダーに LUFFA としてビルドされます。 -
LCPツールを使用して、クライアント拡張機能LUFFAをデプロイします。
lcp deploy --extension dist/liferay-sample-etc-spring-boot.zipまだLiferay Cloudへの認証を行っていない場合、ツールはブラウザを使用して認証を行うよう促すことがあります。
-
指示が表示されたら、リストからUAT環境を選択してください。
しばらくすると、クライアント拡張機能がUAT環境に独立したサービスとして表示されます。 ただし、OAuth 2.0による認証が必要なため、現時点ではLiferay DXPに接続することはできません。

OAuth 2.0プロファイルを更新する
LiferayではOAuth 2.0プロファイルが自動的に作成されますが、ローカルテスト用のプレースホルダー値がいくつか含まれているため、それらを調整する必要があります。
マイクロサービスのネットワーク情報を確認してください
まず、クラウドネットワーク上でマイクロサービスのURLとポート情報を確認してください。
-
クラウドコンソールで、UAT環境に移動します。
-
左側のメニューから [Network] をクリックします。
ネットワークページには、HTTPSを使用して各サービスにアクセスするためのネットワーク情報が表示されます。
-
クライアント拡張サービスの アドレス と ターゲット ポート フィールドの値、および ポート フィールドの 2 番目の数値 (HTTPS 接続に使用されます) をコピーします。 後で使用するために、それらを別々にメモしておいてください。

OAuth 2.0プロファイルのネットワーク情報を更新する
-
UAT環境のLiferayインスタンスに管理者としてログインしてください。
-
グローバルメニュー (
) → コントロールパネル → OAuth 2 管理 をクリックします。 -
Liferay Sample Etc Spring Boot OAuth Application User Agent プロファイルをクリックします。

-
WebサイトURL フィールドを、以前にコピーしたマイクロサービスのURLで更新します。 末尾のスラッシュを削除し、コロンとコピーしたHTTPSポートの値を追加します。例:
https://liferaysampleetcspringboot-customereducation-uat.lfr.cloud:443 -
コールバック URI フィールドで、既存の文字列の localhost を、Liferay インスタンスの URL (
https://は含まない) に置き換えます。例:https://www.mysite.com@port-with-colon@/o/oauth2/redirect -
ページの下部にある 保存 をクリックします。
これで、OAuth 2.0プロファイルに正しいネットワーク情報が登録されました。 あとは、クライアント拡張サービス用の環境変数をいくつか設定するだけです。
環境変数を更新する
-
OAuth 2.0 プロファイルのページを開いたまま、上部にある クライアント ID の値をコピーします。

-
Liferay Cloudコンソールに戻り、UAT環境に移動してください。
-
サービス → liferaysampleeetcspringboot サービスをクリックします。
-
サービスの環境変数ページで、以前にコピーした値を使用して、2つの新しい環境変数を追加します。
LIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENT_OAUTH2_USER_AGENT_AUDIENCE:
https://[Your Liferay domain]:[Target port]LIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENT_OAUTH2_USER_AGENT_CLIENT_ID:
[クライアントID]
-
をクリックして変更を保存します。
-
画面上部の オプション (
) → サービスの再起動 をクリックします。
サービスが再起動され、Liferayサービスに正常に接続できるようになります。
UAT環境の基本認証設定によっては、Liferayとマイクロサービス間の通信が妨げられる可能性があります。 それでも接続がうまくいかない場合は、UAT環境でマイクロサービスをテストしている間、一時的に基本認証を無効にすることができます。 これを無効にするには、リポジトリのwebserver/configs/uat/conf.dファイルからauth_basic "Authentication Required";の行を削除し、ウェブサーバーサービスを再デプロイします。
カスタム要素との接続をテストする
これで、Liferayにデプロイしたカスタム要素との接続をテストする準備が整いました。
-
UAT環境のLiferayインスタンスにアクセスしてログインしてください。
-
サイトのホームページで、ページ上部の 編集 (
) をクリックします。 -
画面左側のフラグメントとウィジェットのメニューから、 ウィジェットをクリックします。
-
Liferay Sample Custom Element 2 ウィジェットをページにドラッグします。

-
ページ上部の 公開 をクリックします。
ページが公開されると、カスタムウィジェットにジョークのメッセージが読み込まれる。 ジョークメッセージは、Liferayとは別のコンテナで実行されているマイクロサービスクライアント拡張機能から取得されます。

このカスタム要素は、 liferay-sample-etc-node クライアント拡張機能とも統合されます。 クライアント拡張機能もデプロイして適切に構成していない場合、追加のメッセージが表示されますが、読み込みが完了しません(上の画像のように)。 想定されるマイクロサービスと通信できないため、ブラウザのコンソールにもエラーが表示されます。
環境変数リファレンス
すべてのマイクロサービスクライアント拡張機能
これらの環境変数は、 すべての マイクロサービス クライアント拡張機能に必要です。
| 環境変数 | 値のタイプ | 例の値 |
|---|---|---|
| COM_LIFERAY_LXC_DXP_DOMAINS | カンマ区切りの文字列 | www.mysite.com,www.extrasite.com |
| COM_LIFERAY_LXC_DXP_メインドメイン | 文字列 | www.mysite.com |
| COM_LIFERAY_LXC_DXP_SERVER_PROTOCOL | 文字列 | https |
| LIFERAY_OAUTH_APPLICATION_外部参照コード | カンマ区切りの文字列 | liferay-sample-etc-spring-boot-oauth-application-user-agent |
OAuthヘッドレスサーバークライアント拡張
これらの環境変数は、 OAuth ヘッドレス サーバー クライアント拡張機能 を使用して認証を行うマイクロ サービス クライアント拡張機能に必要です。
各変数名の ERC を、OAuth ヘッドレス サーバー クライアント拡張機能の外部参照コード を大文字に変換し、すべてのハイフンを削除したもの に置き換えます (例: LIFERAYSAMPLEETCCRONOAUTHAPPLICATIONHEADLESSERVER)。
| 環境変数 | 値のタイプ | 例の値 |
|---|---|---|
| [ERC]_OAUTH2_HEADLESS_SERVER_AUDIENCE | 文字列 | https://www.mysite.com:58081 |
| [ERC]_OAUTH2_HEADLESS_SERVER_CLIENT_ID | 文字列 | id-aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa |
| [ERC]_OAUTH2_HEADLESS_SERVER_CLIENT_SECRET | 文字列 | secret-aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa |
| [ERC]_OAUTH2_認証URI | 文字列 | /o/oauth2/authorize |
| [ERC]_OAUTH2_INTROSPECTION_URI | 文字列 | /o/oauth2/introspect |
| [ERC]_OAUTH2_JWKS_URI | 文字列 | /o/oauth2/jwks |
| [ERC]_OAUTH2_REDIRECT_URI | 文字列 | /o/oauth2/redirect |
| [ERC]_OAUTH2_トークンURI | 文字列 | /o/oauth2/token |
| [ERC]_OAUTH2_USER_AGENT_SCOPES | カンマ区切りの文字列 | Liferay.Headless.Admin.Workflow.everything |
OAuthユーザーエージェントクライアント拡張
これらの環境変数は、 OAuth ユーザーエージェントクライアント拡張機能 を使用して認証を行うマイクロサービスクライアント拡張機能に必要です。
各変数名の ERC を、OAuth ヘッドレス サーバー クライアント拡張機能の外部参照コード を大文字に変換し、すべてのハイフンを削除したもの に置き換えます (例: LIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENT)。
| 環境変数 | 値のタイプ | 例の値 |
|---|---|---|
| [ERC]_OAUTH2_USER_AGENT_AUDIENCE | 文字列 | https://www.mysite.com:58081 |
| [ERC]_OAUTH2_USER_AGENT_CLIENT_ID | 文字列 | id-aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa |
| [ERC]_OAUTH2_認証URI | 文字列 | /o/oauth2/authorize |
| [ERC]_OAUTH2_INTROSPECTION_URI | 文字列 | /o/oauth2/introspect |
| [ERC]_OAUTH2_JWKS_URI | 文字列 | /o/oauth2/jwks |
| [ERC]_OAUTH2_REDIRECT_URI | 文字列 | /o/oauth2/redirect |
| [ERC]_OAUTH2_トークンURI | 文字列 | /o/oauth2/token |
| [ERC]_OAUTH2_USER_AGENT_SCOPES | カンマ区切りの文字列 | Liferay.Headless.Admin.Workflow.everything |