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 サンプルワークスペースs 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" },ヒントクライアント拡張機能 LUFFA をローカル (自己ホスト) Liferay インスタンスにデプロイして、これらの変数のデフォルト値を確認することもできます。
../../gradlew clean deployを使用してクライアント拡張機能をデプロイし、インスタンスのroutes/default/liferay-sample-etc-spring-boot/フォルダに含まれる各 ルート の内容を確認します。
これで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 サンプル カスタム エレメント 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 環境に独自のサービスとして表示されます。 まだLiferay DXPには接続できません。OAuth 2.0で認証する必要があるからです。

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

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

-
先ほどコピーしたマイクロサービスの 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://[Liferayドメイン]:[ターゲットポート]LIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENT_OAUTH2_USER_AGENT_CLIENT_ID:
[クライアントID]
-
変更を保存をクリックします。
-
画面上部の オプション (
) → サービスの再起動をクリックします。
サービスが再起動し、Liferay サービスに正常に接続できるようになります。
UAT 環境の基本認証構成により、Liferay とマイクロサービス間の通信が妨げられる可能性があります。 それでも接続が成功しない場合は、UAT でマイクロサービスをテストしている間、一時的に基本認証を無効にすることができます。 無効にするには、リポジトリ内の webserver/configs/uat/conf.d ファイルから auth_basic "Authentication Required"; 行を削除し、Web サーバー サービスを再デプロイします。
カスタム要素との接続をテストする
これで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_プロトコル | 文字列 | https |
| LIFERAY_OAUTH_APPLICATION_EXTERNAL_REFERENCE_CODES | カンマ区切りの文字列 | liferay-sample-etc-spring-boot-oauth-application-user-agent |
OAuthヘッドレスサーバークライアント拡張
これらの環境変数は、 OAuth ヘッドレス サーバー クライアント拡張を使用して認証するすべてのマイクロサービス クライアント拡張に必要です。
各変数名の ERC を、OAuth ヘッドレス サーバー クライアント拡張機能の外部参照コード に置き換えます。このコードは大文字に変換され、すべてのダッシュが削除されています (例: LIFERAYSAMPLEETCCRONOAUTHAPPLICATIONHEADLESSSERVER)。
| 環境変数 | 値のタイプ | サンプル値 |
|---|---|---|
| [ERC]_OAUTH2_ヘッドレス_サーバー_オーディエンス | 文字列 | https://www.mysite.com:58081 |
| [ERC]_OAUTH2_ヘッドレス_サーバー_クライアントID | 文字列 | id-aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa |
| [ERC]_OAUTH2_ヘッドレス_サーバー_クライアント_シークレット | 文字列 | 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_URIS | 文字列 | /o/oauth2/redirect |
| [ERC]_OAUTH2_TOKEN_URI | 文字列 | /o/oauth2/token |
| [ERC]_OAUTH2_ユーザーエージェント_スコープ | カンマ区切りの文字列 | Liferay.Headless.Admin.Workflow.everything |
OAuthユーザーエージェントクライアント拡張
これらの環境変数は、 OAuth ユーザー エージェント クライアント拡張を使用して認証するすべてのマイクロサービス クライアント拡張に必要です。
各変数名の ERC を、OAuth ヘッドレス サーバー クライアント拡張機能の外部参照コード に置き換えます。このコードは大文字に変換され、すべてのダッシュが削除されています (例: LIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENT)。
| 環境変数 | 値のタイプ | サンプル値 |
|---|---|---|
| [ERC]_OAUTH2_ユーザーエージェント_AUDIENCE | 文字列 | https://www.mysite.com:58081 |
| [ERC]_OAUTH2_ユーザーエージェント_クライアント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_URIS | 文字列 | /o/oauth2/redirect |
| [ERC]_OAUTH2_TOKEN_URI | 文字列 | /o/oauth2/token |
| [ERC]_OAUTH2_ユーザーエージェント_スコープ | カンマ区切りの文字列 | Liferay.Headless.Admin.Workflow.everything |