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

Liferay PaaSへのマイクロサービスクライアント拡張機能のデプロイ

ほとんどの場合、Liferay PaaS では、 セルフホストインスタンス と同様にクライアント拡張機能をデプロイできます。

この手順で、フロントエンド、構成、およびバッチクライアント拡張機能をデプロイします。

  1. クライアント拡張機能プロジェクトフォルダを、PaaS Liferayワークスペースの client-extensions/ フォルダ(liferay/configs/[ENV]/client-extensions/)に配置します。

  2. Liferay サービスの新しいビルドを作成し、 それを環境にデプロイします

クライアント拡張機能はLiferayのDockerイメージの一部として追加され、Liferay内で単独で動作します。

しかし、 マイクロサービス クライアント拡張機能 を Liferay PaaS にデプロイするには、より多くの作業が必要です。 ここでは、そのプロセスについて学び、Liferayのサンプルワークスペースを使って実際に手順を説明します。

マイクロサービスクライアント拡張機能のデプロイ

Liferayワークスペース10.0.0+が必要です

Liferay PaaSでマイクロサービスクライアント拡張機能を使用するための一般的な手順は以下のとおりです。

  1. Liferayワークスペースを準備する

  2. LCP.json で必要な環境変数を設定してください。

    Liferay DXPが、別のクラウドコンテナで実行されるマイクロサービスと通信できるようにするには、追加の環境変数が必要です。 全リストはこちらの表を参照。

  3. Liferay DXPにクライアント拡張機能をデプロイする

    マイクロサービス クライアント拡張プロジェクトには、Liferay で認証するためのクライアント拡張機能 ( OAuth ユーザー エージェント クライアント拡張機能 など) を含める必要があります。 この手順では、それをLiferay DXP側の構成としてデプロイします。

  4. マイクロサービスをクラウド環境にデプロイする

    この手順では、マイクロサービスをLiferayとは別のコンテナ内で実行される独立したサービスとしてデプロイします。

  5. OAuth 2.0プロファイルを更新する

    クライアント拡張機能をLiferay DXPにデプロイすると、OAuth 2.0プロファイルが自動的に作成されますが、マイクロサービスと連携させるにはネットワーク構成を更新する必要があります。

  6. マイクロサービスの環境変数を更新する

    この手順では、デプロイに必要な環境変数を追加します。 これらの最終変数の値を確認するには、クライアント拡張機能を既にデプロイしている必要があります。

これらの手順のほとんどは、クラウドネットワーク内で安全に通信するための独自の要件があるため、マイクロサービスクライアント拡張機能に特有のものです。

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との通信を設定するための環境変数をいくつか追加してください。

  1. コピーした client-extensions/liferay-sample-etc-spring-boot/ フォルダーで、 LCP.json ファイルを開きます。

  2. 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: https

    LIFERAY_OAUTH_APPLICATION_EXTERNAL_REFERENCE_CODES: liferay-sample-etc-spring-boot-oauth-application-user-agent

    これらの環境変数はすべて、Liferay PaaS のマイクロサービス クライアント拡張機能 に 必要です。

  3. 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で利用できるようにします。

  1. リポジトリのルートフォルダから、新しいブランチを作成し、変更をコミットしてください。

    git checkout -b client-extensions
    
    git add .
    
    git commit -m "Deploy client extensions to Liferay DXP."
    
  2. 変更内容をプッシュしてビルドを作成します。

    git push origin client-extensions
    

    遅延の後、新しいビルドが作成されます。 クライアント拡張はLiferay サービスコンテナのosgi/client-extensions/フォルダに自動的にデプロイされます。

  3. Liferay Cloud コンソールで、 ビルド ページに移動します。

  4. アクション (Actions icon) → ビルドを… にデプロイ をクリック

    ビルドページで、新しいビルドをUAT環境にデプロイしてください。

  5. 環境の選択 ドロップダウンメニューから、本番環境を選択してください。

  6. 変更による影響を承認するチェックボックスをクリックしてください。

  7. ビルドをデプロイ をクリックします。

しばらくすると、Liferay サービスは、ページに配置する新しいカスタムウィジェット ( Liferay Sample Custom Element 2と呼ばれます) とマイクロサービスの OAuth 2.0 構成の両方を使用して再デプロイされます。

マイクロサービスをクラウド環境にデプロイする

Liferay DXPに必要な設定はデプロイ済みですが、Spring Bootマイクロサービスはまだ実行されていません。 マイクロサービスは、独立したサービスとして、独自のコンテナ内で実行されなければなりません。

  1. Liferay サンプルワークスペースで、 client-extensions/liferay-sample-etc-spring-boot/ フォルダーに戻ります。

  2. クライアント拡張機能を作成します。

    ../../gradlew clean build
    

    クライアント拡張機能は、 dist/ フォルダーに LUFFA としてビルドされます。

  3. LCPツールを使用して、クライアント拡張機能LUFFAをデプロイします。

    lcp deploy --extension dist/liferay-sample-etc-spring-boot.zip
    

    まだLiferay Cloudへの認証を行っていない場合、ツールはブラウザを使用して認証を行うよう促すことがあります。

  4. 指示が表示されたら、リストからUAT環境を選択してください。

