21. マイクロサービスアプリケーション

マイクロサービスアプリケーションに関する設定について説明します。

21.1. MicroProfile Config

MicroProfile Configに関する設定について説明します。

21.2. MicroProfile Fault Tolerance

MicroProfile Fault Toleranceに関する設定について説明します。

21.2.1. MicroProfile Fault Tolerance 設定項目一覧

各項目は、MicroProfile Config を利用して設定します。設定方法や、設定値の優先順位等、詳細は、[ アプリケーション開発 > その他のアプリケーション > マイクロサービスアプリケーションの開発 > MicroProfile Config ] を参照してください。

MicroProfile Fault Tolerance 設定項目一覧
設定名 説明 既定値
mpft.nonFallbackEnabled Fallback、Asynchronous以外のアノテーション使用可否設定です。 true(使用する)
mpft.syncCircuitBreaker Circuit Breakerの使用可否設定です。 true(使用する)
mpft.metricsEnabled MicroProfile Metricsを利用したメトリクス情報の取得可否設定です。
MicroProfile Metricsについては、[ アプリケーション開発 > その他のアプリケーション > マイクロサービスアプリケーションの開発 > MicroProfile Metrics ] を参照してください。
true(使用する)

21.3. MicroProfile Health Check

MicroProfile Health Checkに関する設定について説明します。

21.4. MicroProfile JWT Authentication

MicroProfile JWT Authenticationに関する設定について説明します。

21.4.1. MicroProfile JWT Authentication 設定項目一覧

各項目は、MicroProfile Config を利用して設定します。設定方法や、設定値の優先順位等、詳細は、[ アプリケーション開発 > その他のアプリケーション > マイクロサービスアプリケーションの開発 > MicroProfile Config ] を参照してください。

