JBoss EAP XP 5.0 の使用
JBoss EAP XP 5.0 向け
概要
多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
JBoss EAP ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
エラーを報告したり、ドキュメントを改善したりするには、Red Hat Jira アカウントにログインし、課題を送信してください。Red Hat Jira アカウントをお持ちでない場合は、アカウントを作成するように求められます。
手順
- このリンクをクリック してチケットを作成します。
- Summary に課題の簡単な説明を入力します。
- Description に課題や機能拡張の詳細な説明を入力します。問題があるドキュメントのセクションへの URL も記載してください。
- Submit をクリックすると、課題が作成され、適切なドキュメントチームに転送されます。
第1章 最新の MicroProfile 機能向けの JBoss EAP XP リンクのコピーリンクがクリップボードにコピーされました!
1.1. 既存の JBoss EAP 8.0 サーバーなしで JBoss EAP XP 5.0 をインストールする リンクのコピーリンクがクリップボードにコピーされました!
最初に JBoss EAP 8.0 サーバーを事前にインストールせずに JBoss EAP XP 5.0 をインストールする場合は、以下の手順を実行します。
前提条件
- インターネットにアクセスできる。
- Red Hat カスタマーポータルでアカウントを作成し、ログインしている。
-
jboss-eap-installation-managerをダウンロードしている。
Update 02 以降では jboss-eap-installation-manager を使用します。Red Hat カスタマーポータルの JBoss EAP 8.0 パッチ ページから正しいバージョンをダウンロードするか、以下のコマンドを実行して既存のインストールを更新します。
./bin/jboss-eap-installation-manager.sh update perform --self
./bin/jboss-eap-installation-manager.sh update perform --self
次のコマンドを実行して、インストールマネージャーのバージョンを確認します。
./bin/jboss-eap-installation-manager.sh --version
./bin/jboss-eap-installation-manager.sh --version
手順
-
ターミナルエミュレーターを開き、
jboss-eap-installation-managerディレクトリーに移動します。 jboss-eap-installation-managerディレクトリーから次のコマンドを実行して、JBoss EAP XP をインストールします。./bin/jboss-eap-installation-manager.sh install --profile eap-xp-5.0 --dir eap-xp-5
./bin/jboss-eap-installation-manager.sh install --profile eap-xp-5.0 --dir eap-xp-5Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2. 既存の JBoss EAP 8.0 インストールに JBoss EAP XP 5.0 機能パックを追加する リンクのコピーリンクがクリップボードにコピーされました!
jboss-eap-installation-manager を使用して、既存の JBoss EAP インストールに追加の JBoss EAP XP 5.0 機能パックを追加できます。
前提条件
- Red Hat カスタマーポータルにアカウントがあり、ログインしている。
- JBoss EAP XP 5.0 のサポート対象の構成を確認している。
- サポート対象の JDK をインストールしている。
-
jboss-eap-installation-managerをダウンロードしている。jboss-eap-installation-managerのダウンロードの詳細は、インストールガイド を参照してください。 - サポートされる方法のいずれかを使用して、JBoss EAP 8.0 をダウンロードまたはインストールした。JBoss EAP のダウンロードの詳細は、インストールガイド を参照してください。
JBoss EAP XP エクステンションをインストールすると、サーバーの更新が自動的に実行され、最新のコンポーネント更新を受信します。
手順
-
ターミナルエミュレーターを開き、
jboss-eap-installation-managerディレクトリーに移動します。 以下を実行して、
jboss-eap-installation-managerディレクトリーからこのスクリプトを実行することで、サーバーが JBoss EAP XP チャネルをサブスクライブします。./bin/jboss-eap-installation-manager.sh channel add \ --channel-name eap-xp-5.0 \ --repositories=mrrc-ga::https://maven.repository.redhat.com/ga \ --manifest org.jboss.eap.channels:eap-xp-5.0 \ --dir eap-xp-5.0
./bin/jboss-eap-installation-manager.sh channel add \ --channel-name eap-xp-5.0 \ --repositories=mrrc-ga::https://maven.repository.redhat.com/ga \ --manifest org.jboss.eap.channels:eap-xp-5.0 \ --dir eap-xp-5.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して JBoss EAP XP エクステンションをインストールします。
./bin/jboss-eap-installation-manager.sh feature-pack add \ --fpl org.jboss.eap.xp:wildfly-galleon-pack \ --dir eap-xp-5.0
./bin/jboss-eap-installation-manager.sh feature-pack add \ --fpl org.jboss.eap.xp:wildfly-galleon-pack \ --dir eap-xp-5.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. 既存の JBoss EAP 8.0 インストールに JBoss EAP XP 5.0 機能パックをオフラインで追加する リンクのコピーリンクがクリップボードにコピーされました!
jboss-eap-installation-manager を使用して、既存の JBoss EAP インストールに JBoss EAP XP 5.0 機能パックをオフラインで追加できます。
前提条件
- JBoss EAP XP 5.0 のサポート対象の構成を確認している。
- サポート対象の JDK をインストールしている。
-
jboss-eap-installation-managerをダウンロードしている。jboss-eap-installation-managerのダウンロードの詳細は、インストールガイド を参照してください。 - サポートされる方法のいずれかを使用して、JBoss EAP 8.0 をダウンロードまたはインストールした。JBoss EAP のダウンロードの詳細は、インストールガイド を参照してください。
- JBoss EAP 8.0 および JBoss EAP XP 5.0 の最新のオフラインリポジトリーをダウンロードして展開しました。
手順
-
ターミナルエミュレーターを開き、
jboss-eap-installation-managerディレクトリーに移動します。 -
以下を実行して、
jboss-eap-installation-managerディレクトリーからこのスクリプトを実行することで、サーバーが JBoss EAP XP チャネルをサブスクライブします。
./bin/jboss-eap-installation-manager.sh channel add \ --channel-name eap-xp-5.0 \ --repositories=mrrc-ga::https://maven.repository.redhat.com/ga \ --manifest org.jboss.eap.channels:eap-xp-5.0 \ --dir eap-xp-5.0
./bin/jboss-eap-installation-manager.sh channel add \
--channel-name eap-xp-5.0 \
--repositories=mrrc-ga::https://maven.repository.redhat.com/ga \
--manifest org.jboss.eap.channels:eap-xp-5.0 \
--dir eap-xp-5.0
-
JBoss EAP XP をインストールし、
--repositories parameterを使用してオフラインリポジトリーを指定します。
./bin/jboss-eap-installation-manager.sh feature-pack add \ --fpl org.jboss.eap.xp:wildfly-galleon-pack \ --dir eap-xp-5.0 \ --repositories <JBOSS_EAP_XP_OFFLINE_REPO_PATH>,<JBOSS_EAP_8.0_OFFLINE_REPO_PATH>
./bin/jboss-eap-installation-manager.sh feature-pack add \
--fpl org.jboss.eap.xp:wildfly-galleon-pack \
--dir eap-xp-5.0 \
--repositories <JBOSS_EAP_XP_OFFLINE_REPO_PATH>,<JBOSS_EAP_8.0_OFFLINE_REPO_PATH>
機能パックは、--dir option で渡された JBoss EAP インストールに追加されます。
1.4. jboss-eap-installation-manager を使用して JBoss EAP XP インストールを更新する リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP をダウンロードしてインストールした後、新しい更新が利用可能になると定期的に JBoss EAP を更新できます。
前提条件
手順
-
ダウンロードした
jboss-eap-installation-managerを展開します。 -
ターミナルエミュレーターを開き、展開した
jboss-eap-installation-managerディレクトリーに移動します。 jboss-eap-installation-managerディレクトリーからこのスクリプトを実行して、利用可能な更新を確認します。./bin/jboss-eap-installation-manager.sh update list --dir eap-xp-5.0
./bin/jboss-eap-installation-manager.sh update list --dir eap-xp-5.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して JBoss EAP を更新します。
構文
./bin/jboss-eap-installation-manager.sh update perform --dir eap-xp-5.0
./bin/jboss-eap-installation-manager.sh update perform --dir eap-xp-5.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
./bin/jboss-eap-installation-manager.sh update perform --dir eap-xp-5.0 Updates found: org.wildfly.galleon-plugins:wildfly-galleon-plugins 6.3.1.Final-redhat-00001 ==> 6.3.2.Final-redhat-00001 org.wildfly.wildfly-http-client:wildfly-http-transaction-client 2.0.1.Final-redhat-00001 ==> 2.0.2.Final-redhat-00001
./bin/jboss-eap-installation-manager.sh update perform --dir eap-xp-5.0 Updates found: org.wildfly.galleon-plugins:wildfly-galleon-plugins 6.3.1.Final-redhat-00001 ==> 6.3.2.Final-redhat-00001 org.wildfly.wildfly-http-client:wildfly-http-transaction-client 2.0.1.Final-redhat-00001 ==> 2.0.2.Final-redhat-00001Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5. jboss-eap-installation-manager を使用して JBoss EAP XP インストールをオフラインで更新する リンクのコピーリンクがクリップボードにコピーされました!
jboss-eap-installation-manager を使用して、JBoss EAP XP 5.0 インストールをオフラインで更新できます。
前提条件
手順
- JBoss EAP サーバーを停止します。
-
ターミナルエミュレーターを開き、
jboss-eap-installation-managerディレクトリーに移動します。 jboss-eap-installation-managerディレクトリーからこのスクリプトを実行して、サーバーコンポーネントを更新します。./bin/jboss-eap-installation-manager.sh update perform \ --dir eap-xp-5.0 \ --repositories <JBOSS_EAP_XP_OFFLINE_REPO_PATH>,<FEATURE_PACK_OFFLINE_REPO>,<JBOSS_EAP_8.0_OFFLINE_REPO_PATH>
./bin/jboss-eap-installation-manager.sh update perform \ --dir eap-xp-5.0 \ --repositories <JBOSS_EAP_XP_OFFLINE_REPO_PATH>,<FEATURE_PACK_OFFLINE_REPO>,<JBOSS_EAP_8.0_OFFLINE_REPO_PATH>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- オフラインで 2 段階の更新操作を実行する方法の詳細は、オフライン JBoss EAP サーバーで機能パックを更新する を参照してください。
1.6. JBoss EAP XP サーバーを JBoss EAP に戻す リンクのコピーリンクがクリップボードにコピーされました!
jboss-eap-installation-manager を使用して、JBoss EAP XP インストールを元に戻すことができます。
前提条件
手順
-
ターミナルエミュレーターを開き、
jboss-eap-installation-managerディレクトリーに移動します。 jboss-eap-installation-managerディレクトリーからこのスクリプトを実行して、JBoss EAP XP サーバーに追加されたすべての機能パックの履歴を調査します。./bin/jboss-eap-installation-manager.sh history --dir eap-xp-5.0
./bin/jboss-eap-installation-manager.sh history --dir eap-xp-5.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow - JBoss EAP XP サーバーを停止します。
JBoss EAP XP エクステンションが追加される前のバージョンに戻します。
./bin/jboss-eap-installation-manager.sh revert perform \ --revision <REVISION_HASH> \ --dir eap-xp-5.0
./bin/jboss-eap-installation-manager.sh revert perform \ --revision <REVISION_HASH> \ --dir eap-xp-5.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- 元に戻す 2 段階操作を実行する方法は インストールされた機能パックを元に戻す を参照してください。
第2章 MicroProfile について リンクのコピーリンクがクリップボードにコピーされました!
2.1. MicroProfile Config リンクのコピーリンクがクリップボードにコピーされました!
2.1.1. JBoss EAP での MicroProfile Config リンクのコピーリンクがクリップボードにコピーされました!
設定データは動的に変更でき、アプリケーションはサーバーを再起動せずに最新の設定情報にアクセスできる必要があります。
MicroProfile Config は設定データのポータブルな外部化を実現します。つまり、アプリケーションとマイクロサービスを、変更または再パッケージ化せずに複数の環境で実行するように設定できます。
MicroProfile Config 機能は、SmallRye Config を使用して JBoss EAP に実装され、microprofile-config-smallrye サブシステムによって提供されます。
MicroProfile Config は JBoss EAP XP でのみサポートされます。これは JBoss EAP ではサポートされません。
独自の Config 実装を追加する場合は、Config インターフェイスの最新バージョンのメソッドを使用する必要があります。
2.1.2. MicroProfile Config でサポートされる MicroProfile Config ソース リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile Config 設定プロパティーは、さまざまな場所から取得でき、形式が異なる場合があります。これらのプロパティーは ConfigSources によって提供されます。ConfigSources は org.eclipse.microprofile.config.spi.ConfigSource インターフェイスの実装です。
MicroProfile Config 仕様は、設定値を取得するために、以下のデフォルト ConfigSource 実装を提供します。
-
System.getProperties() -
System.getenv() -
クラスパス上のすべての
META-INF/microprofile-config.properties。
microprofile-config-smallrye サブシステムは、設定値を取得するために ConfigSource リソースの追加タイプをサポートします。以下のリソースから設定値を取得することもできます。
-
microprofile-config-smallrye/config-source管理リソースでのプロパティー - ディレクトリー内のファイル
-
ConfigSourceクラス -
ConfigSourceProviderクラス
2.2. MicroProfile Fault Tolerance リンクのコピーリンクがクリップボードにコピーされました!
2.2.1. MicroProfile Fault Tolerance 仕様について リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile Fault Tolerance 仕様は、分散したマイクロサービスに特有のエラーに対応するストラテジーを定義します。
MicroProfile Fault Tolerance 仕様は、エラーを処理する以下のストラテジーを定義します。
- Timeout
- 実行が終了べき時間を定義します。タイムアウトを定義すると、実行を永久に待機できなくなります。
- Retry
- 失敗した実行を再試行する基準を定義します。
- Fallback
- 実行に失敗した場合の代替を指定します。
- CircuitBreaker
- 一時的に停止するまでの実行試行回数を定義します。遅延の長さを定義すると、実行を再開することができます。
- Bulkhead
- システムの一部で障害を分離して、残りのシステムを機能させます。
- Asynchronous
- 別のスレッドでクライアント要求を実行します。
2.2.2. JBoss EAP での MicroProfile Fault Tolerance リンクのコピーリンクがクリップボードにコピーされました!
microprofile-fault-tolerance-smallrye サブシステムは、JBoss EAP での MicroProfile Fault Tolerance のサポートを提供します。このサブシステムは、JBoss EAP XP ストリームでのみ利用できます。
microprofile-fault-tolerance-smallrye サブシステムはインターセプターバインディングに以下のアノテーションを提供します。
-
@Timeout -
@Retry -
@Fallback -
@CircuitBreaker -
@Bulkhead -
@Asynchronous
これらのアノテーションはクラスレベルまたはメソッドレベルでバインドできます。クラスにバインドされたアノテーションは、そのクラスのすべてのビジネスメソッドに適用されます。
以下のルールはバインディングインターセプターに適用されます。
コンポーネントクラスがクラスレベルのインターセプターバインディングを宣言または継承する場合、以下の制限が適用されます。
- クラスは final を宣言することはできません。
- クラスには static、private、または final メソッドを含めることはできません。
- コンポーネントクラスの静的ではない非プライベートメソッドがメソッドレベルのインターセプターバインディングを宣言する場合、メソッドやコンポーネントクラスも final 宣言されません。
フォールトトレランス操作には以下の制限があります。
- フォールトトレランスインターセプターバインディングは bean クラスまたは bean クラスメソッドに適用する必要があります。
- 呼び出し時、呼び出しは Jakarta Contexts and Dependency Injection 仕様で定義されているビジネスメソッド呼び出しである必要があります。
以下の条件が両方とも true の場合、操作はフォールトトレランスと見なされません。
- メソッド自体は、フォールトトレランスインターセプターにバインドされません。
- メソッドが含まれるクラスは、フォールトトレランスインターセプターにバインドされません。
microprofile-fault-tolerance-smallrye サブシステムは、MicroProfile Fault Tolerance が提供する設定オプションに加え、以下の設定オプションを提供します。
-
io.smallrye.faulttolerance.mainThreadPoolSize -
io.smallrye.faulttolerance.mainThreadPoolQueueSize
2.3. MicroProfile Health リンクのコピーリンクがクリップボードにコピーされました!
2.3.1. JBoss EAP での MicroProfile Health リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP には SmallRye Health コンポーネントが含まれており、これを使用して JBoss EAP インスタンスが想定どおりに応答しているかどうかを判断できます。この機能はデフォルトで有効になります。
MicroProfile Health は、JBoss EAP をスタンドアロンサーバーとして実行している場合のみ利用できます。
MicroProfile Health 仕様は、以下のヘルスチェックを定義します。
- Readiness
-
アプリケーションがリクエストを処理する準備ができているかどうかを決定します。
@Readinessアノテーションは、このヘルスチェックを提供します。 - Liveness
-
アプリケーションが実行されているかどうかを決定します。
@Livenessアノテーションは、このヘルスチェックを提供します。 - Startup
-
アプリケーションがすでに開始されているかどうかを判別します。アノテーション
@Startupは、このヘルスチェックを提供します。
@Health アノテーションは MicroProfile Health 3.0 で削除されました。
MicroProfile Health 3.1 には、新しい Startup ヘルスチェックプローブが含まれています。
MicroProfile Health 3.1 における互換性の重大な変更に関する詳細は、Release Notes for MicroProfile Health 3.1 を参照してください。
:empty-readiness-checks-status、:empty-liveness-checks-status、および :empty-startup-checks-status 管理属性は、readiness、liveness、または startup プローブが定義されていない場合のグローバルステータスを指定します。
2.4. MicroProfile JWT リンクのコピーリンクがクリップボードにコピーされました!
2.4.1. JBoss EAP での MicroProfile JWT 統合 リンクのコピーリンクがクリップボードにコピーされました!
サブシステム microprofile-jwt-smallrye は、JBoss EAP で MicroProfile JWT 統合を提供します。
以下の機能は microprofile-jwt-smallrye サブシステムによって提供されます。
- MicroProfile JWT セキュリティーを使用するデプロイメントの検出。
- MicroProfile JWT のサポートの有効化。
サブシステムには設定可能な属性やリソースが含まれません。
org.eclipse.microprofile.jwt.auth.api モジュールは、microprofile-jwt-smallrye サブシステムの他に、JBoss EAP で MicroProfile JWT 統合を提供します。
関連情報
2.4.2. 従来のデプロイメントと MicroProfile JWT デプロイメントの相違点 リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile JWT デプロイメントは、従来の JBoss EAP デプロイメントなどの管理された SecurityDomain リソースに依存しません。代わりに、仮想 SecurityDomain が作成され、MicroProfile JWT デプロイメント全体で使用されます。
MicroProfile JWT デプロイメントは MicroProfile Config プロパティーと microprofile-jwt-smallrye サブシステム内で完全に設定されるため、仮想 SecurityDomain はデプロイメントの他の管理設定を必要としません。
2.4.3. JBoss EAP での MicroProfile JWT アクティベーション リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile JWT は、アプリケーションに auth-method の有無に基づいてアプリケーションに対してアクティベートされます。
MicroProfile JWT 統合は、以下のようにアプリケーションに対してアクティベートされます。
-
デプロイメントプロセスの一環として、JBoss EAP はアプリケーションアーカイブで
auth-methodの存在をスキャンします。 -
auth-method存在し、MP-JWTとして定義されている場合は、MicroProfile JWT 統合がアクティベートされます。
auth-method は、以下のファイルのいずれかまたは両方で指定できます。
-
javax.ws.rs.core.Applicationを拡張するクラスを含むファイル。@LoginConfigアノテーション付き。 -
web.xml設定ファイル
auth-method がアノテーションを使用して、および web.xml 設定ファイルの両方に定義されている場合は、web.xml 設定ファイルの定義が使用されます。
2.4.4. JBoss EAP での MicroProfile JWT の制限 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP の MicroProfile JWT 実装にはいくつかの制限があります。
JBoss EAP には、MicroProfile JWT 実装の制限があります。
-
MicroProfile JWT 実装は、
mp.jwt.verify.publickeyプロパティーで提供された JSON Web Key Set(JWKS) からの最初の鍵のみを解析します。したがって、トークンが 2 つ目の鍵または 2 つ目の鍵の後に署名されるように要求すると、トークンの検証に失敗し、トークンを含むリクエストは承認されません。 - JWKS の base64 エンコードはサポートされていません。
いずれの場合も、mp.jwt.verify.publickey.location 設定プロパティーを使用する代わりに、クリアーテキスト JWKS を参照できます。
2.5. MicroProfile OpenAPI リンクのコピーリンクがクリップボードにコピーされました!
2.5.1. JBoss EAP での MicroProfile OpenAPI リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile OpenAPI は、microprofile-openapi-smallrye サブシステムを使用して JBoss EAP に統合されます。
MicroProfile OpenAPI 仕様は、OpenAPI 3.0 ドキュメントを提供する HTTP エンドポイントを定義します。OpenAPI 3.0 ドキュメントでは、ホストの REST サービスを説明します。OpenAPI エンドポイントは、設定されたパス (例: http://localhost:8080/openapi) を使用してデプロイメントに関連付けられたホストのルートに対して登録されます。
現在、仮想ホストの OpenAPI エンドポイントは単一デプロイメントのみを文書化できます。同じ仮想ホストの異なるコンテキストパスで登録された複数のデプロイメントで OpenAPI を使用するには、各デプロイメントは個別のエンドポイントパスを使用する必要があります。
OpenAPI エンドポイントはデフォルトで YAML ドキュメントを返します。Accept HTTP ヘッダーまたは format クエリーパラメーターを使用して JSON ドキュメントをリクエストすることもできます。
指定のアプリケーションの Undertow サーバーまたはホストが HTTPS リスナーを定義する場合、OpenAPI ドキュメントも HTTPS を使用して利用できます。たとえば、HTTPS のエンドポイントは https://localhost:8443/openapi です。
2.6. MicroProfile Telemetry リンクのコピーリンクがクリップボードにコピーされました!
2.6.1. JBoss EAP の MicroProfile Telemetry リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile Telemetry は、OpenTelemetry に基づくアプリケーションのトレース機能を提供します。サービス境界全体でリクエストをトレースする機能は、ライフサイクル中にリクエストが複数のサービスを通過するマイクロサービス環境で特に重要となります。
MicroProfile Telemetry は OpenTelemetry サブシステムを拡張し、MicroProfile Config のサポートを追加します。これにより、ユーザーは MicroProfile Config を使用して OpenTelemetry を設定できるようになります。
MicroProfile Telemetry サブシステムには設定可能なリソースまたは属性はありません。
2.7. MicroProfile REST Client リンクのコピーリンクがクリップボードにコピーされました!
2.7.1. MicroProfile REST クライアント リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP XP 5.0.0 は、HTTP 上で RESTful サービスを呼び出すために型安全なアプローチを提供するために Jakarta RESTful Web Services 2.1.6 クライアント API 上にビルドされる MicroProfile REST クライアント 2.0 をサポートします。MicroProfile Type Safe REST クライアントは、Java インターフェイスとして定義されます。MicroProfile REST クライアントでは、実行可能コードでクライアントアプリケーションを作成できます。
MicroProfile REST クライアントを使用して以下の機能を利用します。
- 直感的な構文
- プロバイダーのプログラムによる登録
- プロバイダーの宣言的登録
- ヘッダーの宣言的仕様
- サーバー上のヘッダーの伝搬
-
ResponseExceptionMapper - Jakarta Contexts and Dependency Injection の統合
- サーバー向けイベント (SSE) へのアクセス
2.7.2. resteasy.original.webapplicationexception.behavior MicroProfile Config プロパティー リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile Config は、開発者がアプリケーションとマイクロサービスを設定して、それらのアプリケーションを変更または再パッケージ化することなく、複数の環境で実行できるようにするために使用できる仕様の名前です。以前は、MicroProfile Config はテクノロジープレビューとして JBoss EAP で利用可能でしたが、その後削除されました。MicroProfile Config は、JBoss EAP XP でのみ使用できるようになりました。
resteasy.original.webapplicationexception.behavior MicroProfile Config プロパティーの定義
resteasy.original.webapplicationexception.behavior パラメーターは、web.xml サーブレットプロパティーまたはシステムプロパティーのいずれかとして設定できます。web.xml のそのようなサーブレットプロパティーの例を次に示します。
<context-param>
<param-name>resteasy.original.webapplicationexception.behavior</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>resteasy.original.webapplicationexception.behavior</param-name>
<param-value>true</param-value>
</context-param>
MicroProfile Config を使用して、他の RESTEasy プロパティーを設定することもできます。
2.8. MicroProfile Reactive Messaging リンクのコピーリンクがクリップボードにコピーされました!
2.8.1. MicroProfile Reactive Messaging リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP XP 5.0.0 にアップグレードする際に、リアクティブメッセージングエクステンションおよびサブシステムが含まれる最新バージョンの MicroProfile Reactive Messaging を有効化できます。
"リアクティブストリーム" は、処理プロトコルと標準とともに一連のイベントデータであり、バッファリングなしで非同期境界 (スケジューラーなど) を超えてプッシュされます。"イベント" は、たとえば、天気予報アプリケーションでスケジュールされ、繰り返される温度チェックの場合があります。リアクティブストリームの主な利点は、さまざまなアプリケーションと実装のシームレスな相互運用性です。
リアクティブメッセージングは、イベント駆動型、データストリーミング、およびイベントソーシングアプリケーションをビルドするためのフレームワークを提供します。リアクティブメッセージングにより、あるアプリケーションから別のアプリケーションへのイベントデータ (リアクティブストリーム) の継続的かつスムーズな交換が実現します。MicroProfile Reactive Messaging を使用して、リアクティブストリームを介した非同期メッセージングを行うことができます。これにより、アプリケーションは、たとえば Apache Kafka などの他のアプリケーションと対話できます。
MicroProfile Reactive Messaging のインスタンスを最新バージョンにアップグレードした後、次の操作を実行できます。
- Apache Kafka データストリーミングプラットフォーム用の MicroProfile Reactive Messaging を使用してサーバーをプロビジョニングします。
- 最新のリアクティブメッセージング API を介して、メモリー内および Apache Kafka トピックでサポートされるリアクティブメッセージングと対話する。
- 利用可能な任意のメトリクスシステムを使用して、特定のチャネルでストリーミングされるメッセージの数を決定します。
2.8.2. MicroProfile リアクティブメッセージングコネクター リンクのコピーリンクがクリップボードにコピーされました!
コネクターを使用して、MicroProfile Reactive Messaging を多数の外部メッセージングシステムと統合できます。MicroProfile for JBoss EAP には、Apache Kafka コネクターと Advanced Message Queuing Protocol (AMQP) コネクターが付属しています。Eclipse MicroProfile Config 仕様を使用して、コネクターを設定します。
MicroProfile Reactive Messaging コネクターと組み込まれたレイヤー
MicroProfile Reactive Messaging には次のコネクターが含まれています。
Kafka connector
microprofile-reactive-messaging-kafkaレイヤーには Kafka コネクターが組み込まれています。AMQP コネクター
microprofile-reactive-messaging-amqpレイヤーには AMQP コネクターが組み込まれています。
両方のコネクターレイヤーには、microprofile-reactive-messaging Galleon レイヤーが含まれています。microprofile-reactive-messaging レイヤーは、コアの MicroProfile Reactive Messaging 機能を提供します。
| レイヤー | 定義 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
2.8.3. Apache Kafka イベントストリーミングプラットフォーム リンクのコピーリンクがクリップボードにコピーされました!
Apache Kafka は、レコードのストリームをリアルタイムでパブリッシュ、登録、保存、および処理できるオープンソースの分散イベント (データ) ストリーミングプラットフォームです。複数のソースからのイベントストリームを処理し、それらを複数のコンシューマーに配信して、大量のデータをポイント A から Z、およびその他の場所にすべて同時に移動します。MicroProfile Reactive Messaging は、Apache Kafka を使用して、これらのイベントレコードをわずか 2 マイクロ秒で配信し、分散したフォールトトレラントクラスターに安全に保存し、チーム定義のゾーンまたは地理的地域全体で利用できるようにします。
第3章 JBoss EAP での MicroProfile の管理 リンクのコピーリンクがクリップボードにコピーされました!
3.1. MicroProfile Telemetry 管理 リンクのコピーリンクがクリップボードにコピーされました!
3.1.1. 管理 CLI を使用して MicroProfile Telemetry サブシステムの追加 リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile Telemetry コンポーネントは、microprofile-telemetry サブシステムを通じてデフォルトの MicroProfile 設定に統合されます。サブシステムが含まれていない場合は、管理 CLI を使用して MicroProfile Telemetry サブシステムを追加することもできます。
前提条件
- MicroProfile Telemetry サブシステムを追加する前に、OpenTelemetry サブシステムを設定に追加する必要があります。MicroProfile Telemetry サブシステムは OpenTelemetry サブシステムに依存します。
手順
- ターミナルを開きます。
以下のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.2. MicroProfile Telemetry サブシステムを有効にする リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile Telemetry はデフォルトで無効になっており、アプリケーションごとに有効にする必要があります。
前提条件
- MicroProfile Telemetry サブシステムが設定に追加されました。
- OpenTelemetry サブシステムが設定に追加されました。
手順
-
microprofile-config.propertiesファイルを開きます。 otel.sdk.disabledプロパティーをfalseに設定します。otel.sdk.disabled=false
otel.sdk.disabled=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.3. MicroProfile Config を使用したオーバーライドサーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile Config を使用して、MicroProfile Telemetry サブシステム内の個々のアプリケーションのサーバー設定をオーバーライドできます。
たとえば、エクスポートされたトレースでデフォルトで使用されるサービス名は、デプロイメントアーカイブと同じです。デプロイメントアーカイブが my-application-1.0.war に設定されている場合、サービス名は同じになります。この設定を上書きするには、設定ファイル内の otel.service.name プロパティーの値を変更します。
otel.service.name=My Application
otel.service.name=My Application
3.2. MicroProfile Config の設定 リンクのコピーリンクがクリップボードにコピーされました!
3.2.1. ConfigSource 管理リソースでのプロパティーの追加 リンクのコピーリンクがクリップボードにコピーされました!
プロパティーは管理リソースとして config-source サブシステムに直接保存できます。
手順
ConfigSource を作成し、プロパティーを追加します。
/subsystem=microprofile-config-smallrye/config-source=props:add(properties={"name" = "jim"})/subsystem=microprofile-config-smallrye/config-source=props:add(properties={"name" = "jim"})Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.2. ディレクトリーを ConfigSources として設定 リンクのコピーリンクがクリップボードにコピーされました!
プロパティーがファイルとしてディレクトリーに保存されている場合、file-name はプロパティーの名前で、ファイルの内容はプロパティーの値になります。
手順
ファイルを保存するディレクトリーを作成します。
mkdir -p ~/config/prop-files/
$ mkdir -p ~/config/prop-files/Copy to Clipboard Copied! Toggle word wrap Toggle overflow ディレクトリーに移動します。
cd ~/config/prop-files/
$ cd ~/config/prop-files/Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロパティー
nameの値を保存するファイルnameを作成します。touch name
$ touch nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロパティーの値をファイルに追加します。
echo "jim" > name
$ echo "jim" > nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイル名がプロパティーであり、プロパティーの値が含まれるファイルが含まれる ConfigSource を作成します。
/subsystem=microprofile-config-smallrye/config-source=file-props:add(dir={path=~/config/prop-files})/subsystem=microprofile-config-smallrye/config-source=file-props:add(dir={path=~/config/prop-files})Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、以下の XML 設定が以下のようになります。
<subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"> <config-source name="file-props"> <dir path="/etc/config/prop-files"/> </config-source> </subsystem><subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"> <config-source name="file-props"> <dir path="/etc/config/prop-files"/> </config-source> </subsystem>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3. ルートディレクトリーを ConfigSource として設定 リンクのコピーリンクがクリップボードにコピーされました!
root 属性を使用して、ディレクトリーを複数の MicroProfile ConfigSource ディレクトリーのルートディレクトリーとして定義できます。
ネストされた root 属性は、/subsystem=microprofile-config-smallrye/config-source=* リソースの dir 複合属性の一部です。これにより、同じルートディレクトリーを共有する場合に、複数の ConfigSource ディレクトリーを指定する必要がなくなります。
ルートディレクトリー内の直接のファイルは無視されます。これらは設定には使用されません。最上位ディレクトリーは ConfigSource として扱われます。ネストされたディレクトリーも無視されます。
最上位ディレクトリーの ConfigSource には、デフォルトで /subsystem=microprofile-config-smallrye/config-source=* リソースの ordinal が割り当てられます。
最上位ディレクトリーに config_ordinal ファイルが含まれている場合は、ファイルで指定された値がデフォルトの ordinal を 上書き します。同じ ordinal を持つ 2 つの最上位ディレクトリーに同じエントリーが含まれている場合、ディレクトリー名はアルファベット順にソートされ、最初のディレクトリーが使用されます。
前提条件
-
MicroProfile Config 拡張機能をインストールし、
microprofile-config-smallryeサブシステムを有効にしました。
手順
- ターミナルを開きます。
ファイルを保存するディレクトリーを作成します。
mkdir -p ~/etc/config/prop-files/
mkdir -p ~/etc/config/prop-files/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成したディレクトリーに移動します。
cd ~/etc/config/prop-files/
cd ~/etc/config/prop-files/Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロパティー
nameの値を保存するファイルnameを作成します。touch name
touch nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロパティーの値をファイルに追加します。
echo "jim" > name
echo "jim" > nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow CLI で次のコマンドを実行して、ファイル名がプロパティーであり、ファイルにプロパティーの値が含まれる ConfigSource を作成します。
/subsystem=microprofile-config-smallrye/config-source=prop-files:add(dir={path=/etc/config, root=true})/subsystem=microprofile-config-smallrye/config-source=prop-files:add(dir={path=/etc/config, root=true})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 結果は次の XML 設定になります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.4. ConfigSource クラスからの ConfigSource の取得 リンクのコピーリンクがクリップボードにコピーされました!
カスタムの org.eclipse.microprofile.config.spi.ConfigSource 実装クラスを作成および設定して、設定値のソースを提供することができます。
手順
以下の管理 CLI コマンドは、
org.exampleという名前の JBoss モジュールによって提供される、org.example.MyConfigSourceという名前の実装クラスのConfigSourceを作成します。org.exampleモジュールからConfigSourceを使用する場合は、<module name="org.eclipse.microprofile.config.api"/>依存関係をpath/to/org/example/main/module.xmlファイルに追加します。/subsystem=microprofile-config-smallrye/config-source=my-config-source:add(class={name=org.example.MyConfigSource, module=org.example})/subsystem=microprofile-config-smallrye/config-source=my-config-source:add(class={name=org.example.MyConfigSource, module=org.example})Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドを実行すると、
microprofile-config-smallryeサブシステムに以下の XML 設定が指定されます。<subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"> <config-source name="my-config-source"> <class name="org.example.MyConfigSource" module="org.example"/> </config-source> </subsystem><subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"> <config-source name="my-config-source"> <class name="org.example.MyConfigSource" module="org.example"/> </config-source> </subsystem>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
カスタムの org.eclipse.microprofile.config.spi.ConfigSource 実装クラスによって提供されるプロパティーはすべての JBoss EAP デプロイメントで使用できます。
3.2.5. ConfigSourceProvider クラスからの ConfigSource 設定の取得 リンクのコピーリンクがクリップボードにコピーされました!
複数の ConfigSource インスタンスの実装を登録する、カスタムの org.eclipse.microprofile.config.spi.ConfigSourceProvider 実装クラスを作成および設定できます。
手順
config-source-providerを作成します。/subsystem=microprofile-config-smallrye/config-source-provider=my-config-source-provider:add(class={name=org.example.MyConfigSourceProvider, module=org.example})/subsystem=microprofile-config-smallrye/config-source-provider=my-config-source-provider:add(class={name=org.example.MyConfigSourceProvider, module=org.example})Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
org.exampleという名前の JBoss Module によって提供される、org.example.MyConfigSourceProviderという名前の実装クラスのconfig-source-providerを作成します。org.exampleモジュールからconfig-source-providerを使用する場合は、<module name="org.eclipse.microprofile.config.api"/>依存関係をpath/to/org/example/main/module.xmlファイルに追加します。このコマンドを実行すると、
microprofile-config-smallryeサブシステムに以下の XML 設定が指定されます。<subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"> <config-source-provider name="my-config-source-provider"> <class name="org.example.MyConfigSourceProvider" module="org.example"/> </config-source-provider> </subsystem><subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"> <config-source-provider name="my-config-source-provider"> <class name="org.example.MyConfigSourceProvider" module="org.example"/> </config-source-provider> </subsystem>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ConfigSourceProvider 実装によって提供されるプロパティーはすべての JBoss EAP デプロイメントで使用できます。
3.3. MicroProfile Fault Tolerance 設定 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1. MicroProfile Fault Tolerance 拡張の追加 リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile Fault Tolerance 拡張は、JBoss EAP XP の一部として提供される standalone-microprofile.xml および standalone-microprofile-ha.xml 設定に含まれています。
エクステンションは標準の standalone.xml 設定に含まれません。エクステンションを使用するには、手動で有効にする必要があります。
前提条件
- JBoss EAP 8.0 と JBoss EAP XP 5.0 がインストールされている。
手順
以下の管理 CLI コマンドを使用して MicroProfile Fault Tolerance 拡張を追加します。
/extension=org.wildfly.extension.microprofile.fault-tolerance-smallrye:add
/extension=org.wildfly.extension.microprofile.fault-tolerance-smallrye:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の managenent コマンドを使用して、
microprofile-fault-tolerance-smallryeサブシステムを有効にします。/subsystem=microprofile-fault-tolerance-smallrye:add
/subsystem=microprofile-fault-tolerance-smallrye:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の管理コマンドでサーバーをリロードします。
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. MicroProfile Health 設定 リンクのコピーリンクがクリップボードにコピーされました!
3.4.1. 管理 CLI を使用した正常性の検証 リンクのコピーリンクがクリップボードにコピーされました!
管理 CLI を使用してシステムの正常性を確認できます。
手順
正常性を確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.2. 管理コンソールを使用した正常性の検証 リンクのコピーリンクがクリップボードにコピーされました!
管理コンソールを使用してシステムの正常性を確認できます。
チェックランタイム操作では、ヘルスチェックとグローバルの結果がブール値として表示されます。
手順
- Runtime タブに移動し、サーバーを選択します。
- Monitor の列で MicroProfile Health → View の順にクリックします。
3.4.3. HTTP エンドポイントを使用した正常性の検証 リンクのコピーリンクがクリップボードにコピーされました!
正常性検証は JBoss EAP の正常性コンテキストに自動的にデプロイされるため、HTTP エンドポイントを使用して現在の正常性を取得できます。
管理インターフェイスからアクセスできる /health エンドポイントのデフォルトアドレスは http://127.0.0.1:9990/health です。
手順
HTTP エンドポイントを使用して、サーバーの現在のヘルス状態を取得するには、以下の URL を使用します。
http://<host>:<port>/health
http://<host>:<port>/healthCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコンテキストにアクセスすると、サーバーの状態を示すヘルスチェックが JSON 形式で表示されます。
3.4.4. MicroProfile Health の認証の有効化 リンクのコピーリンクがクリップボードにコピーされました!
アクセスに認証を要求するように health コンテキストを設定できます。
手順
microprofile-health-smallryeサブシステムでsecurity-enabled属性をtrueに設定します。/subsystem=microprofile-health-smallrye:write-attribute(name=security-enabled,value=true)
/subsystem=microprofile-health-smallrye:write-attribute(name=security-enabled,value=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を反映するためにサーバーをリロードします。
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
/health エンドポイントにアクセスしようとすると、認証プロンプトがトリガーされるようになります。
3.4.5. サーバーの正常性および準備状態を判断する readiness プローブ リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP XP 5.0.0 は、サーバーの正常性と readiness を判断するために 3 つの readiness プローブをサポートします。
-
server-status: server-state はrunningのとき、UPを返します。 -
boot-errors: プローブがブートエラーを検出しないときにUPを返します。 -
deployment-status: すべてのデプロイメントのステータスがOKの場合はUPを返します。
これらの readiness プローブはデフォルトで有効にされます。MicroProfile Config プロパティー mp.health.disable-default-procedures を使用してプローブを無効にすることができます。
以下の例は、check 操作で 3 つのプローブを使用する方法を示しています。
3.4.6. プローブが定義されていない場合のグローバルステータス リンクのコピーリンクがクリップボードにコピーされました!
:empty-readiness-checks-status、:empty-liveness-checks-status、および :empty-startup-checks-status 管理属性は、readiness、liveness、または startup プローブが定義されていない場合のグローバルステータスを指定します。
これらの属性により、アプリケーションは、そのアプリケーションが ready/live または、started up であることをプローブが確認するまで、DOWN を報告できるようになります。デフォルトでは、アプリケーションは 'UP' を報告します。
:empty-readiness-checks-status属性は、readinessプローブが定義されていない場合に、readinessプローブのグローバルステータスを指定します。/subsystem=microprofile-health-smallrye:read-attribute(name=empty-readiness-checks-status) { "outcome" => "success", "result" => expression "${env.MP_HEALTH_EMPTY_READINESS_CHECKS_STATUS:UP}" }/subsystem=microprofile-health-smallrye:read-attribute(name=empty-readiness-checks-status) { "outcome" => "success", "result" => expression "${env.MP_HEALTH_EMPTY_READINESS_CHECKS_STATUS:UP}" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow :empty-liveness-checks-status属性は、livenessプローブが定義されていない場合に、livenessプローブのグローバルステータスを指定します。/subsystem=microprofile-health-smallrye:read-attribute(name=empty-liveness-checks-status) { "outcome" => "success", "result" => expression "${env.MP_HEALTH_EMPTY_LIVENESS_CHECKS_STATUS:UP}" }/subsystem=microprofile-health-smallrye:read-attribute(name=empty-liveness-checks-status) { "outcome" => "success", "result" => expression "${env.MP_HEALTH_EMPTY_LIVENESS_CHECKS_STATUS:UP}" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow :empty-startup-checks-status属性は、startupプローブが定義されていない場合に、startupプローブのグローバルステータスを指定します。/subsystem=microprofile-health-smallrye:read-attribute(name=empty-startup-checks-status) { "outcome" => "success", "result" => expression "${env.MP_HEALTH_EMPTY_STARTUP_CHECKS_STATUS:UP}" }/subsystem=microprofile-health-smallrye:read-attribute(name=empty-startup-checks-status) { "outcome" => "success", "result" => expression "${env.MP_HEALTH_EMPTY_STARTUP_CHECKS_STATUS:UP}" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow /healthHTTP エンドポイントと、readiness、liveness、startupプローブをチェックする:check操作も、これらの属性を考慮に入れます。
これらの属性は以下の例のように変更することもできます。
3.5. MicroProfile JWT 設定 リンクのコピーリンクがクリップボードにコピーされました!
3.5.1. microprofile-jwt-smallrye サブシステムの有効化 リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile JWT 統合は microprofile-jwt-smallrye サブシステムによって提供され、デフォルト設定に含まれています。サブシステムがデフォルト設定に存在しない場合は、以下のように追加できます。
前提条件
- JBoss EAP 8.0 と JBoss EAP XP 5.0 がインストールされている。
手順
JBoss EAP で MicroProfile JWT smallrye 拡張を有効にします。
/extension=org.wildfly.extension.microprofile.jwt-smallrye:add
/extension=org.wildfly.extension.microprofile.jwt-smallrye:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow microprofile-jwt-smallryeサブシステムを有効にします。/subsystem=microprofile-jwt-smallrye:add
/subsystem=microprofile-jwt-smallrye:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーをリロードします。
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
microprofile-jwt-smallrye サブシステムが有効になります。
3.6. MicroProfile OpenAPI の管理 リンクのコピーリンクがクリップボードにコピーされました!
3.6.1. MicroProfile OpenAPI の有効化 リンクのコピーリンクがクリップボードにコピーされました!
microprofile-openapi-smallrye サブシステムは、standalone-microprofile.xml 設定で提供されます。しかし、JBoss EAP XP はデフォルトで standalone.xml を使用します。使用するには、standalone.xml にサブシステムを含める必要があります。
または、MicroProfile サブシステムおよびエクステンションでのスタンドアロン設定の更新 の手順に従い、standalone.xml 設定ファイルを更新できます。
手順
JBoss EAP で MicroProfile OpenAPI smallrye 拡張を有効にします。
/extension=org.wildfly.extension.microprofile.openapi-smallrye:add()
/extension=org.wildfly.extension.microprofile.openapi-smallrye:add()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の管理コマンドを使用して
microprofile-openapi-smallryeサブシステムを有効にします。/subsystem=microprofile-openapi-smallrye:add()
/subsystem=microprofile-openapi-smallrye:add()Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーをリロードします。
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
microprofile-openapi-smallrye サブシステムが有効化されます。
3.6.2. Accept HTTP ヘッダーを使用した MicroProfile OpenAPI ドキュメントリクエスト リンクのコピーリンクがクリップボードにコピーされました!
Accept HTTP ヘッダーを使用してデプロイメントから MicroProfile OpenAPI ドキュメントをリクエストします。
デフォルトでは、OpenAPI エンドポイントはで YAML ドキュメントを返します。
前提条件
- クエリーされるデプロイメントは、MicroProfile OpenAPI ドキュメントを返すように設定されます。
手順
以下の
curlコマンドを実行して、デプロイメントの/openapiエンドポイントをクエリーします。curl -v -H'Accept: application/json' http://localhost:8080/openapi < HTTP/1.1 200 OK ... {"openapi": "3.0.1" ... }$ curl -v -H'Accept: application/json' http://localhost:8080/openapi < HTTP/1.1 200 OK ... {"openapi": "3.0.1" ... }Copy to Clipboard Copied! Toggle word wrap Toggle overflow http://localhost:8080 を、デプロイメントの URL およびポートに置き換えます。
Accept ヘッダーは、JSON ドキュメントが
application/json文字列を使用して返されることを示します。
3.6.3. HTTP パラメーターを使用した MicroProfile OpenAPI ドキュメントのリクエスト リンクのコピーリンクがクリップボードにコピーされました!
HTTP リクエストでクエリーパラメーターを使用してデプロイメントから MicroProfile OpenAPI ドキュメントを JSON 形式でリクエストします。
デフォルトでは、OpenAPI エンドポイントはで YAML ドキュメントを返します。
前提条件
- クエリーされるデプロイメントは、MicroProfile OpenAPI ドキュメントを返すように設定されます。
手順
以下の
curlコマンドを実行して、デプロイメントの/openapiエンドポイントをクエリーします。curl -v http://localhost:8080/openapi?format=JSON < HTTP/1.1 200 OK ...
$ curl -v http://localhost:8080/openapi?format=JSON < HTTP/1.1 200 OK ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow http://localhost:8080 を、デプロイメントの URL およびポートに置き換えます。
HTTP パラメーターの
format=JSONは JSON ドキュメントが返されることを示します。
3.6.4. 静的 OpenAPI ドキュメントを提供するよう JBoss EAP を設定 リンクのコピーリンクがクリップボードにコピーされました!
ホストの REST サービスを記述する静的 OpenAPI ドキュメントに対応するように JBoss EAP を設定します。
JBoss EAP が静的 OpenAPI ドキュメントを提供するよう設定されている場合、静的 OpenAPI ドキュメントは Jakarta RESTful Web Services および MicroProfile OpenAPI アノテーションの前に処理されます。
実稼働環境では、静的ドキュメントを提供するときにアノテーション処理を無効にします。アノテーション処理を無効にすると、イミュータブルでバージョン付けできない API コントラクトがクライアントで利用可能になります。
手順
アプリケーションソースツリーにディレクトリーを作成します。
mkdir APPLICATION_ROOT/src/main/webapp/META-INF
$ mkdir APPLICATION_ROOT/src/main/webapp/META-INFCopy to Clipboard Copied! Toggle word wrap Toggle overflow APPLICATION_ROOT は、アプリケーションの
pom.xml設定ファイルが含まれるディレクトリーです。OpenAPI エンドポイントをクエリーし、出力をファイルにリダイレクトします。
curl http://localhost:8080/openapi?format=JSON > src/main/webapp/META-INF/openapi.json
$ curl http://localhost:8080/openapi?format=JSON > src/main/webapp/META-INF/openapi.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、エンドポイントは YAML ドキュメントを提供し、
format=JSONは JSON ドキュメントを返すことを指定します。OpenAPI ドキュメントモデルの処理時にアノテーションのスキャンを省略するようにアプリケーションを設定します。
echo "mp.openapi.scan.disable=true" > APPLICATION_ROOT/src/main/webapp/META-INF/microprofile-config.properties
$ echo "mp.openapi.scan.disable=true" > APPLICATION_ROOT/src/main/webapp/META-INF/microprofile-config.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションをリビルドします。
mvn clean install
$ mvn clean installCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の管理 CLI コマンドを使用してアプリケーションを再度デプロイします。
アプリケーションのアンデプロイ:
undeploy microprofile-openapi.war
undeploy microprofile-openapi.warCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションのデプロイ:
deploy APPLICATION_ROOT/target/microprofile-openapi.war
deploy APPLICATION_ROOT/target/microprofile-openapi.warCopy to Clipboard Copied! Toggle word wrap Toggle overflow
JBoss EAP は OpenAPI エンドポイントで静的 OpenAPI ドキュメントを提供するようになりました。
3.6.5. microprofile-openapi-smallrye の無効化 リンクのコピーリンクがクリップボードにコピーされました!
管理 CLI を使用すると、JBoss EAP XP の microprofile-openapi-smallrye サブシステムを無効にすることができます。
手順
microprofile-openapi-smallryeサブシステムを無効にします。/subsystem=microprofile-openapi-smallrye:remove()
/subsystem=microprofile-openapi-smallrye:remove()Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7. MicroProfile Reactive Messaging の管理 リンクのコピーリンクがクリップボードにコピーされました!
3.7.1. JBoss EAP に必要な MicroProfile リアクティブメッセージングエクステンションとサブシステムの設定 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP のインスタンスに対して非同期リアクティブメッセージングを有効にする場合は、JBoss EAP 管理 CLI を介してそのエクステンションを追加する必要があります。
前提条件
- SmallRye エクステンションとサブシステムを備えた Reactive Streams Operators を追加しました。詳細は、MicroProfile Reactive Streams Operators Subsystem Configuration: Required Extension を参照してください。
- SmallRye エクステンションとサブシステムを使用したリ Reactive Messaging を追加しました。
手順
- JBoss EAP 管理 CLI を開きます。
- 次のコードを入力します。
OpenShift であるかどうかにかかわらず、Galleon を使用してサーバーをプロビジョニングする場合は、microprofile-reactive-messaging Galleon レイヤーを含めて、コアの MicroProfile 2.0.1 とリアクティブメッセージング機能を取得し、必要なサブシステムとエクステンションを有効にしてください。この設定には、コネクターを有効にするために必要な JBoss EAP モジュールが含まれていないことに注意してください。microprofile-reactive-messaging-kafka レイヤーまたは microprofile-reactive-messaging-amqp レイヤーを使用して、それぞれ Kafka コネクターまたは AMQP コネクターを有効にします。
検証
管理 CLI の結果のコードで 2 つの場所で success が見られた場合は、JBoss EAP に必要な MicroProfile Reactive Messaging エクステンションとサブシステムが正常に追加されています。
結果のコードに reload-required と表示されている場合は、サーバー設定をリロードして、すべての変更を完全に適用する必要があります。リロードするには、スタンドアロンサーバー CLI で reload と入力します。
3.8. スタンドアロンサーバー設定 リンクのコピーリンクがクリップボードにコピーされました!
3.8.1. スタンドアロンサーバー設定ファイル リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP XP に、スタンドアロン設定ファイル standalone-microprofile.xml および standalone-microprofile-ha.xml が含まれるようになりました。
JBoss EAP に含まれる標準設定ファイルは変更されません。JBoss EAP XP 5.0.0 は domain.xml ファイルまたはドメインモードの使用をサポートしていないことに注意してください。
| 設定ファイル | 目的 | 含まれる機能 | 除外された機能 |
|---|---|---|---|
|
| これは、スタンドアロンサーバーの起動時に使用されるデフォルト設定です。 | サブシステム、ネットワーキング、デプロイメント、ソケットバインディング、およびその他の設定詳細など、サーバーに関するすべての情報が含まれます。 | メッセージングまたは高可用性に必要なサブシステムを除外します。 |
|
| この設定ファイルは、MicroProfile を使用するアプリケーションをサポートします。 | サブシステム、ネットワーキング、デプロイメント、ソケットバインディング、およびその他の設定詳細など、サーバーに関するすべての情報が含まれます。 | 以下の機能を除外します。
|
|
|
デフォルトのサブシステムが含まれ、高可用性のために | メッセージングに必要なサブシステムを除外します。 | |
|
| このスタンドアロンファイルは、MicroProfile を使用するアプリケーションをサポートします。 |
デフォルトのサブシステムに加えて、高可用性向けの | メッセージングに必要なサブシステムを除外します。 |
|
|
デフォルトのサブシステムに加えて、 | ||
|
| 考えられるすべてのサブシステムのサポート。 | デフォルトのサブシステムに加えて、メッセージングおよび高可用性のサブシステムが含まれます。 | |
|
| ビルトインの mod_cluster フロントエンドロードバランサーを使用して他の JBoss EAP インスタンスの負荷を分散するために必要な最低限のサブシステムのサポート。 |
デフォルトでは、スタンドアロンサーバーとして JBoss EAP を起動すると standalone.xml ファイルが使用されます。スタンドアロン MicroProfile 設定で JBoss EAP を起動するには、-c 引数を使用します。以下に例を示します。
<EAP_HOME>/bin/standalone.sh -c=standalone-microprofile.xml
$ <EAP_HOME>/bin/standalone.sh -c=standalone-microprofile.xml
3.8.2. MicroProfile サブシステムおよびエクステンションでのスタンドアロン設定の更新 リンクのコピーリンクがクリップボードにコピーされました!
docs/examples/enable-microprofile.cli スクリプトを使用すると、標準のスタンドアロンサーバー設定ファイルを MicroProfile サブシステムおよび拡張機能で更新できます。enable-microprofile.cli スクリプトは、カスタム設定ではなく、標準のスタンドアロンサーバー設定ファイルを更新するサンプルスクリプトです。
enable-microprofile.cli スクリプトは、既存のスタンドアロンサーバー設定を変更し、以下の MicroProfile サブシステムおよび拡張機能がない場合はスタンドアロン設定ファイルに追加します。
-
microprofile-config-smallrye -
microprofile-fault-tolerance-smallrye -
microprofile-health-smallrye -
microprofile-jwt-smallrye -
microprofile-openapi-smallrye
enable-microprofile.cli スクリプトは、変更のハイレベルな説明を出力します。設定は elytron サブシステムを使用してセキュア化されます。security がある場合は、設定から削除されます。
前提条件
- JBoss EAP 8.0 と JBoss EAP XP 5.0 がインストールされている。
手順
以下の CLI スクリプトを実行して、デフォルトの
standalone.xmlサーバー設定ファイルを更新します。<EAP_HOME>/bin/jboss-cli.sh --file=docs/examples/enable-microprofile.cli
$ <EAP_HOME>/bin/jboss-cli.sh --file=docs/examples/enable-microprofile.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して、デフォルトの
standalone.xmlサーバー設定ファイル以外のスタンドアロンサーバー設定を選択します。<EAP_HOME>/bin/jboss-cli.sh --file=docs/examples/enable-microprofile.cli -Dconfig=<standalone-full.xml|standalone-ha.xml|standalone-full-ha.xml>
$ <EAP_HOME>/bin/jboss-cli.sh --file=docs/examples/enable-microprofile.cli -Dconfig=<standalone-full.xml|standalone-ha.xml|standalone-full-ha.xml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 指定した設定ファイルに MicroProfile サブシステムおよび拡張機能が含まれるようになりました。
第4章 JBoss EAP の MicroProfile アプリケーションの開発 リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile API を使用するアプリケーションの開発を開始するには、Maven プロジェクトを作成し、必要な依存関係を定義します。JBoss EAP MicroProfile Bill of Materials (BOM) を使用して、アプリケーションの Project Object Model (POM) 内のランタイム Maven 依存関係のバージョンを制御します。
Maven プロジェクトを作成した後、特定の MicroProfile API 用のアプリケーションの開発に関する情報は、JBoss EAP XP クイックスタートを参照してください。詳細は、JBoss EAP XP クイックスタート を参照してください。
4.1. maven-archetype-webapp を使用した Maven プロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
maven-archetype-webapp アーキタイプを使用して、JBoss EAP にデプロイするアプリケーションをビルドするための Maven プロジェクトを作成します。Maven には、プロジェクトタイプに特化したテンプレートをベースにプロジェクトを作成できるさまざまなアーキタイプがあります。maven-archetype-webapp は、シンプルな Web アプリケーションの開発に必要な構造を持つプロジェクトを作成します。
前提条件
- Maven がインストールされている。詳細は、Downloading Apache Maven を参照してください。
手順
mvnコマンドを使用して Maven プロジェクトをセットアップします。このコマンドは、プロジェクトのディレクトリー構造とpom.xml設定ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 生成されたディレクトリーに移動します。
-
生成された
pom.xml設定ファイルをテキストエディターで開きます。 pom.xml設定ファイルの<project>セクション内にある<name>helloworld Maven Webapp</name>行の後ろの内容を削除します。ファイルが次のようになっていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 内容を削除したのは、アプリケーションには不要なためです。
4.2. Maven プロジェクトのプロパティーの定義 リンクのコピーリンクがクリップボードにコピーされました!
Maven の pom.xml 設定ファイルで、プロパティーを値のプレースホルダーとして定義できます。JBoss EAP XP サーバーの値をプロパティーとして定義し、設定内でその値を一貫して使用します。
前提条件
Maven プロジェクトを初期化している。
詳細は、
maven-archetype-webappを使用した Maven プロジェクトの作成 を参照してください。
手順
<version.bom.microprofile>プロパティーを、設定したアプリケーションのデプロイ先となる JBoss EAP XP バージョンとして定義します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. Maven プロジェクトのリポジトリーの定義 リンクのコピーリンクがクリップボードにコピーされました!
Maven でダウンロードするアーティファクトとプラグインを検索するアーティファクトリポジトリーとプラグインリポジトリーを定義します。
前提条件
Maven プロジェクトを初期化している。
詳細は、
maven-archetype-webappを使用した Maven プロジェクトの作成 を参照してください。
手順
アーティファクトリポジトリーを定義します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プラグインリポジトリーを定義します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. Maven プロジェクトで依存関係管理として JBoss EAP MicroProfile BOM のインポート リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP MicroProfile Bill of Materials (BOM) をインポートして、ランタイム Maven 依存関係のバージョンを制御します。<dependencyManagement> セクションで BOM を指定する場合、provided スコープで定義されている Maven 依存関係のバージョンを個別に指定する必要はありません。
前提条件
Maven プロジェクトを初期化している。
詳細は、
maven-archetype-webappを使用した Maven プロジェクトの作成 を参照してください。
手順
pom.xml設定ファイルの properties セクションに BOM バージョンのプロパティーを追加します。<properties> ... <version.bom.microprofile>5.0.0.GA-redhat-00009</version.bom.microprofile> </properties><properties> ... <version.bom.microprofile>5.0.0.GA-redhat-00009</version.bom.microprofile> </properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <version.bom.microprofile>プロパティーで定義された値が、BOM バージョンの値として使用されます。JBoss EAP BOM の依存関係管理をインポートします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
オプションで、Tools Bill を含む JBoss EAP EE をプロジェクトにインポートできます。詳細は、Maven プロジェクトの依存関係管理として JBoss EAP BOM をインポートする を参照してください。
4.5. Maven プロジェクトの依存関係管理として JBoss EAP BOM をインポートする リンクのコピーリンクがクリップボードにコピーされました!
オプションで、JBoss EAP EE With Tools Bill of materials (BOM) をインポートできます。JBoss EAP BOM は、サポートされている JBoss EAP Java EE API に加えて、追加の JBoss EAP API JAR とクライアント BOM を提供します。アプリケーションで Microprofile API に加えて Jakarta EE API が必要な場合にのみ、この BOM をインポートする必要があります。
前提条件
Maven プロジェクトを初期化している。
詳細は、
maven-archetype-webappを使用した Maven プロジェクトの作成 を参照してください。
手順
pom.xml設定ファイルの properties セクションに BOM バージョンのプロパティーを追加します。<properties> .... <version.bom.ee>8.0.0.GA-redhat-00009</version.bom.ee> </properties><properties> .... <version.bom.ee>8.0.0.GA-redhat-00009</version.bom.ee> </properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow JBoss EAP BOM の依存関係管理をインポートします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.6. Maven プロジェクトへのプラグイン管理の追加 リンクのコピーリンクがクリップボードにコピーされました!
Maven CLI コマンドに必要なプラグインを取得するために、Maven プラグイン管理セクションを pom.xml 設定ファイルに追加します。
前提条件
Maven プロジェクトを初期化している。
詳細は、
maven-archetype-webappを使用した Maven プロジェクトの作成 を参照してください。
手順
<properties>セクションで、wildfly-maven-pluginおよびmaven-war-pluginのバージョンを定義します。<properties> ... <version.plugin.wildfly>4.2.1.Final</version.plugin.wildfly> <version.plugin.war>3.3.2</version.plugin.war> </properties><properties> ... <version.plugin.wildfly>4.2.1.Final</version.plugin.wildfly> <version.plugin.war>3.3.2</version.plugin.war> </properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <project>セクション内の<build>セクションに<pluginManagement>を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7. Maven プロジェクトの検証 リンクのコピーリンクがクリップボードにコピーされました!
設定した Maven プロジェクトがビルドされることを確認します。
前提条件
Maven プロパティーを定義している。
詳細は、Maven プロジェクトのプロパティーの定義 を参照してください。
Maven リポジトリーを定義している。
詳細は、Maven プロジェクトのリポジトリーの定義 を参照してください。
JBoss EAP の BOM (Bill of Material) を依存関係管理としてインポートしている。
詳細は、Maven プロジェクトでの依存関係管理としての JBoss EAP MicroProfile BOM のインポート を参照してください。
プラグイン管理を追加している。
詳細は、サーバー Hello World アプリケーション用の Maven プロジェクトにプラグイン管理を追加する を参照してください。
手順
pom.xmlに追加した Maven 依存関係をローカルにインストールします。mvn package
$ mvn packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のような出力が得られます。
... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ...
... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
特定の MicroProfile API 向けのアプリケーションの開発に関する詳細は、JBoss EAP XP クイックスタート を参照してください。
第5章 Micrometer の統合を理解する リンクのコピーリンクがクリップボードにコピーされました!
5.1. JBoss EAP の Micrometer リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP の Micrometer 統合により、アプリケーション全体のパフォーマンスメトリクスを登録および追跡するための再利用可能な API を備えたベンダー中立の可観測性レイヤーが導入されます。この拡張機能は Micrometer と統合されており、デプロイされたアプリケーションが API にアクセスし、拡張機能に提供されるサーバーメトリクスとともにアプリケーション固有のメトリクスを表示できるようになります。
JBoss EAP は既存のメトリクスサブシステムを使用します。この拡張機能を手動で追加して設定する必要があります。
第6章 JBoss EAP で Micrometer の管理 リンクのコピーリンクがクリップボードにコピーされました!
6.1. 管理 CLI を使用して Micrometer サブシステムの追加 リンクのコピーリンクがクリップボードにコピーされました!
Micrometer サブシステムは、包括的なメトリクスの収集と公開を容易にすることで、JBoss EAP の監視機能を強化します。ただし、org.jboss.extension.micrometer サブシステムは、JBoss EAP ディストリビューション内のすべてのスタンドアロン設定で使用できますが、手動で追加する必要があります。
前提条件
- JBoss EAP 8.0 と JBoss EAP XP 5.0 がインストールされている。
- JBoss EAP 管理 CLI にアクセスでき、設定を変更する権限がある。
手順
- ターミナルを開きます。
次のコマンドを実行してサーバーに接続します。
./jboss-cli.sh --connect
./jboss-cli.sh --connectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Micrometer 拡張機能がすでに設定に追加されているかどうかを確認します。
[standalone@localhost:9990 /] /extension=org.wildfly.extension.micrometer:read-resource
[standalone@localhost:9990 /] /extension=org.wildfly.extension.micrometer:read-resourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Micrometer 拡張機能が利用できない場合は、次のコマンドを実行して追加します。
[standalone@localhost:9990 /] /extension=org.wildfly.extension.micrometer:add
[standalone@localhost:9990 /] /extension=org.wildfly.extension.micrometer:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要な設定で Micrometer サブシステムを追加します。たとえば、次のコマンドを実行して、メトリクスコレクターのエンドポイント URL を指定します。
[standalone@localhost:9990 /] /subsystem=micrometer:add(endpoint="http://localhost:4318/v1/metrics")
[standalone@localhost:9990 /] /subsystem=micrometer:add(endpoint="http://localhost:4318/v1/metrics")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を適用するには、サーバーをリロードします。
[standalone@localhost:9990 /] reload
[standalone@localhost:9990 /] reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
コレクターが実行されていない場合、またはそのコレクターエンドポイントが利用できない場合は、次のような警告メッセージがトリガーされます。
11:28:16,581 WARNING [io.micrometer.registry.otlp.OtlpMeterRegistry] (MSC service thread 1-5) Failed to publish metrics to OTLP receiver: java.net.ConnectException: Connection refused
11:28:16,581 WARNING [io.micrometer.registry.otlp.OtlpMeterRegistry] (MSC service thread 1-5) Failed to publish metrics to OTLP receiver: java.net.ConnectException: Connection refused
以下の手順に従うと、管理 CLI を使用して Micrometer サブシステムを JBoss EAP サーバーに追加し、アプリケーションの監視機能を強化できます。
第7章 JBoss EAP 用 Micrometer アプリケーションの開発 リンクのコピーリンクがクリップボードにコピーされました!
7.1. JBoss EAP に Micrometer メトリクスを統合 リンクのコピーリンクがクリップボードにコピーされました!
Micrometer を使用すると、JBoss EAP でアプリケーションメトリクスを監視および収集できます。Micrometer サポートにより、アプリケーションメトリクスが公開されます。エクスポートプロセスは PUSH ベースであり、メトリクスが OpenTelemetry Collector に送信されるようにします。
前提条件
- JDK 17 がインストールされている。
- Maven 3.6 以降のバージョンがインストールされている。詳細は、Downloading Apache Maven を参照してください。
- Docker がインストールされている。詳細は、Get Docker を参照してください。
- オプション: システムに podman がインストールされている。サポート対象の RHEL で利用可能な最新の podman バージョンを使用してください。詳細は、Red Hat JBoss Enterprise Application Platform 8.0 でサポートされる構成 を参照してください。
-
configure-micrometer.cliファイルは、アプリケーションのルートディレクトリーにあります。
このセクションの例 (configure-micrometer.cli ファイルの使用方法を含む) は、Micrometer クイックスタート に基づいています。
手順
- 端末を開きます。
次のスクリプトを使用して、JBoss EAP をスタンドアロンサーバーとして起動します。
<EAP_HOME>/bin/standalone.sh -c standalone-microprofile.xml
$ <EAP_HOME>/bin/standalone.sh -c standalone-microprofile.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Windows Server の場合は、
<EAP_HOME>\bin\standalone.batスクリプトを使用します。- 新しいターミナルを開きます。
- アプリケーションのルートディレクトリーに移動します。
サーバーを設定するには、次のコマンドを実行します。
<EAP_HOME>/bin/jboss-cli.sh --connect --file=configure-micrometer.cli
$ <EAP_HOME>/bin/jboss-cli.sh --connect --file=configure-micrometer.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Windows Server の場合は、
<EAP_HOME>\bin\jboss-cli.batスクリプトを使用します。<EAP_HOME> をサーバーへのパスに置き換えます。
想定される出力:
The batch executed successfully process-state: reload-required
The batch executed successfully process-state: reload-requiredCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の管理コマンドでサーバーをリロードします。
<EAP_HOME>/bin/jboss-cli.sh --connect --commands=reload
$ <EAP_HOME>/bin/jboss-cli.sh --connect --commands=reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の内容を含む
docker-compose.yamlという名前の設定ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の内容を含む
otel-collector-config.yamlという名前の設定ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、コレクターサーバーインスタンスを起動します。
docker-compose up
$ docker-compose upCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Docker の代わりに Podman を使用することもできます。Podman を選択した場合は、
$ docker-compose upではなく$ podman-compose upコマンドを使用します。ご使用の環境で Docker または Podman がサポートされていない場合は、Otel Collector のドキュメント で OpenTelemetry Collector のインストールと実行に関するガイダンスを参照してください。RootResourceクラスでは、メーター登録前に適切なセットアップを確実に行うために、MeterRegistryがクラスに挿入される方法を確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow checkIfPrime()メソッド本体を調べて、登録されたメーターがアプリケーションロジック内でどのように使用されるかを確認します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションのルートディレクトリーに移動します。
構文
cd <path_to_application_root>/<application_root>
$ cd <path_to_application_root>/<application_root>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Micrometer Quickstart を参考にした例:
cd ~/quickstarts/micrometer
$ cd ~/quickstarts/micrometerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、アプリケーションをコンパイルおよびデプロイします。
mvn clean package wildfly:deploy
$ mvn clean package wildfly:deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow
これにより、実行中のサーバーに micrometer/target/micrometer.war がデプロイされます。
検証
Web ブラウザー を使用してアプリケーションにアクセスするか、次のコマンドを実行します。
curl http://localhost:8080/micrometer/prime/13
$ curl http://localhost:8080/micrometer/prime/13Copy to Clipboard Copied! Toggle word wrap Toggle overflow 想定される出力:
13 is prime.
13 is prime.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第8章 JBoss EAP XP の OpenShift イメージでマイクロサービスアプリケーションをビルドおよび実行 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP XP の OpenShift イメージでマイクロサービスアプリケーションをビルドし、実行できます。
JBoss EAP XP は、OpenShift 4 以降のバージョンでのみサポートされます。
以下のワークフローを使用して、Source-to-Image (S2I) プロセスで JBoss EAP XP の OpenShift イメージでマイクロサービスアプリケーションをビルドし、実行します。
デフォルトの cloud-default-mp-config レイヤーは、standalone-microprofile-ha.xml ファイルに基づくスタンドアロン設定ファイルを提供します。JBoss EAP XP に含まれるサーバー設定ファイルの詳細は、スタンドアロンサーバー設定ファイル を参照してください。
このワークフローでは、例として microprofile-config クイックスタートを使用します。クイックスタートでは、独自のプロジェクトの参照として使用できる小規模の、特定の作業例を示します。詳細は、JBoss EAP XP 5.0.0 に同梱される microprofile-config クイックスタートを参照してください。
関連情報
- JBoss EAP XP に含まれるサーバー設定ファイルの詳細は、スタンドアロンサーバー設定ファイル を参照してください。
8.1. アプリケーションのデプロイメントに向けた OpenShift の準備 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションのデプロイメントに向けて OpenShift を準備します。
前提条件
稼働中の OpenShift インスタンスがインストールされている。詳細は、Red Hat カスタマーポータル の OpenShift Container Platform クラスターのインストールおよび設定 を参照してください。
手順
-
oc loginコマンドを使用して、OpenShift インスタンスにログインします。 OpenShift で新しいプロジェクトを作成します。
プロジェクトでは、1 つのユーザーグループが他のグループとは別にコンテンツを整理および管理することができます。以下のコマンドを使用すると OpenShift でプロジェクトを作成できます。
oc new-project PROJECT_NAME
$ oc new-project PROJECT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、以下のコマンドを使用して、
microprofile-configクイックスタートでeap-demoという名前の新規プロジェクトを作成します。oc new-project eap-demo
$ oc new-project eap-demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2. S2I を使用した JBoss EAP XP アプリケーションイメージの構築とデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Source-to-Image (S2I) ワークフローに従って、JBoss EAP XP アプリケーションの再現可能なコンテナーイメージをビルドします。これらの生成されたコンテナーイメージには、アプリケーションのデプロイメントとすぐに実行できる JBoss EAP XP サーバーが含まれます。
S2I ワークフローは、Git リポジトリーからソースコードを取得し、使用する言語とフレームワークをベースとするコンテナーに挿入します。S2I ワークフローが完了すると、src コードがコンパイルされ、アプリケーションがパッケージ化されて JBoss EAP XP サーバーにデプロイされます。
前提条件
- アクティブな Red Hat カスタマーアカウントを持っている。
- レジストリーサービスアカウントを持っている。Red Hat カスタマーポータルの手順に従い、レジストリーサービスアカウントを使用して認証トークンを作成 してください。
- Red Hat Ecosystem Catalog からイメージをプルするために使用できる OpenShift シークレット YAML ファイルをダウンロードしている。詳細は、OpenShift Secret を参照してください。
-
oc loginコマンドを使用して OpenShift にログインしている。 - Helm がインストールされている。詳細は、Installing Helm を参照してください。
管理 CLI で次のコマンドを入力して、JBoss EAP Helm チャートのリポジトリーをインストールしている。
helm repo add jboss-eap https://jbossas.github.io/eap-charts/
$ helm repo add jboss-eap https://jbossas.github.io/eap-charts/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
次の YAML コンテンツを使用して、
helm.yamlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して、JBoss EAP XP アプリケーションを OpenShift にデプロイします。
helm install microprofile-config -f helm.yaml jboss-eap/eap-xp5
$ helm install microprofile-config -f helm.yaml jboss-eap/eap-xp5Copy to Clipboard Copied! Toggle word wrap Toggle overflow
詳細は、OpenShift で Source-to-Image を使用したアプリケーションイメージのビルド の手順と非常によく似ています。この手順の詳細は、OpenShift Container Platform での JBoss EAP の使用 を参照してください。
検証
curlを使用してアプリケーションにアクセスします。curl https://$(oc get route microprofile-config --template='{{ .spec.host }}')/config/value$ curl https://$(oc get route microprofile-config --template='{{ .spec.host }}')/config/valueCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションがデプロイされたことを確認する出力
MyPropertyFileConfigValueが表示されます。
8.3. JBoss EAP XP Source-to-Image (S2I) アプリケーションのデプロイメント後タスクの完了 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションによっては、OpenShift アプリケーションのビルドおよびデプロイ後に一部のタスクを完了する必要がある場合があります。
デプロイメント後タスクの例には、以下が含まれます。
- アプリケーションを OpenShift の外部から表示できるようにサービスを公開します。
- アプリケーションを特定のレプリカ数にスケーリングします。
手順
以下のコマンドを使用してアプリケーションのサービス名を取得します。
oc get service
$ oc get serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: メインサービスをルートとして公開し、OpenShift 外部からアプリケーションにアクセスできるようにします。たとえば、
microprofile-configクイックスタートでは、以下のコマンドを使用して必要なサービスとポートを公開します。oc expose service/microprofile-config --port=8080
$ oc expose service/microprofile-config --port=8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow ルートの URL を取得します。
oc get route
$ oc get routeCopy to Clipboard Copied! Toggle word wrap Toggle overflow この URL を使用して web ブラウザーでアプリケーションにアクセスします。URL は前のコマンド出力にある
HOST/PORTフィールドの値になります。注記JBoss EAP XP 5.0.0 GA ディストリビューションでは、Microprofile Config クイックスタートはアプリケーションのルートコンテキストに対して HTTPS GET リクエストに応答しません。今回の機能拡張は、{JBossXPShortName101} GA ディストリビューションでのみ利用可能です。
たとえば、Microprofile Config アプリケーションと対話するには、ブラウザーの URL は
http://HOST_PORT_Value/config/valueになります。アプリケーションが JBoss EAP ルートコンテキストを使用しない場合、アプリケーションのコンテキストを URL に追加します。たとえば、
microprofile-configクイックスタートの URL はhttp://HOST_PORT_VALUE/microprofile-config/のようになります。任意で、以下のコマンドを実行してアプリケーションインスタンスをスケールアップすることもができます。このコマンドにより、レプリカ数が 3 に増えます。
oc scale deploymentconfig DEPLOYMENTCONFIG_NAME --replicas=3
$ oc scale deploymentconfig DEPLOYMENTCONFIG_NAME --replicas=3Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、
microprofile-configクイックスタートでは、以下のコマンドを使用してアプリケーションをスケールアップします。oc scale deployment/microprofile-config --replicas=3
$ oc scale deployment/microprofile-config --replicas=3Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
JBoss EAP XP クイックスタートの詳細は、MicroProfile in JBoss EAP の使用 ガイドの クイックスタートの使用 セクションを参照してください。
第9章 機能のトリム リンクのコピーリンクがクリップボードにコピーされました!
起動可能な JAR をビルドする場合、含まれる JBoss EAP の機能とサブシステムを決定できます。
機能のトリムは、OpenShift 上で、または起動可能な JAR のビルド時にのみサポートされます。
関連情報
9.1. 利用可能な JBoss EAP レイヤー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat は、OpenShift または起動可能な JAR での JBoss EAP サーバーのプロビジョニングをカスタマイズするために複数のレイヤーを提供します。
3 つの層は、コア機能を提供するベースレイヤーです。他のレイヤーは、追加機能を備えたベースレイヤーを強化するデコレーターレイヤーです。
ほとんどのデコレーターレイヤーを使用して、JBoss EAP for OpenShift で S2I イメージをビルドしたり、起動可能な JAR をビルドしたりできます。一部のレイヤーは S2I イメージをサポートしません。レイヤーノートの説明は、この制限の説明になります。
リスト表示されたレイヤーのみがサポートされます。ここで記載されていないレイヤーはサポートされません。
9.1.1. ベースレイヤー リンクのコピーリンクがクリップボードにコピーされました!
各ベースレイヤーには、典型的なサーバーユーザーケースのコア機能が含まれています。
datasources-web-server
このレイヤーには、サーブレットコンテナーが含まれ、データソースを設定する機能が含まれます。
このレイヤーには MicroProfile 機能が含まれません。
このレイヤーでは、以下の Jakarta EE 仕様がサポートされます。
- Jakarta JSON Processing 1.1
- Jakarta JSON Binding 1.0
- Jakarta Servlet 4.0
- Jakarta Expression Language 3.0
- Jakarta Server Pages 2.3
- Jakarta Standard Tag Library 1.2
- Jakarta Concurrency 1.1
- Jakarta Annotations 1.3
- Jakarta XML Binding 2.3
- Jakarta Debugging Support for Other Languages 1.0
- Jakarta Transactions 1.3
- Jakarta Connectors 1.7
jaxrs-server
このレイヤーは、以下の JBoss EAP サブシステムを使用して datasources-web-server レイヤーを強化します。
-
jaxrs -
weld -
jpa
このレイヤーは、コンテナーに Infinispan ベースのセカンドレベルのエンティティーキャッシングをローカルに追加します。
以下の MicroProfile 機能は、このレイヤーに含まれています。
- MicroProfile REST クライアント
以下の Jakarta EE 仕様は、datasources-web-server レイヤーでサポートされるものに加え、このレイヤーでサポートされています。
- Jakarta Contexts and Dependency Injection 2.0
- Jakarta Bean Validation 2.0
- Jakarta Interceptors 1.2
- Jakarta RESTful Web Services 2.1
- Jakarta Persistence 2.2
cloud-server
このレイヤーは、以下の JBoss EAP サブシステムを使用して jaxrs-server レイヤーを強化します。
-
resource-adapters -
messaging-activemq(組み込みメッセージではなく、リモートブラオーカーメッセージング)
このレイヤーは、以下の observability 機能も jaxrs-server レイヤーに追加します。
- MicroProfile Health
- MicroProfile Config
以下の Jakarta EE 仕様は、jaxrs-server レイヤーでサポートされるものに加え、このレイヤーでサポートされています。
- Jakarta Security 1.0
cloud-default-mp-config
このレイヤーは、standalone-microprofile-ha.xml ファイルに基づき、スタンドアロン設定でサーバーをプロビジョニングします。cloud-default-mp-layer は org.jboss.eap.xp:eap-xp-cloud-galleon-pack によって提供され、JBoss EAP XP S2I ビルドではサポートされますが、ブート可能な JAR ではサポートされません。JBoss EAP XP に含まれるサーバー設定ファイルの詳細は、スタンドアロンサーバー設定ファイル を参照してください。
このワークフローでは、例として microprofile-config クイックスタートを使用します。クイックスタートでは、独自のプロジェクトの参照として使用できる小規模の、特定の作業例を示します。詳細は、JBoss EAP XP 5.0.0 に同梱される microprofile-config クイックスタートを参照してください。
ee-core-profile-server
ee-core-profile-server レイヤーは、Jakarta EE 10 Core Profile を使用してサーバーをプロビジョニングします。Core Profile は、コア JBoss EAP サーバー機能と Jakarta EE API の両方を提供する小さく軽量なプロファイルをユーザーに提供します。ee-core-profile-server レイヤーは、クラウドネイティブアプリケーションやマイクロサービスなどの小規模なランタイムに最適です。
9.1.2. デコレーターレイヤー リンクのコピーリンクがクリップボードにコピーされました!
デコレーターレイヤーは単独で使用されません。ベースレイヤーで 1 つ以上のデコレーターレイヤーを設定すると、追加機能を利用できます。
ejb-lite
このデコレーターレイヤーは、プロビジョニングされたサーバーに最小限の Jakarta Enterprise Bean 実装を追加します。このレイヤーには、以下のサポートは含まれません。
- IIOP の統合
- MDB インスタンスプール
- リモートコネクターリソース
このレイヤーは、起動可能な JAR をビルドする場合のみサポートされます。このレイヤーは、S2I を使用する場合にはサポートされません。
Jakarta Enterprise Beans
このデコレーターレイヤーは、ejb-lite レイヤーを拡張します。このレイヤーは、ejb-lite レイヤーに含まれるベース機能に加えて、プロビジョニングされたサーバーに以下のサポートを追加します。
- MDB インスタンスプール
- リモートコネクターリソース
メッセージ駆動 Bean (MDB) または Jakarta Enterprise Beans リモーティング機能の両方を使用する場合は、このレイヤーを使用します。これらの機能が必要ない場合は、ejb-lite レイヤーを使用します。
このレイヤーは、起動可能な JAR をビルドする場合のみサポートされます。このレイヤーは、S2I を使用する場合にはサポートされません。
ejb-local-cache
このデコレーターレイヤーは、Jakarta Enterprise Beans のローカルキャッシュサポートをプロビジョニングされたサーバーに追加します。
依存関係: ejb-lite レイヤーまたは ejb レイヤーを含む場合に限り、このレイヤーを含めることができます。
このレイヤーは ejb-dist-cache レイヤーと互換性がありません。ejb-dist-cache レイヤーが含まれている場合は、ejb-local-cache レイヤーを含めることができません。両方のレイヤーが含まれる場合、生成されるビルドには予期しない Jakarta Enterprise Beans 設定が含まれる可能性があります。
このレイヤーは、起動可能な JAR をビルドする場合のみサポートされます。このレイヤーは、S2I を使用する場合にはサポートされません。
ejb-dist-cache
このデコレーターレイヤーは、Jakarta Enterprise Beans の分散キャッシングサポートをプロビジョニングされたサーバーに追加します。
依存関係: ejb-lite レイヤーまたは ejb レイヤーを含む場合に限り、このレイヤーを含めることができます。
このレイヤーは ejb-local-cache レイヤーと互換性がありません。ejb-dist-cache レイヤーが含まれている場合は、ejb-local-cache レイヤーを含めることができません。両方のレイヤーを含めると、ビルドが予期しない設定になる可能性があります。
このレイヤーは、起動可能な JAR をビルドする場合のみサポートされます。このレイヤーは、S2I を使用する場合にはサポートされません。
jdr
このデコレーターレイヤーは、Red Hat からサポートを要求する際に診断データを収集するために JBoss Diagnostic Reporting (jdr) サブシステムを追加します。
このレイヤーは、起動可能な JAR をビルドする場合のみサポートされます。このレイヤーは、S2I を使用する場合にはサポートされません。
Jakarta Persistence
このデコレーターレイヤーは、単一ノードサーバーの永続性機能を追加します。分散キャッシングは、サーバーがクラスターを形成できる場合にのみ機能することに注意してください。
レイヤーは Hibernate ライブラリーをプロビジョニングされたサーバーに追加し、以下のサポートを受けることができます。
-
jpaサブシステムの設定 -
infinispanサブシステムの設定 - ローカルの Hibernate キャッシュコンテナー
このレイヤーは jpa-distributed で配布されるレイヤーと互換性がありません。jpa レイヤーを含める場合は、jpa-distributed レイヤーを含めることはできません。
このレイヤーは、起動可能な JAR をビルドする場合のみサポートされます。このレイヤーは、S2I を使用する場合にはサポートされません。
jpa-distributed
このデコレーターレイヤーは、クラスターで稼働しているサーバーに永続性を追加します。レイヤーは Hibernate ライブラリーをプロビジョニングされたサーバーに追加し、以下のサポートを受けることができます。
-
jpaサブシステムの設定 -
infinispanサブシステムの設定 - ローカルの Hibernate キャッシュコンテナー
- インバリデーションおよびレプリケーション Hibernate キャッシュコンテナー
-
jgroupsサブシステムの設定
このレイヤーは jpa レイヤーと互換性がありません。jpa レイヤーを含める場合は、jpa-distributed レイヤーを含めることはできません。
このレイヤーは、起動可能な JAR をビルドする場合のみサポートされます。このレイヤーは、S2I を使用する場合にはサポートされません。
Jakarta Server Faces
このデコレーターレイヤーは、プロビジョニングしたサーバーに jsf サブシステムを追加します。
このレイヤーは、起動可能な JAR をビルドする場合のみサポートされます。このレイヤーは、S2I を使用する場合にはサポートされません。
microprofile-platform
このデコレーターレイヤーは、以下の MicroProfile 機能を、プロビジョニングされたサーバーに追加します。
- MicroProfile Config
- MicroProfile Fault Tolerance
- MicroProfile Health
- MicroProfile JWT
- MicroProfile OpenAPI
このレイヤーには、observability レイヤーにも含まれる MicroProfile 機能が含まれます。このレイヤーを含める場合は、observability レイヤーを含める必要はありません。
observability
このデコレーターレイヤーは、プロビジョニングしたサーバーに以下の observability 機能を追加します。
- MicroProfile Health
- MicroProfile Config
このレイヤーは、cloud-server レイヤーに組み込まれています。このレイヤーは cloud-server レイヤーに追加する必要はありません。
remote-activemq
このデコレーターレイヤーは、リモート ActiveMQ ブローカーと通信し、メッセージングサポートを統合する機能を追加します。
プールされた接続ファクトリー設定は、guest を user および password 属性の値として指定します。CLI スクリプトを使用して、起動時にこれらの値を変更できます。
このレイヤーは、起動可能な JAR をビルドする場合のみサポートされます。このレイヤーは、S2I を使用する場合にはサポートされません。
sso
このデコレーターレイヤーは、プロビジョニングしたサーバーに Red Hat Single Sign-On 統合を追加します。
このレイヤーは、S2I を使用してサーバーをプロビジョニングする場合にのみ使用してください。
web-console
このデコレーターレイヤーは、プロビジョニングしたサーバーに管理コンソールを追加します。
このレイヤーは、起動可能な JAR をビルドする場合のみサポートされます。このレイヤーは、S2I を使用する場合にはサポートされません。
web-clustering
このデコレーターレイヤーは、クラスタリング環境に適したデータセッション処理に、非ローカルの Infinispan ベースのコンテナー Web キャッシュを設定することにより、分散可能な Web アプリケーションをサポートします。
web-passivation
このデコレーターレイヤーは、単一ノード環境に適したデータセッション処理に、ローカルの Infinispan ベースのコンテナー Web キャッシュを設定することにより、分散可能な Web アプリケーションをサポートします。
このレイヤーは、起動可能な JAR をビルドする場合のみサポートされます。このレイヤーは、S2I を使用する場合にはサポートされません。
webservices
このレイヤーは Jakarta Web サービスデプロイメントをサポートするプロビジョニングされたサーバーに Web サービス機能を追加します。
このレイヤーは、起動可能な JAR をビルドする場合のみサポートされます。このレイヤーは、S2I を使用する場合にはサポートされません。
関連情報
第10章 JBoss Tools を使用して JBoss EAP の MicroProfile アプリケーション開発を有効にする リンクのコピーリンクがクリップボードにコピーされました!
JBoss Tools を使用して開発するアプリケーションに MicroProfile 機能を組み込む場合は、JBoss Tools で JBoss EAP の MicroProfile サポートを有効にする必要があります。
JBoss EAP 拡張パックは MicroProfile のサポートを提供します。
JBoss EAP 拡張パックは JBoss EAP 7.2 以前ではサポートされません。
JBoss EAP 拡張パックの各バージョンは、JBoss EAP の特定のパッチをサポートします。詳細は、JBoss EAP 拡張パックサポートおよびライフサイクルポリシーページを参照してください。
JBoss EAP XP Quickstarts for Openshift はテクノロジープレビューとしてのみ提供されます。テクノロジープレビュー機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。
10.1. MicroProfile 機能を使用するための JBoss Tools の設定 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP で MicroProfile サポートを有効にするには、JBoss EAP XP の新しいランタイムサーバーを登録し、新しい JBoss EAP 8.0 サーバーを作成します。
MicroProfile 機能をサポートすることを認識に役立つ適切な名前を付けます。
このサーバーは、以前にインストールされたランタイムを参照し、standalone-microprofile.xml 設定ファイルを使用する新たに作成された JBoss EAP XP ランタイムを使用します。
JBoss Tools で Target runtime を 8.0 以降のランタイムバージョンに設定した場合、プロジェクトは Jakarta EE 8 仕様と互換性があります。
手順
New Serverダイアログボックスで新しいサーバーを設定します。- Select server type リストで Red Hat JBoss Enterprise Application Platform 8.0 を選択します。
- Server's host name フィールドに localhost を入力します。
- Server name フィールドに JBoss EAP 8.0 XP を入力します。
- Next をクリックします。
新しいサーバーの設定
- Home directory フィールドに、デフォルト設定を使用しない場合は、新しいディレクトリーを指定します (例: home/myname/dev/microprofile/runtimes/jboss-eap-7.4)。
- Execution Environment が JavaSE-1.8 に設定されていることを確認します。
- 任意: Server base directory と Configuration file フィールドの値を変更します。
- Finish をクリックします。
結果
これで、MicroProfile 機能を使用したアプリケーションの開発を開始することや、JBoss EAP の MicroProfile クイックスタートの使用できるようになりました。
10.2. JBoss Tools の MicroProfile クイックスタートの使用 リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile クイックスタートを有効にすると、簡単な例はインストールされたサーバーで実行およびテストできるようになります。
これらの例は、以下の MicroProfile 機能を示しています。
- MicroProfile Config
- MicroProfile Fault Tolerance
- MicroProfile Health
- MicroProfile JWT
- MicroProfile OpenAPI
- MicroProfile REST クライアント
手順
-
Quickstart Parent Artifact から
pom.xmlファイルをインポートします。 環境変数を必要とするクイックスタートを使用している場合は、サーバーの Overview ダイアログボックスの起動設定でそれらの変数を設定します。
たとえば、
opentelemetry-tracingクイックスタートでは次の環境変数が使用されます。-
OTEL_COLLECTOR_HOST
-
関連情報
About JBoss Enterprise Application Platform expansion pack
Red Hat JBoss Enterprise Application Platform expansion pack サポートとライフサイクルポリシー
第11章 起動可能な JAR リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP JAR Maven プラグインを使用して、マイクロサービスアプリケーションを起動可能な JAR としてビルドおよびパッケージ化できます。その後、JBoss EAP ベアメタルプラットフォームまたは JBoss EAP OpenShift プラットフォームでアプリケーションを実行できます。
11.1. 起動可能な JAR について リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP JAR Maven プラグインを使用して、マイクロサービスアプリケーションを起動可能な JAR としてビルドおよびパッケージ化できます。
起動可能な JAR には、サーバー、パッケージ化されたアプリケーション、およびサーバー起動に必要なランタイムが含まれます。
JBoss JAR Maven プラグインは Galleon トリム機能を使用して、サーバーのサイズおよびメモリーフットプリントを削減します。そのため、必要な機能を提供する Galleon レイヤーのみを含め、要件に応じてサーバーを設定できます。
JBoss EAP JAR Maven プラグインは、サーバー設定をカスタマイズするための JBoss EAP CLI スクリプトファイルの実行をサポートします。CLI スクリプトには、サーバーを設定するための CLI コマンドのリストが含まれます。
起動可能な JAR は、以下の方法で標準の JBoss EAP サーバーと似ています。
- JBoss EAP の共通の管理 CLI コマンドをサポートします。
- JBoss EAP 管理コンソールを使用して管理できます。
起動可能な JAR でサーバーをパッケージ化する場合は、以下の制限が適用されます。
- サーバー再起動を必要とする CLI 管理操作はサポートされていません。
- サーバーは、サーバー管理に関連するサービスを開始するモードである admin-only モードで再起動できません。
- サーバーをシャットダウンすると、サーバーに設定した更新が失われます。
さらに、起動可能な hollow JAR をプロビジョニングできます。この JAR にはサーバーのみが含まれるため、サーバーを変更して異なるアプリケーションを実行することができます。
11.2. JBoss EAP JAR Maven プラグイン リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP JAR Maven プラグインを使用してアプリケーションを起動可能な JAR としてビルドできます。
9.minor.micro.Final-redhat-XXXXX などの最新の Maven プラグインがあることを確認します。この場合の 9 はメジャーバージョン、minor はマイナーバージョン、micro はマイクロバージョン、X は Red Hat ビルド番号です。たとえば 9.0.1.Final-redhat-00009 です。
Maven プロジェクトで、src ディレクトリーにはアプリケーションのビルドに必要なすべてのソースファイルが含まれています。JBoss EAP JAR Maven プラグインが起動可能な JAR をビルドすると、生成された JAR は target/<application>-bootable.jar に置かれます。
JBoss EAP JAR Maven プラグインによって以下の機能も提供されます。
- JBoss EAP チャネルを使用して JBoss EAP XP サーバーをプロビジョニングできます。
- CLI スクリプトコマンドをサーバーに適用します。
-
サーバー設定ファイルをカスタマイズするには、
org.jboss.eap.xp:wildfly-galleon-packGalleon 機能パックと、そのレイヤーの一部を使用します。 - キーストアファイルなど、パッケージ化可能な JAR に追加ファイルの追加をサポートします。
- 起動可能な hollow JAR を作成する機能が含まれています。つまり、アプリケーションを含まない起動可能な JAR です。
JBoss EAP JAR Maven プラグインを使用して起動可能な JAR を作成した後に、以下のコマンドを実行するとアプリケーションを起動できます。target/myapp-bootable.jar を起動可能な JAR へのパスに置き換えます。以下に例を示します。
java -jar target/myapp-bootable.jar
$ java -jar target/myapp-bootable.jar
サポートされる起動可能な JAR 起動コマンドのリストを取得するには、起動コマンドの最後に --help を追加します。例: java -jar target/myapp-bootable.jar --help
11.3. 起動可能な JAR 引数 リンクのコピーリンクがクリップボードにコピーされました!
以下の表で引数を確認し、起動可能な JAR で使用するサ対応引数について確認します。
| 引数 | 説明 |
|---|---|
|
| 指定のコマンドのヘルプメッセージを表示し、終了します。 |
|
| 起動可能な JAR の起動時に実行される JBoss CLI スクリプトへのパスを指定します。指定されたパスが相対パスである場合、パスは、起動可能な JAR の起動に使用される Java VM インスタンスの作業ディレクトリーに対して解決されます。 |
|
| 起動可能な JAR に固有の引数。サーバーにデプロイするアプリケーションが含まれる WAR、JAR、EAR ファイル、またはデプロイメント形式のディレクトリーへのパスを指定します。 |
|
| 生成された Galleon 設定ファイルの内容を出力します。 |
|
|
デフォルトでは、JVM 設定は、起動可能な JAR の起動後に TEMP ディレクトリーを作成するために使用されます。 |
|
| セキュリティーマネージャーがインストールされた状態でサーバーを実行します。 |
|
|
システムプロパティー |
|
|
パブリックインターフェイスのバインドアドレスを設定するために使用される |
|
| サーバーランタイムにサーバーによって設定されるシステムプロパティーを指定します。起動可能な JAR JVM はこれらのシステムプロパティーを設定しません。 |
|
| 指定の URL からシステムプロパティーをロードします。 |
|
| セキュリティープロパティーを設定します。 |
|
|
設定ファイルの socket-binding 要素のマルチキャストアドレスを設定するために使用される |
|
| アプリケーションサーバーのバージョンを表示し、終了します。 |
11.4. 起動可能な JAR サーバーの Galleon レイヤーの指定 リンクのコピーリンクがクリップボードにコピーされました!
Galleon レイヤーを指定して、サーバーのカスタム設定をビルドできます。さらに、サーバーから除外する Galleon レイヤーを指定することもできます。
JBoss EAP XP 5.0 以降では、サーバーアーティファクトを取得するために、JBoss EAP 8.0 および JBoss EAP XP 5.0 チャネルを使用して JBoss EAP JAR Maven プラグインを設定する必要があります。JBoss EAP チャネルの詳細は、JBoss EAP インストールチャネルの管理 を参照してください。
最新の JBoss EAP XP 5.0 サーバーをプロビジョニングするための JBoss EAP および JBoss EAP XP チャネルを指定するには、次の例に従います。
<feature-pack-location> 要素を使用して、機能パックの場所を指定します。以下の例では、Maven プラグイン設定ファイルで <feature-pack-location> 要素内に org.jboss.eap.xp:wildfly-Galleon-pack を指定します。
複数の機能パックを参照する必要がある場合は、それらを <feature-packs> 要素に一覧表示します。次の例では、JBoss EAP データソース機能パックを <feature-packs> 要素に追加しています。
複数の機能パックから Galleon レイヤーを組み合わせて、起動可能な JAR サーバーを設定し、必要な機能を提供する対応の Galleon レイヤーのみを含めることができます。
ベアメタルプラットフォームで、設定ファイルで Galleon レイヤーを指定しない場合、プロビジョニングしたサーバーにはデフォルトの standalone-microprofile.xml 設定と同じ設定が含まれます。
OpenShift プラットフォームでは、プラグイン設定に <cloud/> 設定要素を追加した後に、設定ファイルで Galleon レイヤーを指定しない場合、プロビジョニングされたサーバーにはクラウド環境用に調整され、デフォルトの standalone-microprofile-ha.xml と似ている設定が含まれます。
前提条件
- Maven がインストールされている。
-
9.minor.micro.Final-redhat-XXXXXなどの最新の Maven プラグインを確認した。この場合の 9 はメジャーバージョン、minor はマイナーバージョン、micro はマイクロバージョン、X は Red Hat ビルド番号です。たとえば9.0.1.Final-redhat-00009です。
この手順の例では、以下のプロパティーを指定します。
-
Maven プラグインバージョンの場合は、
${bootable.jar.maven.plugin.version}です。
これらのプロパティーをプロジェクトで設定する必要があります。以下に例を示します。
<properties>
<bootable.jar.maven.plugin.version>9.0.1.Final-redhat-00009</bootable.jar.maven.plugin.version>
</properties>
<properties>
<bootable.jar.maven.plugin.version>9.0.1.Final-redhat-00009</bootable.jar.maven.plugin.version>
</properties>
手順
- アプリケーションの実行に必要な機能を提供する、サポートされる JBoss EAP Galleon レイヤーを特定します。
Maven プロジェクトの
pom.xmlファイルの<plugin>要素で JBoss EAP feature-pack の場所を参照します。以下の例は、jaxrs-serverベースレイヤーおよびjpa-distributedレイヤーを含む単一の feature-pack を組み込んでいます。jaxrs-serverベースレイヤーは、サーバーの追加サポートを提供します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、プロジェクトからの
jpaレイヤーの除外も示しています。注記jpa-distributedレイヤーをプロジェクトに含める場合は、jaxrs-serverレイヤーからjpaレイヤーを除外する必要があります。jpaレイヤーはローカルの infinispan hibernate キャッシュを設定し、jpa-distributedレイヤーはリモート infinispan hibernate キャッシュを設定します。
11.5. JBoss EAP ベアメタルプラットフォームでの起動可能な JAR の使用 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP ベアメタルプラットフォームで、アプリケーションを起動可能な JAR としてパッケージ化できます。
起動可能な JAR には、サーバー、パッケージ化されたアプリケーション、およびサーバー起動に必要なランタイムが含まれます。
この手順では、JBoss EAP JAR Maven プラグインを使用して MicroProfile Config マイクロサービスを起動可能な JAR としてパッケージ化する方法を説明します。MicroProfile Config Quickstart を参照してください。
起動可能な JAR のパッケージング時に CLI スクリプトを使用してサーバーを設定できます。
起動可能な JAR 内にパッケージ化する必要がある Web アプリケーションのビルドでは、pom.xml ファイルの <packaging> 要素に war を指定する必要があります。以下に例を示します。
<packaging>war</packaging>
<packaging>war</packaging>
この値は、ビルドアプリケーションを、デフォルトの JAR ファイルとしてではなく、WAR ファイルとしてパッケージ化するのに必要です。
起動可能な hollow JAR をビルドするためだけに Maven プロジェクトで使用される Maven プロジェクトで、packaging の値を pom に設定します。以下に例を示します。
<packaging>pom</packaging>
<packaging>pom</packaging>
Maven プロジェクトの hollow JAR をビルドする場合は、pom パッケージングの使用に限定されません。war などのパッケージ化の種類について <hollow-jar> 要素に true を指定すると作成できます。JBoss EAP ベアメタルプラットフォームでの起動可能な JAR の作成 を参照してください。
前提条件
-
9.minor.micro.Final-redhat-XXXXXなどの最新の Maven プラグインを確認した。この場合の 9 はメジャーバージョン、minor はマイナーバージョン、micro はマイクロバージョン、X は Red Hat ビルド番号です。たとえば9.0.1.Final-redhat-00009です。 - Maven プロジェクトを作成し、MicroProfile アプリケーションを作成するための依存関係を追加しました。MicroProfile Config の開発 を参照してください。
この手順の例では、以下のプロパティーを指定します。
-
Maven プラグインバージョンの場合は、
${bootable.jar.maven.plugin.version}です。
これらのプロパティーをプロジェクトで設定する必要があります。以下に例を示します。
<properties>
<bootable.jar.maven.plugin.version>9.0.1.Final-redhat-00009</bootable.jar.maven.plugin.version>
</properties>
<properties>
<bootable.jar.maven.plugin.version>9.0.1.Final-redhat-00009</bootable.jar.maven.plugin.version>
</properties>
手順
以下の内容を
pom.xmlファイルの<build>要素に追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記pom.xmlファイルで Galleon レイヤーを指定しない場合、起動可能な JAR サーバーにはstandalone-microprofile.xml設定と同じ設定が含まれます。アプリケーションを起動可能な JAR としてパッケージ化します。
mvn package
$ mvn packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションを起動します。
NAME="foo" java -jar target/microprofile-config-bootable.jar
$ NAME="foo" java -jar target/microprofile-config-bootable.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この例では、環境変数に
NAMEを使用しますが、デフォルト値のjimを使用することができます。注記サポートされる起動可能な JAR 引数のリストを表示するには、
--helpをjava -jar target/microprofile-config-bootable.jarコマンドの最後に追加します。Web ブラウザーで以下の URL を指定して MicroProfile Config アプリケーションにアクセスします。
http://localhost:8080/config/json
http://localhost:8080/config/jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 検証: ターミナルで以下のコマンドを実行し、アプリケーションが適切に動作します。
curl http://localhost:8080/config/json
curl http://localhost:8080/config/jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下が想定される出力です。
{"result":"Hello foo"}{"result":"Hello foo"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.6. JBoss EAP ベアメタルプラットフォームでの起動可能な JAR の作成 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP ベアメタルプラットフォームで、アプリケーションを起動可能な hollow JAR としてパッケージ化できます。
起動可能な hollow JAR には JBoss EAP サーバーのみが含まれます。起動可能な hollow JAR は JBoss EAP JAR Maven プラグインによってパッケージ化されます。アプリケーションはサーバーランタイム時に提供されます。起動可能な JAR は、異なるアプリケーションのサーバー設定を再利用する必要がある場合に便利です。
前提条件
- MicroProfile Config 開発用の Maven プロジェクトを作成した。例: MicroProfile Config クイックスタート を参照してください。
-
JBoss EAP ベアメタルプラットフォームでの起動可能な JAR の使用 で説明されている
pom.xmlファイル設定手順を完了している。 -
9.minor.micro.Final-redhat-XXXXXなどの最新の Maven プラグインを確認した。この場合の 9 はメジャーバージョン、minor はマイナーバージョン、micro はマイクロバージョン、X は Red Hat ビルド番号です。たとえば9.0.1.Final-redhat-00009です。
手順
-
起動可能な hollow JAR をビルドするには、プロジェクトの
pom.xmlファイルで<hollow-jar>プラグイン設定要素を true に設定する必要があります。以下に例を示します。
<hollow-jar> 要素で true を指定すると、JBoss EAP JAR Maven プラグインにアプリケーションが含まれません。
起動可能な hollow JAR をビルドします。
mvn clean package
$ mvn clean packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 起動可能な hollow JAR を実行します。
java -jar target/microprofile-config-bootable.jar --deployment=target/microprofile-config.war
$ java -jar target/microprofile-config-bootable.jar --deployment=target/microprofile-config.warCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要サーバーにデプロイする WAR ファイルへのパスを指定するには、以下の引数を使用します。
<PATH_NAME>は、デプロイメントへのパスになります。--deployment=<PATH_NAME>
--deployment=<PATH_NAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションにアクセスします。
curl http://localhost:8080/microprofile-config/config/json
$ curl http://localhost:8080/microprofile-config/config/jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記root ディレクトリーに Web アプリケーションを登録するには、アプリケーションに
ROOT.warという名前を付けます。
11.7. ビルド時に実行される CLI スクリプト リンクのコピーリンクがクリップボードにコピーされました!
CLI スクリプトを作成して、起動可能な JAR のパッケージング中にサーバーを設定できます。
CLI スクリプトは、追加のサーバー設定を適用するために使用できる一連の CLI コマンドが含まれるテキストファイルです。たとえば、スクリプトを作成して新しいロガーを logging サブシステムに追加できます。
CLI スクリプトでより複雑な操作を指定することもできます。たとえば、セキュリティー管理操作を単一のコマンドにグループ化して、管理 HTTP エンドポイントの HTTP 認証を有効にできます。
アプリケーションを起動可能な JAR としてパッケージ化する前に、プラグイン設定の <cli-session> 要素に CLI スクリプトを定義する必要があります。これにより、起動可能な JAR をパッケージ化した後にサーバー設定が維持されるようになります。
事前定義された Galleon レイヤーを組み合わせて、アプリケーションをデプロイするサーバーを設定できますが、制限はあります。たとえば、起動可能な JAR のパッケージ化時に Galleon レイヤーを使用して HTTPS undertow リスナーを有効にすることはできません。代わりに、CLI スクリプトを使用する必要があります。
CLI スクリプトは、pom.xml ファイルの <cli-session> 要素に定義する必要があります。以下の表は、CLI セッション属性のタイプを示しています。
| 引数 | 説明 |
|---|---|
|
| スクリプトファイルへのパスのリスト。 |
|
|
プロパティーファイルへのパスを指定する任意の属性。このファイルは、 |
|
|
ブール値が含まれる任意の属性です。操作リクエストをサーバーに送信する前にシステムプロパティーまたは式が解決されているかどうかを示します。デフォルト値は |
-
CLI スクリプトは、
pom.xmlファイルの<cli-session>要素で定義された順序で起動します。 - JBoss EAP JAR Maven プラグインは、各 CLI セッションに対して埋め込みサーバーを起動します。そのため、CLI スクリプトは埋め込みサーバーを起動したり、停止したりする必要はありません。
11.8. 実行時に CLI スクリプトを実行する リンクのコピーリンクがクリップボードにコピーされました!
実行時にサーバー設定に変更を適用できます。これにより、実行コンテキストに関してサーバーを柔軟に調整できます。ただし、サーバーに変更を適用するための推奨される方法は、ビルド時です。
手順
起動可能な JAR と
--cli-script引数を起動します。以下に例を示します。
java -jar myapp-bootable.jar --cli-scipt=my-scli-scipt.cli
java -jar myapp-bootable.jar --cli-scipt=my-scli-scipt.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
CLI スクリプトはテキストファイル (UTF-8) である必要があります。ファイル拡張子が存在する場合は意味がありませんが、
.cli拡張子を使用することを推奨します。 - サーバーの再起動が必要な操作は、起動可能な JAR インスタンスを終了します。
-
connect、reload、shutdownなどの CLI コマンド、および組み込みサーバーに関連するコマンドは機能しません。 -
admin モードでは実行できない
jdbc-driver-infoなどの CLI コマンドはサポートされていません。
CLI スクリプトを実行せずにサーバーを再起動すると、新しいサーバーインスタンスには以前のサーバーインスタンスからの変更が含まれなくなります。
11.9. JBoss EAP OpenShift プラットフォームでの起動可能な JAR の使用 リンクのコピーリンクがクリップボードにコピーされました!
11.9.1. oc コマンドを使用したバイナリービルドの実行 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションを起動可能な JAR としてパッケージ化した後、JBoss EAP OpenShift プラットフォームでアプリケーションを実行できます。
OpenShift では、起動可能な JAR で EAP Operator の自動化トランザクションリカバリー機能を使用することはできません。
前提条件
- MicroProfile Config 開発用の Maven プロジェクトを作成した。例: MicroProfile Config クイックスタート を参照してください。
-
9.minor.micro.Final-redhat-XXXXXなどの最新の Maven プラグインを確認した。この場合の 9 はメジャーバージョン、minor はマイナーバージョン、micro はマイクロバージョン、X は Red Hat ビルド番号です。たとえば9.0.1.Final-redhat-00009です。
この手順の例では、以下のプロパティーを指定します。
-
Maven プラグインバージョンの場合は、
${bootable.jar.maven.plugin.version}です。
これらのプロパティーをプロジェクトで設定する必要があります。以下に例を示します。
<properties>
<bootable.jar.maven.plugin.version>9.0.1.Final-redhat-00009</bootable.jar.maven.plugin.version>
</properties>
<properties>
<bootable.jar.maven.plugin.version>9.0.1.Final-redhat-00009</bootable.jar.maven.plugin.version>
</properties>
手順
以下の内容を
pom.xmlファイルの<build>要素に追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記<cloud/>要素をプラグイン設定の<configuration>要素に含める必要があります。そのため、JBoss EAP Maven JAR プラグインは OpenShift プラットフォームを選択できます。アプリケーションをパッケージ化します。
mvn package
$ mvn packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
oc loginコマンドを使用して、OpenShift インスタンスにログインします。 OpenShift で新しいプロジェクトを作成します。以下に例を示します。
oc new-project bootable-jar-project
$ oc new-project bootable-jar-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
ocコマンドを入力してアプリケーションイメージを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OpenShift は CLI スクリプトコマンドのセットを起動可能な JAR 設定ファイルに適用し、クラウド環境に合わせて調整します。このスクリプトにアクセスするには、Maven プロジェクト
/target directoryのbootable-jar-build-artifacts/generated-cli-script.txtファイルを開きます。検証:
利用可能な OpenShift Pod のリストを表示し、以下のコマンドを実行して Pod のビルドステータスを確認します。
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ビルドされたアプリケーションイメージを確認します。
oc get is microprofile-config-app
$ oc get is microprofile-config-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には、名前、イメージリポジトリー、タグなどのビルドされたアプリケーションイメージの詳細が表示されます。この手順の例では、イメージストリーム名とタグの出力には
microprofile-config-app:latestが表示されます。アプリケーションのデプロイ:
oc new-app microprofile-config-app oc expose svc/microprofile-config-app
$ oc new-app microprofile-config-app $ oc expose svc/microprofile-config-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要起動可能な JAR にシステムプロパティーを指定するには、
JAVA_OPTS_APPEND環境変数を使用する必要があります。以下の例は、JAVA_OPTS_APPEND環境変数の使用方法を示しています。oc new-app <_IMAGESTREAM_> -e JAVA_OPTS_APPEND="-Xlog:gc*:file=/tmp/gc.log:time -Dwildfly.statistics-enabled=true"
$ oc new-app <_IMAGESTREAM_> -e JAVA_OPTS_APPEND="-Xlog:gc*:file=/tmp/gc.log:time -Dwildfly.statistics-enabled=true"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいアプリケーションが作成され、起動します。アプリケーション設定は新しいサービスとして公開されます。
検証: ターミナルで以下のコマンドを実行し、アプリケーションが適切に動作するかどうかをテストします。
curl http://$(oc get route microprofile-config-app --template='{{ .spec.host }}')/config/json$ curl http://$(oc get route microprofile-config-app --template='{{ .spec.host }}')/config/jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 想定される出力:
{"result":"Hello jim"}{"result":"Hello jim"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.10. OpenShift の起動可能な JAR の設定 リンクのコピーリンクがクリップボードにコピーされました!
起動可能な JAR を使用する前に、JVM を設定してスタンドアロンサーバーが JBoss EAP for OpenShift で正しく動作することを確認できます。
JAVA_OPTS_APPEND 環境変数を使用して JVM を設定します。JAVA_ARGS コマンドを使用して、起動可能な JAR に引数を提供します。
環境変数を使用してプロパティーの値を設定できます。たとえば、JAVA_OPTS_APPEND 環境変数を使用して、-Dwildfly.statistics-enabled プロパティーを true に設定できます。
JAVA_OPTS_APPEND="-Xlog:gc*:file=/tmp/gc.log:time -Dwildfly.statistics-enabled=true"
JAVA_OPTS_APPEND="-Xlog:gc*:file=/tmp/gc.log:time -Dwildfly.statistics-enabled=true"
サーバーの統計が有効になっているようになりました。
起動可能な JAR に引数を提供する必要がある場合は、JAVA_ARGS 環境変数を使用します。
JBoss EAP for OpenShift は JDK 17 イメージを提供します。起動可能な JAR に関連付けられたアプリケーションを実行するには、まず最新の OpenJDK 17 イメージストリームタグおよびイメージ情報を OpenShift プロジェクトにインポートする必要があります。環境変数を使用して、インポートされたイメージで JVM を設定できます。
JBoss EAP for OpenShift S2I イメージに使用される JVM の設定に同じ設定オプションを適用できますが、以下の違いがあります。
-
オプション:
-Xlog機能は利用できませんが、-Xlog:gcを有効にすることでガベッジコレクションのロギングを設定できます。例:JAVA_OPTS_APPEND="-Xlog:gc*:file=/tmp/gc.log:time" -
初期メタスペースのサイズを増やすには、
GC_METASPACE_SIZE環境変数を設定します。最適なメタデータのキャパシティパフォーマンスを得るためには、値を96に設定します。 -
ランダムなファイルの生成を改善するには、
JAVA_OPTS_APPEND環境変数を使用して、java.security.egdプロパティーを-Djava.security.egd=file:/dev/urandomに設定します。
この設定により、インポートされた OpenJDK 17 イメージで実行される場合に JVM のメモリー設定およびガベージコレクション機能が向上します。
11.11. OpenShift でのアプリケーションでの ConfigMap の使用 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift では、デプロイメントコントローラー (dc) を使用して、アプリケーションの実行に使用される Pod に configmap をマウントできます。
ConfigMap は、機密ではないデータをキーと値のペアに保存するために使用される OpenShift リソースです。
microprofile-platform Galleon レイヤーを指定して microprofile-config-smallrye およびすべての拡張機能をサーバー設定に追加してから、CLI スクリプトを使用して新しい ConfigSource をサーバー設定に追加できます。CLI スクリプトは、Maven プロジェクトのルートディレクトリーにある /scripts ディレクトリーなど、アクセス可能なディレクトリーに保存できます。
MicroProfile Config 機能は、SmallRye Config を使用して JBoss EAP に実装され、microprofile-config-smallrye サブシステムによって提供されます。このサブシステムは microprofile-platform Galleon レイヤーに含まれています。
前提条件
- Maven がインストールされている。
- JBoss EAP Maven リポジトリーを設定している。
- アプリケーションを起動可能な JAR としてパッケージ化し、JBoss EAP OpenShift プラットフォームでアプリケーションを実行できます。OpenShift プラットフォーム上でアプリケーションを起動可能な JAR として構築する方法は、JBoss EAP OpenShift プラットフォームでの起動可能な JAR の使用 を参照してください。
手順
プロジェクトのルートディレクトリーに
scriptsという名前のディレクトリーを作成します。以下に例を示します。mkdir scripts
$ mkdir scriptsCopy to Clipboard Copied! Toggle word wrap Toggle overflow cli.propertiesファイルを作成し、そのファイルを/scriptsディレクトリーに保存します。このファイルにconfig.pathおよびconfig.ordinalシステムプロパティーを定義します。以下に例を示します。config.path=/etc/config config.ordinal=200
config.path=/etc/config config.ordinal=200Copy to Clipboard Copied! Toggle word wrap Toggle overflow mp-config.cliなどの CLI スクリプトを作成し、これを/scriptsディレクトリーなどの起動可能な JAR のアクセス可能なディレクトリーに保存します。以下の例は、mp-config.cliスクリプトの内容を示しています。config map /subsystem=microprofile-config-smallrye/config-source=os-map:add(dir={path=${config.path}}, ordinal=${config.ordinal})# config map /subsystem=microprofile-config-smallrye/config-source=os-map:add(dir={path=${config.path}}, ordinal=${config.ordinal})Copy to Clipboard Copied! Toggle word wrap Toggle overflow mp-config.cliCLI スクリプトは、プロパティーファイルから序数とパスの値を取得する新しいConfigSourceを作成します。-
スクリプトを
/scriptsディレクトリーに保存します。このディレクトリーは、プロジェクトのルートディレクトリーにあります。 既存のプラグイン
<configuration>要素に以下の設定抽出を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションをパッケージ化します。
mvn package
$ mvn packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
oc loginコマンドを使用して、OpenShift インスタンスにログインします。 オプション:
target/openshiftサブディレクトリーを作成していない場合は、以下のコマンドを実行してサブディレクトリーを作成する必要があります。mkdir target/openshift
$ mkdir target/openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow パッケージ化したアプリケーションを、作成したサブディレクトリーにコピーします。
cp target/microprofile-config-bootable.jar target/openshift
$ cp target/microprofile-config-bootable.jar target/openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow target/openshiftサブディレクトリーをバイナリー入力として使用し、アプリケーションをビルドします。oc start-build microprofile-config-app --from-dir target/openshift
$ oc start-build microprofile-config-app --from-dir target/openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OpenShift は CLI スクリプトコマンドのセットを起動可能な JAR 設定ファイルに適用し、クラウド環境に合わせて調整します。このスクリプトにアクセスするには、Maven プロジェクト
/target directoryのbootable-jar-build-artifacts/generated-cli-script.txtファイルを開きます。ConfigMapを作成します。以下に例を示します。oc create configmap microprofile-config-map --from-literal=name="Name comes from Openshift ConfigMap"
$ oc create configmap microprofile-config-map --from-literal=name="Name comes from Openshift ConfigMap"Copy to Clipboard Copied! Toggle word wrap Toggle overflow dc を使用して、
ConfigMapをアプリケーションにマウントします。以下に例を示します。oc set volume deployments/microprofile-config-app --add --name=config-volume \ --mount-path=/etc/config \ --type=configmap \ --configmap-name=microprofile-config-map
$ oc set volume deployments/microprofile-config-app --add --name=config-volume \ --mount-path=/etc/config \ --type=configmap \ --configmap-name=microprofile-config-mapCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc set volumeコマンドを実行すると、アプリケーションは新しい設定で再デプロイされます。出力をテストします。
curl http://$(oc get route microprofile-config-app --template='{{ .spec.host }}')/config/json$ curl http://$(oc get route microprofile-config-app --template='{{ .spec.host }}')/config/jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下が想定される出力です。
{"result":"Hello Name comes from Openshift ConfigMap"}{"result":"Hello Name comes from Openshift ConfigMap"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.12. 起動可能な JAR Maven プロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、サンプル Maven プロジェクトを作成します。以下の手順を実行する前に、Maven プロジェクトを作成する必要があります。
- 起動可能な JAR の JSON ロギングの有効化
- 複数の起動可能な JAR インスタンスの Web セッションデータストレージの有効化
- CLI スクリプトを使用した起動可能な JAR の HTTP 認証の有効化
- Red Hat build of Keycloak による JBoss EAP ブート可能 JAR アプリケーションのセキュリティー保護
プロジェクトの pom.xml ファイルでは、起動可能な JAR のビルドに必要なプロジェクトアーティファクトを取得するように Maven を設定できます。
手順
Maven プロジェクトを設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow GROUP_ID はプロジェクトの
groupIdで、ARTIFACT_ID はプロジェクトのartifactIdです。pom.xmlファイルで、リモートリポジトリーから JBoss EAP BOM ファイルを取得するように Maven を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow jboss-eap-eeBOM の Jakarta EE アーティファクトのバージョンを自動的に管理するように Maven を設定するには、プロジェクトのpom.xmlファイルの<dependencyManagement>セクションに BOM を追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例のように、BOM によって管理されるサーブレット API アーティファクトをプロジェクトの
pom.xmlファイルの<dependency>セクションに追加します。<dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <scope>provided</scope> </dependency><dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <scope>provided</scope> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.13. 起動可能な JAR の JSON ロギングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
CLI スクリプトを使用してサーバーロギング設定を設定すると、起動可能な JAR の JSON ロギングを有効にできます。JSON ロギングを有効にすると、JSON フォーマッターを使用してログメッセージを JSON 形式で表示できます。
この手順の例では、ベアメタルプラットフォームおよび OpenShift プラットフォームで、起動可能な JAR の JSON ロギングを有効にする方法を説明します。
前提条件
-
9.minor.micro.Final-redhat-XXXXXなどの最新の Maven プラグインを確認した。この場合の 9 はメジャーバージョン、minor はマイナーバージョン、micro はマイクロバージョン、X は Red Hat ビルド番号です。たとえば9.0.1.Final-redhat-00009です。 Maven プロジェクトを作成し、アプリケーションを作成するための依存関係を追加した。起動可能な JAR Maven プロジェクトの作成 を参照してください。
重要Maven プロジェクトの Maven archetype で、プロジェクト固有の groupID および artifactID を指定する必要があります。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この手順の例では、以下のプロパティーを指定します。
-
Maven プラグインバージョンの場合は、
${bootable.jar.maven.plugin.version}です。
これらのプロパティーをプロジェクトで設定する必要があります。以下に例を示します。
<properties> <bootable.jar.maven.plugin.version>9.0.1.Final-redhat-00009</bootable.jar.maven.plugin.version> </properties><properties> <bootable.jar.maven.plugin.version>9.0.1.Final-redhat-00009</bootable.jar.maven.plugin.version> </properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Maven プラグインバージョンの場合は、
手順
BOM によって管理される JBoss Logging および Jakarta RESTful Web Services 依存関係を、プロジェクトの
pom.xmlファイルの<dependencies>セクションに追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の内容を
pom.xmlファイルの<build>要素に追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow java ファイルを保存するディレクトリーを作成します。
mkdir -p APPLICATION_ROOT/src/main/java/com/example/logging/
$ mkdir -p APPLICATION_ROOT/src/main/java/com/example/logging/Copy to Clipboard Copied! Toggle word wrap Toggle overflow APPLICATION_ROOTは、アプリケーションのpom.xml設定ファイルが含まれるディレクトリーです。以下の内容で
Java ファイル RestApplication.javaを作成し、ファイルをAPPLICATION_ROOT/src/main/java/com/example/logging/ディレクトリーに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の内容で Java ファイル
HelloWorldEndpoint.javaを作成し、ファイルをAPPLICATION_ROOT/src/main/java/com/example/logging/ディレクトリーに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow logging.cliなどの CLI スクリプトを作成し、APPLICATION_ROOT/scriptsディレクトリーなどの起動可能な JAR のアクセス可能なディレクトリーに保存します。APPLICATION_ROOTは Maven プロジェクトのルートディレクトリーです。スクリプトには以下のコマンドが含まれている必要があります。/subsystem=logging/logger=com.example.logging:add(level=ALL) /subsystem=logging/json-formatter=json-formatter:add(exception-output-type=formatted, pretty-print=false, meta-data={version="1"}, key-overrides={timestamp="@timestamp"}) /subsystem=logging/console-handler=CONSOLE:write-attribute(name=level,value=ALL) /subsystem=logging/console-handler=CONSOLE:write-attribute(name=named-formatter, value=json-formatter)/subsystem=logging/logger=com.example.logging:add(level=ALL) /subsystem=logging/json-formatter=json-formatter:add(exception-output-type=formatted, pretty-print=false, meta-data={version="1"}, key-overrides={timestamp="@timestamp"}) /subsystem=logging/console-handler=CONSOLE:write-attribute(name=level,value=ALL) /subsystem=logging/console-handler=CONSOLE:write-attribute(name=named-formatter, value=json-formatter)Copy to Clipboard Copied! Toggle word wrap Toggle overflow プラグイン
<configuration>要素に以下の設定抽出を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例は、アプリケーションの JSON
ロギングを有効にするためにサーバーロギング設定ファイルを変更する logging.cliCLI スクリプトを示しています。アプリケーションを起動可能な JAR としてパッケージ化します。
mvn package
$ mvn packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: JBoss EAP ベアメタルプラットフォームでアプリケーションを実行するには、JBoss EAP ベアメタルプラットフォームでの起動可能な JAR の使用 にある手順に従いますが、以下の違いがあります。
アプリケーションを起動します。
mvn wildfly-jar:run
mvn wildfly-jar:runCopy to Clipboard Copied! Toggle word wrap Toggle overflow 検証: ブラウザーで http://127.0.0.1:8080/hello に URL を指定すると、アプリケーションにアクセスできます。
予期される出力: アプリケーションコンソールで
com.example.logging.HelloWorldEndpointデバッグトレースを含む JSON 形式のログを表示できます。
オプション: JBoss EAP OpenShift プラットフォームでアプリケーションを実行するには、以下の手順を実行します。
<cloud/>要素をプラグイン設定に追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションをリビルドします。
mvn clean package
$ mvn clean packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
oc loginコマンドを使用して、OpenShift インスタンスにログインします。 OpenShift で新しいプロジェクトを作成します。以下に例を示します。
oc new-project bootable-jar-project
$ oc new-project bootable-jar-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
ocコマンドを入力してアプリケーションイメージを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションのデプロイ:
oc new-app logging oc expose svc/logging
$ oc new-app logging $ oc expose svc/loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow ルートの URL を取得します。
oc get route logging --template='{{ .spec.host }}'$ oc get route logging --template='{{ .spec.host }}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 直前のコマンドから返された URL を使用して、Web ブラウザーでアプリケーションにアクセスします。以下に例を示します。
http://ROUTE_NAME/hello
http://ROUTE_NAME/helloCopy to Clipboard Copied! Toggle word wrap Toggle overflow Verfication: 以下のコマンドを実行して、利用可能な OpenShift Pod のリストを表示し、Pod のビルドステータスを確認します。
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションの実行中の Pod ログにアクセスします。
APP_POD_NAMEは、実行中の Pod ロギングアプリケーションの名前です。oc logs APP_POD_NAME
$ oc logs APP_POD_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 想定される結果: Pod ログは JSON 形式であり、
com.example.logging.HelloWorldEndpointデバッグトレースが含まれます。
11.14. 複数の起動可能な JAR インスタンスの Web セッションデータストレージの有効化 リンクのコピーリンクがクリップボードにコピーされました!
web クラスター化アプリケーションを起動可能な JAR としてビルドおよびパッケージ化できます。
前提条件
-
9.minor.micro.Final-redhat-XXXXXなどの最新の Maven プラグインを確認した。この場合の 9 はメジャーバージョン、minor はマイナーバージョン、micro はマイクロバージョン、X は Red Hat ビルド番号です。たとえば9.0.1.Final-redhat-00009です。 Maven プロジェクトを作成し、web-clustering アプリケーションを作成するための依存関係を追加した。起動可能な JAR Maven プロジェクトの作成 を参照してください。
重要Maven プロジェクトを設定する場合は、Maven archetype 設定で値を指定する必要があります。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この手順の例では、以下のプロパティーを指定します。
-
Maven プラグインバージョンの場合は、
${bootable.jar.maven.plugin.version}です。
これらのプロパティーをプロジェクトで設定する必要があります。以下に例を示します。
<properties> <bootable.jar.maven.plugin.version>9.0.1.Final-redhat-00009</bootable.jar.maven.plugin.version> </properties><properties> <bootable.jar.maven.plugin.version>9.0.1.Final-redhat-00009</bootable.jar.maven.plugin.version> </properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Maven プラグインバージョンの場合は、
手順
以下の内容を
pom.xmlファイルの<build>要素に追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この例では、
web-clusteringGalleon レイヤーを使用して Web セッション共有を有効にします。以下の設定を含む
src/main/webapp/WEB-INFディレクトリーにweb.xmlファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <distributable/>タグは、このサーブレットを複数のサーバーに分散できることを示します。java ファイルを保存するディレクトリーを作成します。
mkdir -p APPLICATION_ROOT /src/main/java/com/example/webclustering/
$ mkdir -p APPLICATION_ROOT /src/main/java/com/example/webclustering/Copy to Clipboard Copied! Toggle word wrap Toggle overflow APPLICATION_ROOTは、アプリケーションのpom.xml設定ファイルが含まれるディレクトリーです。以下の内容で Java ファイル
MyServlet.javaを作成し、ファイルをAPPLICATION_ROOT/src/main/java/com/example/webclustering/ディレクトリーに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow MyServlet.javaの内容は、クライアントが HTTP リクエストを送信するエンドポイントを定義します。以下の内容で Java ファイル
User.javaを作成し、ファイルをAPPLICATION_ROOT/src/main/java/com/example/webclustering/ディレクトリーに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションをパッケージ化します。
mvn package
$ mvn packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: JBoss EAP ベアメタルプラットフォームでアプリケーションを実行するには、JBoss EAP ベアメタルプラットフォームでの起動可能な JAR の使用 にある手順に従いますが、以下の違いがあります。
JBoss EAP ベアメタルプラットフォームでは、以下の例のように、
java -jarコマンドを使用して複数の起動可能な JAR インスタンスを実行できます。java -jar target/web-clustering-bootable.jar -Djboss.node.name=node1 java -jar target/web-clustering-bootable.jar -Djboss.node.name=node2 -Djboss.socket.binding.port-offset=10
$ java -jar target/web-clustering-bootable.jar -Djboss.node.name=node1 $ java -jar target/web-clustering-bootable.jar -Djboss.node.name=node2 -Djboss.socket.binding.port-offset=10Copy to Clipboard Copied! Toggle word wrap Toggle overflow 検証: ノード 1 インスタンス (http://127.0.0.1:8080/clustering) でアプリケーションにアクセスできます。ユーザーセッション ID とユーザー相関時間を書き留めます。
このインスタンスを強制終了した後に、ノード 2 インスタンス (http://127.0.0.1:8090/clustering) にアクセスできます。ユーザーは、セッション ID とノード 1 インスタンスのユーザー作成時間と一致する必要があります。
オプション: JBoss EAP OpenShift プラットフォームでアプリケーションを実行するには、JBoss EAP OpenShift プラットフォームでの起動可能な JAR の使用 にある手順に従いますが、以下の手順を完了させてください。
<cloud/>要素をプラグイン設定に追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションをリビルドします。
mvn clean package
$ mvn clean packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
oc loginコマンドを使用して、OpenShift インスタンスにログインします。 OpenShift で新しいプロジェクトを作成します。以下に例を示します。
oc new-project bootable-jar-project
$ oc new-project bootable-jar-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow JBoss EAP OpenShift プラットフォームで web-clustering アプリケーションを実行するには、Pod が実行されているサービスアカウントに承認アクセスが付与される必要があります。サービスアカウントは Kubernetes REST API にアクセスできます。以下の例は、サービスアカウントに付与されている認可アクセスを示しています。
oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default
$ oc policy add-role-to-user view system:serviceaccount:$(oc project -q):defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
ocコマンドを入力してアプリケーションイメージを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションをデプロイします。
oc new-app web-clustering -e KUBERNETES_NAMESPACE=$(oc project -q) oc expose svc/web-clustering
$ oc new-app web-clustering -e KUBERNETES_NAMESPACE=$(oc project -q) $ oc expose svc/web-clusteringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要現在の OpenShift namespace の他の Pod を表示するには
KUBERNETES_NAMESPACE環境変数を使用する必要があります。使用しない場合、サーバーはdefault名前空間から Pod の取得を試行します。ルートの URL を取得します。
oc get route web-clustering --template='{{ .spec.host }}'$ oc get route web-clustering --template='{{ .spec.host }}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 直前のコマンドから返された URL を使用して、Web ブラウザーでアプリケーションにアクセスします。以下に例を示します。
http://ROUTE_NAME/clustering
http://ROUTE_NAME/clusteringCopy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーセッション ID およびユーザー作成時間を書き留めます。
アプリケーションを 2 つの Pod にスケーリングします。
oc scale --replicas=2 deployments web-clustering
$ oc scale --replicas=2 deployments web-clusteringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、利用可能な OpenShift Pod のリストを表示し、Pod のビルドステータスを確認します。
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
oc delete pod web-clustering-POD_NAMEコマンドを使用して最も古い Pod を強制終了します。POD_NAME は最も古い Pod の名前です。 アプリケーションを再度アクセスします。
http://ROUTE_NAME/clustering
http://ROUTE_NAME/clusteringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 想定される結果: 新規 Pod で生成されるセッション ID および作成時間は、終了した Pod のものに一致します。これは、Web セッションデータストレージが有効になっていることを示します。
11.15. CLI スクリプトを使用した起動可能な JAR の HTTP 認証の有効化 リンクのコピーリンクがクリップボードにコピーされました!
CLI スクリプトを使用して、起動可能な JAR の HTTP 認証を有効にできます。このスクリプトは、セキュリティーレルムとセキュリティードメインをサーバーに追加します。
前提条件
-
9.minor.micro.Final-redhat-XXXXXなどの最新の Maven プラグインを確認した。この場合の 9 はメジャーバージョン、minor はマイナーバージョン、micro はマイクロバージョン、X は Red Hat ビルド番号です。たとえば9.0.1.Final-redhat-00009です。 Maven プロジェクトを作成し、HTTP 認証を必要とするアプリケーションを作成するための依存関係を追加した。起動可能な JAR Maven プロジェクトの作成 を参照してください。
重要Maven プロジェクトを設定する場合は、Maven archetype 設定で HTTP 認証値を指定する必要があります。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この手順の例では、以下のプロパティーを指定します。
-
Maven プラグインバージョンの場合は、
${bootable.jar.maven.plugin.version}です。
これらのプロパティーをプロジェクトで設定する必要があります。以下に例を示します。
<properties> <bootable.jar.maven.plugin.version>9.0.1.Final-redhat-00009</bootable.jar.maven.plugin.version> </properties><properties> <bootable.jar.maven.plugin.version>9.0.1.Final-redhat-00009</bootable.jar.maven.plugin.version> </properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Maven プラグインバージョンの場合は、
手順
以下の内容を
pom.xmlファイルの<build>要素に追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例には、
elytronサブシステムが含まれるdatasources-web-serverGalleon レイヤーが含まれていました。src/main/webapp/WEB-INFディレクトリーのweb.xmlファイルを更新します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow java ファイルを保存するディレクトリーを作成します。
mkdir -p APPLICATION_ROOT/src/main/java/com/example/authentication/
$ mkdir -p APPLICATION_ROOT/src/main/java/com/example/authentication/Copy to Clipboard Copied! Toggle word wrap Toggle overflow APPLICATION_ROOTは Maven プロジェクトのルートディレクトリーです。以下の内容で Java ファイル
TestServlet.javaを作成し、ファイルをAPPLICATION_ROOT/src/main/java/com/example/authentication/ディレクトリーに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow authentication.cliなどの CLI スクリプトを作成し、これをAPPLICATION_ROOT/scriptsディレクトリーなどの起動可能な JAR のアクセス可能なディレクトリーに保存します。スクリプトには以下のコマンドが含まれている必要があります。/subsystem=elytron/properties-realm=bootable-realm:add(users-properties={relative-to=jboss.server.config.dir, path=bootable-users.properties, plain-text=true}, groups-properties={relative-to=jboss.server.config.dir, path=bootable-groups.properties}) /subsystem=elytron/security-domain=BootableDomain:add(default-realm=bootable-realm, permission-mapper=default-permission-mapper, realms=[{realm=bootable-realm, role-decoder=groups-to-roles}]) /subsystem=undertow/application-security-domain=other:write-attribute(name=security-domain, value=BootableDomain)/subsystem=elytron/properties-realm=bootable-realm:add(users-properties={relative-to=jboss.server.config.dir, path=bootable-users.properties, plain-text=true}, groups-properties={relative-to=jboss.server.config.dir, path=bootable-groups.properties}) /subsystem=elytron/security-domain=BootableDomain:add(default-realm=bootable-realm, permission-mapper=default-permission-mapper, realms=[{realm=bootable-realm, role-decoder=groups-to-roles}]) /subsystem=undertow/application-security-domain=other:write-attribute(name=security-domain, value=BootableDomain)Copy to Clipboard Copied! Toggle word wrap Toggle overflow プラグイン
<configuration>要素に以下の設定抽出を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例は、サーバーに定義されたセキュリティードメインにデフォルトの
undertowセキュリティードメインを設定するauthentication.cliCLI スクリプトを示しています。注記パッケージ化時にではなく、実行時に CLI スクリプトを実行するオプションがあります。これを行うには、この手順をスキップして手順 10 に進みます。
Maven プロジェクトのルートディレクトリーで、JBoss EAP JAR Maven プラグインが起動可能な JAR に追加するプロパティーファイルを保存するディレクトリーを作成します。
mkdir -p APPLICATION_ROOT/extra-content/standalone/configuration/
$ mkdir -p APPLICATION_ROOT/extra-content/standalone/configuration/Copy to Clipboard Copied! Toggle word wrap Toggle overflow APPLICATION_ROOTは、アプリケーションのpom.xml設定ファイルが含まれるディレクトリーです。このディレクトリーには、
bootable-users.propertiesおよびbootable-groups.propertiesなどのファイルを保存します。bootable-users.propertiesファイルには以下の内容が含まれます。testuser=bootable_password
testuser=bootable_passwordCopy to Clipboard Copied! Toggle word wrap Toggle overflow bootable-groups.propertiesファイルには以下の内容が含まれます。testuser=Users
testuser=UsersCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
extra-content-content-dirs要素を既存の<configuration>要素に追加します。<extra-server-content-dirs> <extra-content>extra-content</extra-content> </extra-server-content-dirs><extra-server-content-dirs> <extra-content>extra-content</extra-content> </extra-server-content-dirs>Copy to Clipboard Copied! Toggle word wrap Toggle overflow extra-contentディレクトリーには、プロパティーファイルが含まれます。アプリケーションを起動可能な JAR としてパッケージ化します。
mvn package
$ mvn packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションを起動します。
mvn wildfly-jar:run
mvn wildfly-jar:runCopy to Clipboard Copied! Toggle word wrap Toggle overflow 手順 6 をスキップし、ビルド中に CLI スクリプトを実行しないことを選択した場合は、次のコマンドを使用してアプリケーションを起動します。
mvn wildfly-jar:run -Dwildfly.bootable.arguments=--cli-script=scripts/authentication.cli
mvn wildfly-jar:run -Dwildfly.bootable.arguments=--cli-script=scripts/authentication.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow サーブレットを呼び出しますが、認証情報は指定しないでください。
curl -v http://localhost:8080/hello
curl -v http://localhost:8080/helloCopy to Clipboard Copied! Toggle word wrap Toggle overflow 想定される出力:
HTTP/1.1 401 Unauthorized ... WWW-Authenticate: Basic realm="Example Realm"
HTTP/1.1 401 Unauthorized ... WWW-Authenticate: Basic realm="Example Realm"Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーを呼び出して認証情報を指定します。以下に例を示します。
curl -v -u testuser:bootable_password http://localhost:8080/hello
$ curl -v -u testuser:bootable_password http://localhost:8080/helloCopy to Clipboard Copied! Toggle word wrap Toggle overflow 起動可能な JAR に対して HTTP 認証が有効になっていることを示す HTTP 200 ステータスが返されます。以下に例を示します。
HTTP/1.1 200 OK .... Hello testuser
HTTP/1.1 200 OK .... Hello testuserCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第12章 Helm チャートの使用例 リンクのコピーリンクがクリップボードにコピーされました!
Helm は、OpenShift 上で JBoss EAP XP 5.0 アプリケーションをビルド、デプロイ、保守できるようにするオープンソースのパッケージマネージャーです。
JBoss EAP XP 5.0 で Helm チャートを使用すると、以下が可能になります。
- OpenShift Source-to-Image (S2I) を使用して、Git リポジトリーでホストされている Maven プロジェクトからアプリケーションをビルドする。
- OpenShift クラスター (TLS 設定、アプリケーションを公開するためのパブリックルートなど) を使用して、緊密に統合された OpenShift にアプリケーションイメージをデプロイする。
- Helm チャートを使用してアプリケーションイメージをビルドし、JBoss EAP XP Operator を使用してイメージをデプロイする。
- その他の方法を使用して JBoss EAP XP のアプリケーションイメージをビルドし、Helm チャートを使用する。
- JBoss EAP XP 5.0 を使用して Java アプリケーションをビルドし、起動可能な Jar または Jakarta デプロイメントを作成できます (JBoss EAP 8.0 と同様)。
-
Java アプリケーションが起動可能な Jar である場合、JBoss EAP XP 5.0 の Helm チャートを (デフォルトの
build.modeをbootable-jarに設定して) 使用してアプリケーションイメージをビルドできます。 -
Java アプリケーションが Jakarta デプロイメントの場合、Helm チャートの
build.modeをs2iに設定することで、Source-to-Image (JBoss EAP 8.0 と同様) を使用してアプリケーションイメージをビルドできます。
12.1. Helm チャートを使用した JBoss EAP アプリケーションのビルドとデプロイ リンクのコピーリンクがクリップボードにコピーされました!
ビルドとデプロイの値を設定することで、Helm チャートを使用して JBoss EAP XP アプリケーションをビルドできます。ビルド設定には、アプリケーションコードをホストする Git リポジトリーへの URL を指定する必要があります。出力は、ビルドされたアプリケーションイメージを含む ImageStreamTag リソースです。アプリケーションをデプロイするには、ビルドされたアプリケーションイメージを含む ImageStreamTag リソースを指定する必要があります。出力は、デプロイされたアプリケーションと、OpenShift 内外からアプリケーションにアクセスするために使用できるその他の関連リソースです。
前提条件
- OpenShift 開発コンソールにアクセスできる。
- JBoss EAP XP アプリケーションのソースコードは Git リポジトリーにホストされている。
- アプリケーションは Maven プロジェクトである。
-
org.jboss.eap.plugins:eap-maven-pluginを使用して JBoss EAP XP 5.0 サーバーをプロビジョニングするようにアプリケーションを設定した。
- この手順では、OpenShift 開発コンソールの使用にのみ焦点を当てています。
- 一部のフォームセクションはデフォルトで折りたたまれています。コンテンツを展開して表示するには、> をクリックします。これらのセクションを更新しなくても続行できます。
手順
OpenShift 開発コンソールにログインします。
- ドロップダウンメニューで、Helm をクリックします。
- 右上隅で create をクリックし、Helm Release をクリックします。
- JBoss EAP XP 5 を選択します。
- create をクリックし、YAML ビュー で設定を選択します。
ソースリポジトリーからアプリケーションイメージをビルドします。
build: uri: <git repository URL of your application> mode: s2i
build: uri: <git repository URL of your application> mode: s2iCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション:
sourceSecretキーを使用してbuildセクションにシークレットを入力します。build: uri: <git repository URL of your application> mode: s2i sourceSecret: <name of secret login to your Git repository>
build: uri: <git repository URL of your application> mode: s2i sourceSecret: <name of secret login to your Git repository>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
- アプリケーションが正常にデプロイされると、OpenShift 開発コンソールの Helm リリースの横にデプロイ済みバッジが表示されます。
12.1.1. JBoss EAP XP で Source-to-Image と Helm チャートを使用する リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションの pom.xml の eap-maven-plugin を使用して、JBoss EAP サーバーをプロビジョニングします。このプラグインが OpenShift プロファイル、デフォルトプロファイル、または他の任意のアクティブなプロファイルで設定され、OpenShift プロファイルが他のすべてよりも優先されることを確認します。
build.mode を S2I に設定する必要があります。これは、JBoss EAP XP Helm チャートのデフォルト値が bootable-jar であるためです。
build.s2i.featurePacks、build.s2i.galleonLayers、および build.s2i.channels フィールドは非推奨になりました。
12.1.2. JBoss EAP XP で起動可能な JAR と Helm チャートを使用する リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP XP 5.0 では、アプリケーションを起動可能な JAR としてビルドできます。その方法の詳細は、起動可能な JAR を参照してください。
さらに、JBoss EAP XP 5.0 では、JBoss EAP XP 5.0 用の Helms Chart を設定して、起動可能な JAR に基づきアプリケーションをビルドできます。
前提条件
- OpenShift 開発コンソールにログインしている。
- JBoss EAP XP アプリケーションのソースコードは Git リポジトリーにホストされている。
-
アプリケーションは Maven プロジェクトである。Maven プラグイン
org.wildfly.plugins:wildfly-jar-maven-pluginを使用して起動可能な JAR を作成するようにアプリケーションを設定した。詳細は、起動可能な JAR Maven プロジェクトの作成 を参照してください。
12.1.2.1. Bootable JAR を使用してアプリケーションイメージをビルドする リンクのコピーリンクがクリップボードにコピーされました!
OpenShift 開発コンソールのビルドセクションを設定することで、Helms チャートを使用して Bootable で JBoss EAP XP アプリケーションイメージをビルドできます。
-
Helm チャートを使用してアプリケーションをビルドする場合は、Git リポジトリーを参照する Git URL を
build.urlフィールドに指定する必要があります。 -
build.modeフィールドをbootable-jarに設定する必要があります。
12.2. JBoss EAP XP の Helm チャートにおける永続データストレージ用の OpenShift ボリューム リンクのコピーリンクがクリップボードにコピーされました!
OpenShift ボリュームを使用すると、コンテナーで、クラウドストレージ、ネットワークファイルシステム (NFS)、ホストマシンなどのさまざまなソースからのデータを保存および共有できます。OpenShift のパッケージマネージャーである Helm チャートを使用すると、一貫性のある再現可能な方法でアプリケーションをデプロイできます。Helm チャートにボリュームマウントを追加すると、デプロイメント間でアプリケーションがデータを維持できるようになります。
12.2.1. JBoss EAP XP で Helm チャートを使用してボリュームをマウントする リンクのコピーリンクがクリップボードにコピーされました!
この手順では、JBoss EAP XP で Helm チャートを使用してシークレットをボリュームとしてマウントする方法を説明します。さらに、これを使用して ConfigMap をマウントすることもできます。この手順を実行すると、アプリケーションがデータにアクセスして使用できるようになり、不正なアクセスや改ざんからデータを保護できます。たとえば、シークレットをボリュームとしてマウントすると、シークレットに保存した機密データが、シークレットがマウントされているデプロイメントを実行している POD にファイルとして表示されます。
前提条件
- OpenShift 開発コンソールにアクセスできる。
-
secretを作成している。たとえば、keystore.jksなどのファイルを参照するeap-app-secretという名前のシークレットを作成します。 -
コンテナーのファイルシステム内でシークレットをマウントする場所を特定している。たとえば、ディレクトリー
/etc/jgroups-encrypt-secre-secret-volumeは、keystore.jksなどのシークレットファイルがマウントされる場所です。 - Git リポジトリーでホストされている JBoss EAP XP アプリケーションのソースコード。
- アプリケーションは Maven プロジェクトである。
-
org.jboss.eap.plugins:eap-maven-pluginを使用して JBoss EAP XP 5.0 サーバーをプロビジョニングするようにアプリケーションを設定した。
手順
OpenShift 開発コンソールにログインします。
- ドロップダウンメニューで、Helm をクリックします。
- 右上隅で create をクリックし、Helm Release をクリックします。
- JBoss EAP XP 5 を選択します。
- create をクリックし、YAML ビュー で設定を選択します。
deploy.volumesフィールドにボリュームを指定して YAML ファイルを編集し、使用するシークレットを設定します。ボリュームの名前とシークレットの secretName を指定する必要があります。volumes: - name: eap-jgroups-keystore-volume secret: secretName: eap-app-secretvolumes: - name: eap-jgroups-keystore-volume secret: secretName: eap-app-secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメント設定の
deploy.volumeMountsを使用して、ファイルシステムにボリュームをマウントします。volumeMounts: - name: eap-jgroups-keystore-volume mountPath: /etc/jgroups-encrypt-secret-volume readOnly: truevolumeMounts: - name: eap-jgroups-keystore-volume mountPath: /etc/jgroups-encrypt-secret-volume readOnly: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pod が起動すると、コンテナーが keystore.jks ファイルを
/etc/jgroups-encrypt-secret-volume/keystore.jksにマウントします。
第13章 JBoss EAP での可観測性 リンクのコピーリンクがクリップボードにコピーされました!
開発者またはシステム管理者の場合、可観測性 は、アプリケーションからの特定の信号に基づいて、アプリケーションの問題の場所と原因を特定するために使用できる一連のプラクティスとテクノロジーです。最も一般的なシグナルは、メトリック、イベント、およびトレースです。JBoss EAP は、可観測性 のために OpenTelemetry を使用します。
13.1. JBoss EAP の OpenTelemetry リンクのコピーリンクがクリップボードにコピーされました!
OpenTelemetry は、アプリケーションのテレメトリーデータを計測、生成、収集、およびエクスポートするために使用できるツール、アプリケーションプログラミングインターフェイス (API)、およびソフトウェア開発キット (SDK) のセットです。テレメトリーデータには、メトリック、ログ、およびトレースが含まれます。アプリケーションのテレメトリーデータを分析すると、アプリケーションのパフォーマンスを向上させるのに役立ちます。JBoss EAP は、opentelemetry サブシステムを通じて OpenTelemetry 機能を提供します。
Red Hat JBoss Enterprise Application Platform 8.0 は、OpenTelemetry トレース機能のみを提供します。
OpenTelemetry はテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲の詳細は、https://access.redhat.com/ja/support/offerings/techpreview を参照してください。
13.2. JBoss EAP での OpenTelemetry 設定 リンクのコピーリンクがクリップボードにコピーされました!
opentelemetry サブシステムを使用して、JBoss EAP で OpenTelemetry のさまざまな側面を設定します。これらには、エクスポーター、スパンプロセッサー、およびサンプラーが含まれます。
- exporter
- トレースを分析して視覚化するには、トレースを OpenTelemetry Collector (OTLP) などのコレクターにエクスポートします。OpenTelemetry プロトコルをサポートする任意のコレクターを使用するように JBoss EAP を設定できます。
- スパンプロセッサー
- スパンプロセッサーは、スパンを生成したとき、またはバッチでエクスポートするように設定できます。エクスポートするトレースの数を設定することもできます。
- sampler
- サンプラーを設定することにより、記録するトレースの数を設定できます。
設定例
次の XML は、デフォルト値を含む完全な OpenTelemetry 設定の例です。変更を加えても JBoss EAP はデフォルト値を保持しないため、設定が異なる場合があります。
OpenShift ルートオブジェクトを使用して OpenTelemetry Collector エンドポイントに接続することはできません。代わりに、http://<ip_address>:<port> または http://<service_name>:<port> を使用してください。
13.3. JBoss EAP での OpenTelemetry トレース リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP は OpenTelemetry トレースを提供し、ユーザーリクエストがアプリケーションのさまざまな部分を通過する際の進行状況を追跡するのに役立ちます。トレースを分析することで、アプリケーションのパフォーマンスを向上させ、可用性の問題をデバッグできます。
OpenTelemetry トレースは、次のコンポーネントで構成されています。
- Trace
- 要求がアプリケーションで実行する操作のコレクション。
- Span
- トレース内の単一の操作。要求、エラー、および期間 (RED) メトリックを提供し、スパンコンテキストを含みます。
- スパンコンテキスト
- 含まれているスパンが一部であるリクエストを表す一意の識別子のセット。
JBoss EAP は、Jakarta RESTful Web Services アプリケーションに対する REST 呼び出し、およびコンテナー管理の Jakarta RESTful Web Services クライアント呼び出しを自動的にトレースします。JBoss EAP は、REST 呼び出しを次のように暗黙的にトレースします。
受信要求ごとに:
- JBoss EAP は、要求からスパンコンテキストを抽出します。
- JBoss EAP は新しいスパンを開始し、要求が完了するとそれを閉じます。
送信要求ごとに:
- JBoss EAP は、スパンコンテキストを要求に挿入します。
- JBoss EAP は新しいスパンを開始し、要求が完了するとそれを閉じます。
暗黙的なトレースに加えて、詳細なトレースのために Tracer インスタンスをアプリケーションに挿入することにより、カスタムスパンを作成できます。
13.4. JBoss EAP で OpenTelemetry トレースを有効にする リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP で OpenTelemetry トレースを使用するには、最初に opentelemetry サブシステムを有効にする必要があります。
前提条件
- JBoss EAP 8.0 と JBoss EAP XP 5.0 がインストールされている。
手順
管理 CLI を使用して OpenTelemetry エクステンションを追加します。
/extension=org.wildfly.extension.opentelemetry:add
/extension=org.wildfly.extension.opentelemetry:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 管理 CLI を使用して
opentelemetryサブシステムを有効にします。/subsystem=opentelemetry:add
/subsystem=opentelemetry:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow Reload JBoss EAP.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.5. opentelemetry サブシステムの設定 リンクのコピーリンクがクリップボードにコピーされました!
opentelemetry サブシステムを設定して、トレースのさまざまな側面を設定できます。トレースの監視に使用するコレクターに基づいてこれらを設定します。
前提条件
-
opentelemetryサブシステムを有効にしました。詳細は、JBoss EAP で OpenTelemetry トレースを有効にする を参照してください。
手順
トレースのエクスポータータイプを設定します。
構文
/subsystem=opentelemetry:write-attribute(name=exporter-type, value=<exporter_type>)
/subsystem=opentelemetry:write-attribute(name=exporter-type, value=<exporter_type>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=opentelemetry:write-attribute(name=exporter-type, value=otlp)
/subsystem=opentelemetry:write-attribute(name=exporter-type, value=otlp)Copy to Clipboard Copied! Toggle word wrap Toggle overflow トレースをエクスポートするエンドポイントを設定します。
構文
/subsystem=opentelemetry:write-attribute(name=endpoint, value=<URL:port>)
/subsystem=opentelemetry:write-attribute(name=endpoint, value=<URL:port>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=opentelemetry:write-attribute(name=endpoint, value=http://localhost:4317)
/subsystem=opentelemetry:write-attribute(name=endpoint, value=http://localhost:4317)Copy to Clipboard Copied! Toggle word wrap Toggle overflow トレースをエクスポートするサービス名を設定します。
構文
/subsystem=opentelemetry:write-attribute(name=service-name, value=<service_name>)
/subsystem=opentelemetry:write-attribute(name=service-name, value=<service_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=opentelemetry:write-attribute(name=service-name, value=exampleOpenTelemetryService)
/subsystem=opentelemetry:write-attribute(name=service-name, value=exampleOpenTelemetryService)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第14章 参考資料 リンクのコピーリンクがクリップボードにコピーされました!
14.1. MicroProfile Config リファレンス リンクのコピーリンクがクリップボードにコピーされました!
14.1.1. デフォルトの MicroProfile Config 属性 リンクのコピーリンクがクリップボードにコピーされました!
MicroProfile Config 仕様はデフォルトで 3 つの ConfigSource 定義します。
ConfigSources は、通常の番号に従って並べ替えられます。後のデプロイメントのために設定を上書きする必要がある場合、上位の序数の ConfigSource よりも下位の序数の ConfigSource が上書きされます。
ConfigSource | ordinal |
|---|---|
| システムプロパティー |
|
| 環境変数 |
|
|
プロパティーファイル |
|
14.1.2. MicroProfile Config SmallRye ConfigSources リンクのコピーリンクがクリップボードにコピーされました!
microprofile-config-smallrye プロジェクトは、デフォルトの MicroProfile Config ConfigSource に加えて使用できる ConfigSource を定義します。
ConfigSource | ordinal |
|---|---|
|
サブシステムの |
|
|
ディレクトリーからの |
|
|
クラスからの |
|
これらの ConfigSource には明示的な ordinal が指定されていません。MicroProfile Config 仕様にあるデフォルトの ordinal 値は継承されます。
14.2. MicroProfile Fault Tolerance リファレンス リンクのコピーリンクがクリップボードにコピーされました!
14.2.1. MicroProfile Fault Tolerance 設定プロパティー リンクのコピーリンクがクリップボードにコピーされました!
SmallRye Fault Tolerance 仕様では、MicroProfile Fault Tolerance 仕様に定義されたプロパティーに加えて、以下のプロパティーを定義します。
| プロパティー | デフォルト値 | 説明 |
|---|---|---|
|
|
| スレッドプール内のスレッドの最大数。 |
|
|
| スレッドプールが使用するキューのサイズ。 |
14.3. MicroProfile JWT リファレンス リンクのコピーリンクがクリップボードにコピーされました!
14.3.1. MicroProfile Config JWT 標準プロパティー リンクのコピーリンクがクリップボードにコピーされました!
microprofile-jwt-smallrye サブシステムは以下の MicroProfile Config 標準プロパティーをサポートします。
| プロパティー | デフォルト | 説明 |
|---|---|---|
| mp.jwt.verify.publickey | NONE |
サポートされている形式のいずれかを使用してエンコードされた公開鍵の文字列表現。 |
| mp.jwt.verify.publickey.location | NONE |
公開鍵の場所は、相対パスまたは URL です。 |
| mp.jwt.verify.issuer | NONE |
検証している JWT トークンの |
microprofile-config.properties の設定例:
mp.jwt.verify.publickey.location=META-INF/public.pem mp.jwt.verify.issuer=jwt-issuer
mp.jwt.verify.publickey.location=META-INF/public.pem
mp.jwt.verify.issuer=jwt-issuer
14.4. MicroProfile OpenAPI リファレンス リンクのコピーリンクがクリップボードにコピーされました!
14.4.1. MicroProfile OpenAPI 設定プロパティー リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP は、標準の MicroProfile OpenAPI 設定プロパティーに加え、以下の追加の MicroProfile OpenAPI プロパティーをサポートします。これらのプロパティーは、アプリケーションスコープおよびグローバルスコープの両方に適用できます。
| プロパティー | デフォルト値 | 説明 |
|---|---|---|
|
|
| OpenAPI エンドポイントの登録を有効または無効にします。
このプロパティーをパラメーター化することで、実稼働や開発などの異なる環境で このプロパティーを使用すると、指定の仮想ホストに関連付けられたアプリケーションが MicroProfile OpenAPI モデルを生成するかを制御できます。 |
|
|
| このプロパティーを使用して、仮想ホストに関連付けられた複数のアプリケーションの OpenAPI ドキュメントを生成することができます。
同じ仮想ホストに関連付けられた各アプリケーションに、個別の |
|
|
| 自動生成されるサーバーレコードが絶対的なものであるか OpenAPI エンドポイントの場所と相対的であるかを示します。 root 以外のコンテキストパスが存在するところで OpenAPI ドキュメントの利用者が OpenAPI エンドポイントのホストとの関連した REST サービスへの有効な URL を作成できるようにするサーバーレコードが必要です。
値が
|
14.5. MicroProfile Reactive Messaging リファレンス リンクのコピーリンクがクリップボードにコピーされました!
14.5.1. 外部メッセージングシステムと統合するための MicroProfile リアクティブメッセージングコネクター リンクのコピーリンクがクリップボードにコピーされました!
次に、MicroProfile Config 仕様で必要なリアクティブメッセージングプロパティーキー接頭辞のリストを示します。
-
mp.messaging.incoming.[channel-name].[attribute]=[value] -
mp.messaging.outgoing.[channel-name].[attribute]=[value] -
mp.messaging.connector.[connector-name].[attribute]=[value]
channel-name は @Incoming.value() または @Outgoing.value() のいずれかであることに注意してください。明確にするために、コネクターメソッドのペアのこの例を見てみましょう。
この例では、必要なプロパティー接頭辞は次のとおりです。
-
mp.messaging.incoming.from.これは、receive()メソッドを定義します。 -
mp.messaging.outgoing.to.これはsend()メソッドを定義します。
これは一例であることを忘れないでください。異なるコネクターは異なるプロパティーを認識するため、指定する接頭辞は、設定するコネクターによって異なります。
14.5.2. リアクティブメッセージングストリームとユーザー初期化コード間のデータ交換の例 リンクのコピーリンクがクリップボードにコピーされました!
以下は、リアクティブメッセージングストリームと、ユーザーが @Channel および Emitter コンストラクトを介してトリガーしたコードとの間のデータ交換の例です。
インラインの詳細:
この例では、MicroProfile Reactive Messaging が my-stream メモリーストリームをリッスンしているため、Emitter を介して送信されたメッセージは、この挿入されたパブリッシャーで受信されます。ただし、このデータエクスチェンジを成功させるには、次の条件が満たされている必要があることに注意してください。
-
Emitter.send()を呼び出す前に、チャネルにアクティブなサブスクリプションが存在する必要があります。この例では、コンストラクターによって呼び出されるsubscribeAndAllowMultipleSubscriptions()メソッドにより、Bean がユーザーコード呼び出しに使用できるようになるまでにアクティブなサブスクリプションが確実に存在することに注意してください。 -
挿入された
Publisherには、Subscriptionを 1 つだけ持つことができます。受信側のパブリッシャーを REST 呼び出しで公開する場合、poll()メソッドを呼び出すたびに、destパブリッシャーへの新しいサブスクリプションが生成されます。挿入されたデータを各クライアントにブロードキャストするには、独自のパブリッシャーを実装する必要があります。
14.5.3. Apache Kafka ユーザー API リンクのコピーリンクがクリップボードにコピーされました!
Apache Kafka ユーザー API を使用して、Kafka が受信したメッセージに関する詳細情報を取得し、Kafka がメッセージを処理する方法に影響を与えることができます。この API は、io/smallrye/reactive/messaging/kafka/api パッケージに保存されており、次のクラスで構成されています。
IncomingKafkaRecordMetadata.このメタデータには、次の情報が含まれています。-
Messageで表される Kafka レコードkey。 -
Messageに使用される Kafkatopicとpartition、およびそれら内のoffset。 -
MessageのtimestampとtimestampType。 -
Messageheaders。これらは、アプリケーションが生成側で添付し、消費側で受信できる情報です。
-
OutgoingKafkaRecordMetadata.このメタデータを使用して、Kafka がメッセージを処理する方法を指定またはオーバーライドできます。次の情報が含まれています。-
key。Kafka はこれをメッセージキーとして扱います。 -
Kafka に使用させたい
topic。 -
partition。 -
Kafka が生成する
timestampが必要ない場合は、タイムスタンプ。 -
headers.
-
-
KafkaMetadataUtilには、OutgoingKafkaRecordMetadataをMessageに書き込み、IncomingKafkaRecordMetadataをMessageから読み取るためのユーティリティーメソッドが含まれています。
Kafka にマップされていないチャネルに送信された Message に OutgoingKafkaRecordMetadata を書き込む場合、リアクティブメッセージングフレームワークはそれを無視します。逆に、Kafka にマップされていないチャネルからの Message から IncomingKafkaRecordMetadata を読み取ると、そのメッセージは null として返されます。
メッセージ key の書き込みと読み取りの方法の例
microprofile-config.properties ファイルの Kafka マッピングの例
送信チャネルには key.serializer を指定し、受信チャネルには key.deserializer を指定する必要があります。
14.5.4. Kafka コネクターの MicroProfile Config プロパティーファイルの例 リンクのコピーリンクがクリップボードにコピーされました!
これは、Kafka コネクターのシンプルな microprofile-config.properties ファイルの例です。そのプロパティーは、「外部メッセージングシステムと統合するための MicroProfile リアクティブメッセージングコネクター」に示されている例のプロパティーに対応しています。
| エントリー | 説明 |
|---|---|
|
| これらは "チャネル" です。 |
|
| これらは "メソッド" です。
|
|
|
これは、アプリケーションが接続する必要のある Kafka ブローカーの URL を指定します。次のように、チャネルレベルで URL を指定することもできます: |
|
|
これは
SmallRye リアクティブメッセージングは、アプリケーションをビルドするためのフレームワークです。 |
|
|
これは、 Kafka の "トピック" は、メッセージが保存および公開されるカテゴリーまたはフィード名です。すべての Kafka メッセージはトピックに編成されています。プロデューサーアプリケーションはトピックにデータ to を書き込み、コンシューマーアプリケーションは from トピックからデータを読み取ります。 |
|
|
これは、コネクターに |
|
|
これは、 |
|
|
これは、コネクターが |
|
|
これは、 |
このプロパティーのリストはすべてを網羅したものではありません。詳細は、SmallRye Reactive Messaging Apache Kafka のドキュメントを参照してください。
必須の MicroProfile Reactive Messaging 接頭辞
MicroProfile Reactive Messaging 仕様では、Kafka に次のメソッドプロパティーキー接頭辞が必要です。
-
mp.messaging.incoming.[channel-name].[attribute]=[value]` -
mp.messaging.outgoing.[channel-name].[attribute]=[value]` -
mp.messaging.connector.[connector-name].[attribute]=[value]`
channel-name は @Incoming.value() または @Outgoing.value() のいずれかであることに注意してください。
次に、次のメソッドペアの例を考えてみましょう。
このメソッドペアの例では、次の必須のプロパティー接頭辞に注意してください。
-
mp.messaging.incoming.from.この接頭辞は、receive()メソッドの設定としてプロパティーを選択します。 -
mp.messaging.outgoing.to.この接頭辞は、send()メソッドの設定としてプロパティーを選択します。
14.5.4.1. 安全な MicroProfile Reactive Messaging Apache Kafka コネクターの設定 リンクのコピーリンクがクリップボードにコピーされました!
自己署名証明書を使用して Apache Kafka コネクタークライアントを設定するには、microprofile-config.properties ファイルで client-ssl-context を定義します。これはコネクターレベルとチャネルレベルで実行できます。
次の例は、SSL/TLS で保護された Apache Kafka コネクターを設定する方法を示しています。
コネクターレベルの client-ssl-context 定義の例
mp.messaging.incoming.from.security.protocol=SSL mp.messaging.outgoing.to.security.protocol=SSL mp.messaging.connector.smallrye-kafka.wildfly.elytron.ssl.context=exampleSSLContext
mp.messaging.incoming.from.security.protocol=SSL
mp.messaging.outgoing.to.security.protocol=SSL
mp.messaging.connector.smallrye-kafka.wildfly.elytron.ssl.context=exampleSSLContext
mp.messaging.connector.smallrye-kafka.wildfly.elytron.ssl.context 属性は、自己署名証明書を使用する場合にのみ必要です。
実稼働環境では自己署名証明書を使用しないでください。認証局 (CA) が署名した証明書のみ使用してください。
チャネルの client-ssl-context は次のように指定できます。
チャネルレベルの client-ssl-context 定義の例
mp.messaging.incoming.from.wildfly.elytron.ssl.context=exampleSSLContext
mp.messaging.incoming.from.wildfly.elytron.ssl.context=exampleSSLContext
この例では、exampleSSLContext は、受信チャネル from にのみ関連付けられています。
| エントリー | 説明 |
|---|---|
|
| これは、ブローカーに接続するときにセキュアな受信チャネル接続を使用することを指定します。 |
|
| これは、ブローカーに接続するときにセキュアな送信チャネル接続を使用することを指定します。 |
|
| Kafka ブローカーが認証局 (CA) 署名付き証明書でセキュリティーが保護されている場合は、この属性を指定する必要はありません。 |
自己署名証明書を使用する場合は、管理モデルの /subsystem=elytron/client-ssl-context=* の下の Elytron サブシステムで定義されている SSLContext を指定します。
実稼働環境では自己署名証明書を使用しないでください。認証局 (CA) が署名した証明書のみ使用してください。
次の管理 CLI コマンドを使用して client-ssl-context を定義できます。
例
/subsystem=elytron/client-ssl-context=exampleSSLContext:add(key-manager=exampleServerKeyManager,trust-manager=exampleTLSTrustManager)
/subsystem=elytron/client-ssl-context=exampleSSLContext:add(key-manager=exampleServerKeyManager,trust-manager=exampleTLSTrustManager)
SCRAM-SHA-512 認証で SSL/TLS 接続を使用すると、SSL/TLS プロトコルは暗号化を提供しますが、認証には使用されません。SCRAM-SHA-512 プロトコルで接続を確立するには、Configure MicroProfile Reactive Messagaging Kafka connector to use SASL_PLAINTEXT and SASL_SSL authentication protocol を参照してください。
14.5.4.2. SASL_PLAINTEXT および SASL_SSL 認証プロトコルを使用するための MicroProfile Reactive Messagaging Kafka コネクターの設定 リンクのコピーリンクがクリップボードにコピーされました!
Apache Kafka は Simple Authentication and Security Layer (SASL)プロトコルを使用して、Apache Kafka リスナー に接続されているクライアントを認証します。暗号化されていない プレーン タイプと暗号化された tls タイプ通信を使用するように リスナー を設定できます。Streams for Apache Kafka は、Salted Challenged Response Authentication Mechanism (SCRAM)プロトコル(SASL SCRAM-SHA-512)と組み合わせて SASL を使用して認証を提供します。Kafka カスタムリソースと KafkaUser カスタムリソース YAML ファイルを定義して、両方のタイプの リスナー の認証を設定する必要があります。
SASL がサーバー上で設定されている場合、Kafka リスナー が SCRAM-SHA-512 認証を使用するように設定されている場合、クライアントはセキュリティープロトコルを指定する必要があります。TLS で暗号化された リスナー に接続する場合、このプロトコルは SASL_SSL である必要があります。リスナー が暗号化されていない場合、プロトコルは SASL_PLAINTEXT である必要があります。クライアント設定では、SCRAM-SHA-512 を使用するように SASL メカニズムを指定する必要があります。
SCRAM-SHA-512 認証が SSL/TLS 接続で使用されると、SSL/TLS プロトコルは暗号化を提供しますが、認証には使用されません。SSL/TLS を使用して接続をセキュリティー保護するには、セキュアな MicroProfile Reactive Messaging Apache Kafka コネクターの設定 を参照してください。
プレーン タイプの暗号化されていない通信および SASL SCRAM-SHA-512 認証を使用する リスナー にクライアント認証を設定します。
前提条件
Streams for Apache Kafka クラスター Operator がインストールされている。
注記クラスター Operator はデフォルトで
Secretリソースを生成します。クライアント設定のusernameおよびpasswordは、Secretリソースで定義されるユーザー名とパスワードと一致する必要があります。カスタム
シークレットリソースの作成の詳細については、カスタム パスワード設定 を参照 してください。Operator によって生成された
Secretリソースの詳細は、Operator によって 生成された Secret を参照して ください。
手順
Kafka カスタムリソースを YAML ファイルとして定義します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KafkaUser カスタムリソースを YAML ファイルとして定義します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KafkaUser
定義は.authenticationリスナー.authentication 定義と一致する必要があります。microprofile-config.propertiesファイルでクライアントを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ユーザー名とパスワードは、クラスターオペレーターによって生成されたSecretリソースのユーザー名とパスワードと一致する必要があります。
14.5.5. AMQP コネクターの MicroProfile Config プロパティーファイルの例 リンクのコピーリンクがクリップボードにコピーされました!
これは、Advanced Message Queuing Protocol (AMQP) コネクター用の単純な microprofile-config.properties ファイルの例です。そのプロパティーは、外部メッセージングシステムと統合するための MicroProfile リアクティブメッセージングコネクター に示された例のプロパティーに対応しています。
| エントリー | 説明 |
|---|---|
|
| これらは "チャネル" です。 |
|
| これらは "メソッド" です。
|
|
|
これは、アプリケーションが接続する必要のある AMQP ブローカーの URL を指定します。 |
|
| これは、AMQP ブローカーのポートを指定します。 |
|
| これは、チャネルが AMQP にメッセージを送信することを示します。
SmallRye リアクティブメッセージングは、アプリケーションをビルドするためのフレームワークです。 |
|
|
これは、アドレス |
|
|
これは、AMQP ブローカーからメッセージを受信するために |
|
|
これは、 |
SmallRye Reactive Messaging の AMQP コネクターでサポートされているプロパティーの完全なリストは、SmallRye Reactive Messaging AMQP コネクター設定リファレンス を参照してください。
安全な AMQP ブローカーへの接続
SSL/TLS および Simple Authentication and Security Layer (SASL) で保護された AMQ ブローカーに接続するには、microprofile-config.properties ファイルで、接続に使用する client-ssl-context を定義します。これはコネクターレベルでもチャネルレベルでも実行できます。
コネクターレベルの client-ssl-context 定義の例
amqp-use-ssl=true mp.messaging.connector.smallrye-amqp.wildfly.elytron.ssl.context=exampleSSLContext
amqp-use-ssl=true
mp.messaging.connector.smallrye-amqp.wildfly.elytron.ssl.context=exampleSSLContext
mp.messaging.connector.smallrye-amqp.wildfly.elytron.ssl.context 属性は、自己署名証明書を使用する場合にのみ必要です。
実稼働環境では自己署名証明書を使用しないでください。認証局 (CA) によって署名された証明書のみ使用してください。
次のようにして、チャネルの client-ssl-context を指定することもできます。
チャネルレベルの client-ssl-context 定義の例
mp.messaging.incoming.from.wildfly.elytron.ssl.context=exampleSSLContext
mp.messaging.incoming.from.wildfly.elytron.ssl.context=exampleSSLContext
この例では、exampleSSLContext は、受信チャネル from にのみ関連付けられています。
| エントリー | 説明 |
|---|---|
|
| これは、ブローカーに接続するときに安全な接続を使用することを指定します。 |
|
| AMQ ブローカーが証明機関 (CA) の署名付き証明書で保護されている場合は、この属性を指定する必要はありません。
自己署名証明書を使用する場合は、管理モデルの 重要 実稼働環境では自己署名証明書を使用しないでください。認証局 (CA) によって署名された証明書のみ使用してください。
次の管理 CLI コマンドを使用して
/subsystem=elytron/client-ssl-context=exampleSSLContext:add(key-manager=exampleServerKeyManager,trust-manager=exampleTLSTrustManager)
詳細は、JBoss EAP での SSL/TLS の設定 ガイドの クライアント証明書の信頼ストアと信頼マネージャーの設定 および 双方向 SSL/TLS 用のサーバー証明書の設定 を参照してください。 |
14.6. OpenTelemetry リファレンス リンクのコピーリンクがクリップボードにコピーされました!
14.6.1. OpenTelemetry サブシステムの属性 リンクのコピーリンクがクリップボードにコピーされました!
opentelemetry サブシステムの属性を変更して、その動作を設定できます。属性は、設定するアスペクト (exporter、sampler、span processor) ごとにグループ化されています。
| 属性 | 説明 | デフォルト値 |
|---|---|---|
|
| OpenTelemetry がトレースをプッシュする URL。これをエクスポーターがリッスンする URL に設定します。 | |
|
| トレースの送信先のエクスポーター。次のいずれかです。
|
|
| 属性 | 説明 | デフォルト値 |
|---|---|---|
|
|
トレースとエクスポートの比率。値は |
|
| 属性 | 説明 | デフォルト値 |
|---|---|---|
|
|
JBoss EAP による 2 つの連続したエクスポート間のミリ秒単位の間隔。この属性は、属性 |
|
|
| キャンセルされる前にエクスポートが完了するまでの最大時間 (ミリ秒単位)。 |
|
|
|
各バッチで公開されるトレースの最大数。この数は、 |
|
|
|
エクスポートする前にキューに入れるトレースの最大数。アプリケーションがさらにトレースを作成する場合、それらは記録されません。この属性は、属性 |
|
|
| 使用する span processor のタイプ。値は次のいずれかになります。
|
|