しばらくすると、クライアント拡張機能がUAT環境に独立したサービスとして表示されます。 ただし、OAuth 2.0による認証が必要なため、現時点ではLiferay DXPに接続することはできません。

このマイクロサービスは、お客様のLiferay Cloud環境内の別のコンテナで実行されています。

OAuth 2.0プロファイルを更新する

LiferayではOAuth 2.0プロファイルが自動的に作成されますが、ローカルテスト用のプレースホルダー値がいくつか含まれているため、それらを調整する必要があります。

マイクロサービスのネットワーク情報を確認してください

まず、クラウドネットワーク上でマイクロサービスのURLとポート情報を確認してください。

  1. クラウドコンソールで、UAT環境に移動します。

  2. 左側のメニューから [Network] をクリックします。

    ネットワークページには、HTTPSを使用して各サービスにアクセスするためのネットワーク情報が表示されます。

  3. クライアント拡張サービスの アドレスターゲット ポート フィールドの値、および ポート フィールドの 2 番目の数値 (HTTPS 接続に使用されます) をコピーします。 後で使用するために、それらを別々にメモしておいてください。

    後で使用するために、アドレス、ターゲットポート、HTTPSポートの各フィールドの値をコピーしてください。

OAuth 2.0プロファイルのネットワーク情報を更新する

  1. UAT環境のLiferayインスタンスに管理者としてログインしてください。

  2. グローバルメニュー (Global Menu) → コントロールパネルOAuth 2 管理 をクリックします。

  3. Liferay Sample Etc Spring Boot OAuth Application User Agent プロファイルをクリックします。

    Liferay Sample Etc Spring Boot OAuth 2.0 プロファイルは、OAuth ユーザーエージェントクライアント拡張機能を含むクライアント拡張機能をデプロイした際に自動的に作成されました。

  4. WebサイトURL フィールドを、以前にコピーしたマイクロサービスのURLで更新します。 末尾のスラッシュを削除し、コロンとコピーしたHTTPSポートの値を追加します。例:

    https://liferaysampleetcspringboot-customereducation-uat.lfr.cloud:443
    
  5. コールバック URI フィールドで、既存の文字列の localhost を、Liferay インスタンスの URL ( https://は含まない) に置き換えます。例:

    https://www.mysite.com@port-with-colon@/o/oauth2/redirect
    
  6. ページの下部にある 保存 をクリックします。

これで、OAuth 2.0プロファイルに正しいネットワーク情報が登録されました。 あとは、クライアント拡張サービス用の環境変数をいくつか設定するだけです。

環境変数を更新する

  1. OAuth 2.0 プロファイルのページを開いたまま、上部にある クライアント ID の値をコピーします。

    クライアントIDの値は、マイクロサービスの環境変数の1つに必要です。

  2. Liferay Cloudコンソールに戻り、UAT環境に移動してください。

  3. サービスliferaysampleeetcspringboot サービスをクリックします。

  4. サービスの環境変数ページで、以前にコピーした値を使用して、2つの新しい環境変数を追加します。

    LIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENT_OAUTH2_USER_AGENT_AUDIENCE: https://[Your Liferay domain]:[Target port]

    LIFERAYSAMPLEETCSPRINGBOOTOAUTHAPPLICATIONUSERAGENT_OAUTH2_USER_AGENT_CLIENT_ID: [クライアントID]

    これらは、マイクロサービスを構成するために必要な最後の2つの環境変数です。

  5. をクリックして変更を保存します。

  6. 画面上部の オプション (Options) → サービスの再起動 をクリックします。

サービスが再起動され、Liferayサービスに正常に接続できるようになります。

ヒント

UAT環境の基本認証設定によっては、Liferayとマイクロサービス間の通信が妨げられる可能性があります。 それでも接続がうまくいかない場合は、UAT環境でマイクロサービスをテストしている間、一時的に基本認証を無効にすることができます。 これを無効にするには、リポジトリのwebserver/configs/uat/conf.dファイルからauth_basic "Authentication Required";の行を削除し、ウェブサーバーサービスを再デプロイします。

カスタム要素との接続をテストする

これで、Liferayにデプロイしたカスタム要素との接続をテストする準備が整いました。

  1. UAT環境のLiferayインスタンスにアクセスしてログインしてください。

  2. サイトのホームページで、ページ上部の 編集 (Edit icon) をクリックします。

  3. 画面左側のフラグメントとウィジェットのメニューから、 ウィジェットをクリックします。

  4. Liferay Sample Custom Element 2 ウィジェットをページにドラッグします。

    Liferay Sample Custom Element 2ウィジェットは、マイクロサービスと通信してジョークメッセージを取得し、表示します。

  5. ページ上部の 公開 をクリックします。

ページが公開されると、カスタムウィジェットにジョークのメッセージが読み込まれる。 ジョークメッセージは、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