MicroProfile JWT Authentication 設定項目一覧
設定名 説明 既定値
mp.jwt.verify.publickey (mpjwt.publicKeyPemEnc) JWT の暗号化と復号化で利用する、認証サーバの公開鍵情報(鍵生成ツールで作成した公開鍵(文字列))を指定します。
mpjwt.publicKeyPemEnc は、旧バージョンでのプロパティ名で、本バージョンにおいても利用可能です。 なお、mp.jwt.verify.publickey と mpjwt.publicKeyPemEnc の両方の指定があり、mpjwt.publicKeyPemEnc に空文字以外の有効な値が指定されていた場合は、mpjwt.publicKeyPemEnc の値が優先されます。 本項目、および、mp.jwt.verify.publickey.location が指定されていない場合は、アプリケーション内の、 /META-INF/MP-JWT-SIGNER ファイルを読み込みます。
'mp.jwt' で始まる設定名は、Eclipse MicroProfile 仕様です。
'mpjwt'で始まる設定名は、WebOTX固有の設定名です。
無し
mp.jwt.verify.issuer (mpjwt.issuedBy) セキュリティ発行者情報を指定します。 mpjwt.issuedBy は、旧バージョンでのプロパティ名で、本バージョンにおいても利用可能です。 なお、mp.jwt.verify.issuer と、mpjwt.issuedBy の両方の指定があり、mpjwt.issuedBy に空文字以外の有効な値が指定されていた場合は、mpjwt.issuedBy の値が優先されます。 本項目の指定が無い場合は、アプリケーション内の、/META-INF/MP-JWT-ISSUER ファイルを読み込みます。
'mp.jwt' で始まる設定名は、Eclipse MicroProfile 仕様です。
'mpjwt'で始まる設定名は、WebOTX固有の設定名です。
無し
mp.jwt.verify.publickey.location 公開鍵情報の位置を指定します。相対パス、file://、http://、その他のスキームが利用可能です。 本項目、および、mp.jwt.verify.publickey (mpjwt.publicKeyPemEnc) が指定されていない場合は、 アプリケーション内の、/META-INF/MP-JWT-SIGNER ファイルを読み込みます。 無し
mp.jwt.verify.requireiss JWT トークンで、iss クレームが必須かどうかを指定します。
true : iss クレーム必須
false : iss クレーム省略可能
true
smallrye.jwt.token.header JWT トークンが設定されている HTTP ヘッダ名を指定します。 Authorization
smallrye.jwt.token.cookie JWT トークンを含む Cookie 名を指定します。 この項目を有効にするには、mpjwt.token.header に、'Cookie' を指定しておく必要があります。 無し
smallrye.jwt.always-check-authorization mpjwt.token.header に 'Cookie' が指定されており、mpjwt.token.cookie に指定した名前の Cookie が存在しない場合に、 Authorization ヘッダをチェックするかどうかを指定します。
true : チェックする
false : チェックしない
false
smallrye.jwt.token.kid 署名に使う鍵を識別するための、鍵IDを指定します。 これが設定されている場合、JWT トークンや、JWK (JSON Web Key) には、kid ヘッダの設定が必要となります。 無し
smallrye.jwt.token.schemes Authorization ヘッダで使用されるスキームを指定します。カンマ (,) 区切りで、複数指定することが可能です。 Bearer
smallrye.jwt.require.named-principal sub、upn、preferred_user_name クレームのうち、少なくとも一つが指定されていることをチェックするかどうかを指定します。
true : チェックする
false : チェックしない
false
smallrye.jwt.claims.sub デフォルトの sub クレームの値を指定します。 無し
smallrye.jwt.path.sub Subject 名を含むクレームへのパスを指定します。 JWT トークンに sub クレームが無く、別のクレームに Subject 名が含まれているような場合に使用します。 無し
smallrye.jwt.claims.groups デフォルトの groups クレームの値を指定します。 無し
smallrye.jwt.path.groups グループ値を含むクレームへのパスを指定します。 JWT トークンに groups クレームが無く、別のクレームにグループ値が含まれているような場合に使用します。 無し
smallrye.jwt.groups-separator 複数のグループ値を指定する場合のセパレータを指定します。 smallrye.jwt.path.groups で示される値が、文字列である場合に適用されます。 (スペース)
smallrye.jwt.expiration.grace 有効期限切れのトークンを受け入れる猶予(秒)を指定します。 既定では、現在の時刻がトークンの有効期限後、60秒以内であれば、期限切れのトークンを受け入れます。 60
smallrye.jwt.time-to-live JWTトークン発行後の有効期限(秒)を指定します。 JWTトークンの有効期限と、発行日の差は、この値を超えてはなりません。 無し
smallrye.jwt.jwks.refresh-interval JWK (JSON Web Key) キャッシュの更新間隔 (分) を指定します。 60
smallrye.jwt.jwks.forced-refresh-interval JWK(JSON Web Key)キャッシュの強制リフレッシュ間隔(分)を指定します。 本設定は、mp.jwt.verify.publickey.location に、HTTPS URL ベースのJWKが設定されている場合に有効となります。 30
smallrye.jwt.verify.algorithm 署名のアルゴリズムを指定します。 指定可能な値は、RS256、RS384、RS512、ES256、ES384、ES512、HS256、HS384、HS512 です。 RS256
smallrye.jwt.verify.key-format サポートするキー形式を指定します。 指定可能な値は、PEM_KEY、PEM_CERTIFICATE、JWK、JWK_BASE64URL、ANY です。 ANY
smallrye.jwt.verify.aud audクレームに含めることのできるオーディエンスを指定します。 カンマ (,) 区切りで複数指定することが可能です。 ANY
smallrye.jwt.required.claims トークンに含める必要があるクレームを指定します。 カンマ (,) 区切りで複数指定することが可能です。 ANY

21.5. MicroProfile Metrics

MicroProfile Metricsに関する設定について説明します。

21.6. MicroProfile OpenAPI

MicroProfile OpenAPIに関する設定について説明します。

21.6.1. MicroProfile OpenAPI 設定項目一覧

MicroProfile Configの機能を介して、micromprofile-config.propertiesファイルに次の機能の使用可否を設定することができます。
micromprofile-config.propertiesはアプリケーションアーカイブ(war)のMETA-INF配下に配置します。
各項目は、MicroProfile Config を利用して設定します。設定方法や、設定値の優先順位等、詳細は、[ アプリケーション開発 > その他のアプリケーション > マイクロサービスアプリケーションの開発 > MicroProfile Config ] を参照してください。

MicroProfile OpenAPI 設定項目一覧
設定名 説明 既定値
mp.openapi.model.reader OASModelReader実装の完全修飾名を指定する。
指定できる完全修飾名は、1つだけ指定できます。
無し
mp.openapi.filter OASFilter実装の完全修飾名を指定する。
指定できる完全修飾名は、1つだけ指定できます。
無し
mp.openapi.scan.disable アノテーションスキャンを無効にする。 false
mpopenapi.scan.packages スキャンするパッケージのリストを指定する。 無し
mp.openapi.scan.classes スキャンするクラスのリストを指定する。 無し
mp.openapi.scan.exclude.packages スキャンから除外するパッケージのリストを指定する。 無し
mp.openapi.scan.exclude.classes スキャンから除外するクラスのリストを指定する。 無し
mp.openapi.servers 接続するグローバルサーバーのリストを指定する。 無し
mp.openapi.servers.path パス内のすべてを使用し処理するサーバーの代替リストを指定する。 無し
mp.openapi.servers.operation. 操作を処理するサーバーの代替リストを指定する。 無し

21.7. MicroProfile OpenTracing

MicroProfile OpenTracingに関する設定について説明します。

21.7.1. MicroProfile OpenTracing 設定項目一覧

各項目は、Java VM システムプロパティ、または、環境変数として指定してください。ただし、mp.opentracing.client-builder.thread-pool-size プロパティについては、アプリケーション内の、META-INF/microprofile-config.properties での指定も可能です。

MicroProfile OpenTracing 設定項目一覧
設定名 説明 既定値
mp.opentracing.enabled MicroProfile OpenTracing によるトレース情報採取を行うかどうかを指定します。
true : トレース情報を採取する
false : トレース情報を採取しない
false
mp.opentracing.client-builder.thread-pool-size ClientTracingRegistrar.configure(ClientBuilder) メソッドで、ClientBuilder に設定する Executor のスレッドプールサイズを指定します。
本プロパティは、アプリケーション内の、META-INF/microprofile-config.properties でも指定可能です。
20
mp.opentracing.tracer.class @Injectアノテーションを付与したio.opentracing.Tracerで取得できるTracerオブジェクトのクラスを指定します。 指定が無ければ、その環境で動作しているトレーサー実装 (既定では、Jaeger) の Tracer オブジェクトを保持する io.opentracing.util.GlobalTracer を返します。 なお、指定する Tracer クラスのオブジェクトは、io.opentracing.contrib.tracerresolver.TracerResolver で取得できるようにしておく必要があります。 また、TracerResolver で取得した Tracer クラスと、本プロパティで指定したクラスが一致しない場合は、既定値の GlobalTracer を返します。 io.opentracing.util.GlobalTracer
mp.opentracing.servlet.class トレース対象となる JAX-RS アプリケーションのサーブレットクラスの FQCN を指定します。, (カンマ) 区切りで複数指定することが可能です。 org.glassfish.jersey.servlet.ServletContainer
mp.opentracing.provider.parameter.<FQCN> mp.opentracing.servlet.class プロパティで指定した各サーブレットに対して、@Provider クラスを指定するためのパラメータ名を指定します。 MicroProfile OpenTracing では、@Provider として、javax.ws.rs.container.DynamicFeature を実装した io.smallrye.opentracing.SmallRyeTracingDynamicFeature を登録するため、 JAX-RS の実装に応じて、適切なパラメータ名を指定してください。 jersey.config.server.provider.classnames
mp.opentracing.provider.target.<FQCN> mp.opentracing.servlet.class プロパティで指定した各サーブレットに対して、@Provider クラスの設定対象を指定します。指定可能な設定対象は、次の通りです。
init-param : サーブレットの初期化パラメータに設定
context-param : サーブレットコンテキストの初期化パラメータに設定
attribute : アプリケーションスコープの属性に設定
init-param

21.7.2. Jaeger Client 設定項目一覧

WebOTX で動作する jaeger-client に対して設定可能な項目は、次の通りです。Java VM システムプロパティ、または、環境変数として指定してください。

なお、WebOTX Operator を利用している場合は、これらを、カスタムリソースとして指定することが可能です。 カスタムリソースの設定名等、詳細については、[ WebOTX Operator for Kubernetes > カスタムリソース設定項目・設定方法 ] を参照してください。

Jaeger Client 設定項目一覧
設定名 説明 既定値
JAEGER_SERVICE_NAME サービス名を指定します。指定は必須です。Jaeger UIでの検索時等に、使用します。 jaegerservice
JAEGER_AGENT_HOST エージェント (jaeger-agent) が動作するホスト名を指定します。 WebOTX とは別のホストで Jaeger が動作している場合に指定が必要となります。 localhost
JAEGER_AGENT_PORT エージェント (jaeger-agent) が動作する UDP のポート番号を指定します。 6831
JAEGER_ENDPOINT クライアント (jaeger-client) から、エージェント (jaeger-agent) を使わずに、直接、コレクタ (jaeger-collector) に接続する場合に、エンドポイント URL を指定します。 "https://jaeger-collector:14268/api/traces" のような形式で指定します。 この指定がある場合、JAEGER_AGENT_HOST、JAEGER_AGENT_PORT は無視されます。
JAEGER_AUTH_TOKEN JAEGER_ENDPOINT で指定したエンドポイントへのリクエストで、トークンによる認証を行う場合、 "Bearer" として送信する認証トークンを指定します。
JAEGER_USER JAEGER_ENDPOINT で指定したエンドポイントへのリクエストに、基本認証を利用する場合のユーザ名を指定します。
JAEGER_PASSWORD JAEGER_ENDPOINT で指定したエンドポイントへのリクエストに、基本認証を利用する場合のパスワードを指定します。 otxadmin encryptコマンドにより暗号化した値を設定してください。
JAEGER_PROPAGATION トレースコンテキストの伝搬に使うヘッダフォーマットのカンマ (,) 区切りのリストを指定します。 指定可能な値は、次の通りです。
jaeger : Jaeger 標準形式
b3 : Zipkin の B3 形式 ("X-B3"で始まるヘッダ)
w3c : W3C Trace Context 形式
jaeger
JAEGER_REPORTER_LOG_SPANS レポーターがスパンのログを記録するかどうかを指定します。
true : スパンのログを記録する
false : スパンのログを記録しない
false
JAEGER_REPORTER_MAX_QUEUE_SIZE レポーターの最大キューサイズを指定します。 100
JAEGER_REPORTER_FLUSH_INTERVAL レポーターのフラッシュ間隔 (ミリ秒) を指定します。 1000
JAEGER_SAMPLER_TYPE トレース情報をどの程度の割合で採取するかを決定するための、サンプラータイプを指定します。指定可能な値は、次の通りです。
const : 全トレースに対してサンプリングする/しないを指定
probabilistic : JAEGER_SAMPLER_PARAM に指定された確率で、ランダムにサンプリングする
ratelimiting : 1 秒間に、JAEGER_SAMPLER_PARAM に指定された割合でサンプリングする
remote : jaeger-agent 側で指定された方法でサンプリングする
remote
JAEGER_SAMPLER_PARAM サンプラーパラメータを指定します。 JAEGER_SAMPLER_TYPE で指定したサンプラーに対するパラメータ (数値) を指定します。 各サンプラータイプに対して指定する値は、次の通りです。
const : サンプリングする場合は1、しない場合は0を指定
probabilistic : 0.0より大きく、1.0より小さい値を指定 (例えば、0.1の場合、約1/10のトレースをサンプリング)
ratelimiting : 1.0以上の値を指定 (例えば、2.0の場合、1秒間に2トレースの割合でサンプリング)
JAEGER_SAMPLER_MANAGER_HOST_PORT JAEGER_SAMPLER_TYPE に remote を指定した場合の接続先となるリモート制御サンプラーを、<ホスト名>:<ポート番号> の形式で指定します。 localhost:5778
JAEGER_TAGS スパンに追加するタグを、名前=値の形式で指定します。カンマ (,) 区切りで、複数指定することが可能です。

21.8. MicroProfile Rest Client

MicroProfile Rest Clientに関する設定について説明します。

21.8.1. MicroProfile Rest Client 設定項目一覧

各項目は、MicroProfile Config を利用して設定します。設定方法や、設定値の優先順位等、詳細は、[ アプリケーション開発 > その他のアプリケーション > マイクロサービスアプリケーションの開発 > MicroProfile Config ] を参照してください。

MicroProfile Rest Client 設定項目一覧
設定名 説明 既定値
インターフェースの完全修飾名 + "/mp-rest/" + "url" または"uri" MicroProfile Rest Client アプリケーションからJAX-RS アプリケーションにアクセスするために、JAX-RS アプリケーションのベースURL/URIを指定します。"mp-rest"は固定です。
例: sample.restclient.RestClientInterface/mp-rest/url=http://localhost/Hello
無し
microprofile.rest.client.disable.default.mapper デフォルト例外Mapperを無効にする場合、trueを設定します。
デフォルト例外Mapperは、レスポンスのHTTPステータスコードが400以上の場合にWebApplicationExceptionを返します。ただし、独自例外Mapperクラスが優先され、独自例外Mapperクラスで条件に一致しない場合にデフォルト例外Mapperが実行されます。
false