2.42. gRPC
gRPC エンドポイントを公開し、外部 gRPC エンドポイントにアクセスします。
2.42.1. 含まれるもの リンクのコピーリンクがクリップボードにコピーされました!
-
gRPC コンポーネント、URI 構文:
grpc:host:port/service
使用方法と設定の詳細は、上記リンクを参照してください。
2.42.2. Maven コーディネート リンクのコピーリンクがクリップボードにコピーされました!
code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成
または、既存のプロジェクトに座標を追加します。
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-grpc</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-grpc</artifactId>
</dependency>
2.42.3. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
2.42.3.1. Protobuf で生成されるコード リンクのコピーリンクがクリップボードにコピーされました!
Camel Quarkus gRPC は、.proto ファイルの gRPC サービススタブを生成できます。Maven を使用する場合は、プロジェクトビルドで quarkus-maven-plugin の generate-code ゴールが有効になっていることを確認してください。
この設定を使用すると、サービス定義とメッセージ定義を src/main/proto ディレクトリーに配置でき、quarkus-maven-plugin が .proto ファイルからコードを生成します。
2.42.3.1.1. インポートによる proto ファイルのスキャン リンクのコピーリンクがクリップボードにコピーされました!
プロトコルバッファー仕様は、proto ファイルをインポートする方法を提供します。設定プロパティーの quarkus.camel.grpc.codegen.scan-for-imports プロパティーを application.properties に追加することで、スキャンする依存関係の範囲を制御できます。利用可能なオプションの概要を以下に示します。
-
all- すべての依存関係をスキャンします。 -
none- 依存関係のスキャンを無効にします。src/main/protoまたはsrc/test/protoで定義された proto 定義のみを使用します。 -
groupId1:artifactId1,groupId2:artifactId2-groupIdおよびartifactIdリストに一致する依存関係のみをスキャンします。
デフォルト値は com.google.protobuf:protobuf-java です。
2.42.3.1.2. 依存関係からの proto ファイルのスキャン リンクのコピーリンクがクリップボードにコピーされました!
複数の依存関係間で共有されている proto ファイルがある場合は、設定プロパティー quarkus.camel.grpc.codegen.scan-for-proto を application.properties に追加することで、そのファイルの gRPC サービススタブを生成できます。
まず、proto ファイルを含むアーティファクトの依存関係をプロジェクトに追加します。次に、proto ファイルの依存関係スキャンを有効にします。
quarkus.camel.grpc.codegen.scan-for-proto=org.my.groupId1:my-artifact-id-1,org.my.groupId2:my-artifact-id-2
quarkus.camel.grpc.codegen.scan-for-proto=org.my.groupId1:my-artifact-id-1,org.my.groupId2:my-artifact-id-2
設定プロパティーを使用して、特定の proto ファイルを依存関係スキャンに追加または除外することができます。
設定プロパティー名の接尾辞は、追加/除外を設定する依存関係の Maven groupId/artifactId です。パスは、依存関係に含まれる proto ファイルのクラスパスの場所への相対パスです。パスは、proto ファイルへの明示的なパス、または複数のファイルを追加/除外する glob パターンとして指定できます。
quarkus.camel.grpc.codegen.scan-for-proto-includes."<groupId>\:<artifactId>"=foo/**,bar/**,baz/a-proto.proto quarkus.camel.grpc.codegen.scan-for-proto-excludes."<groupId>\:<artifactId>"=foo/private/**,baz/another-proto.proto
quarkus.camel.grpc.codegen.scan-for-proto-includes."<groupId>\:<artifactId>"=foo/**,bar/**,baz/a-proto.proto
quarkus.camel.grpc.codegen.scan-for-proto-excludes."<groupId>\:<artifactId>"=foo/private/**,baz/another-proto.proto
プロパティーキー内の : 文字は \ でエスケープする必要があります。
2.42.3.2. ネイティブモードでのクラスパスリソースへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
gRPC コンポーネントには、リソースをクラスパスから解決するさまざまなオプションがあります。
-
keyCertChainResource -
keyResource -
serviceAccountResource -
trustCertCollectionResource
これらのオプションをネイティブモードで使用する場合は、そのようなリソースがネイティブイメージに含まれていることを確認する必要があります。
これは、設定プロパティー quarkus.native.resources.includes を application.properties に追加することで実現できます。たとえば、SSL/TLS キーと証明書を含めるには、次のように指定します。
quarkus.native.resources.includes = certs/*.pem,certs.*.key
quarkus.native.resources.includes = certs/*.pem,certs.*.key
ネイティブ実行可能ファイルに含めるリソースの選択に関する詳細は、ネイティブモードガイド を参照してください。
2.42.4. Camel Quarkus の制限 リンクのコピーリンクがクリップボードにコピーされました!
2.42.4.1. Quarkus gRPC との統合はサポート対象外 リンクのコピーリンクがクリップボードにコピーされました!
現時点では、Camel Quarkus gRPC と Quarkus gRPC の統合はサポートされていません。クラスパスに camel-quarkus-grpc と quarkus-grpc エクステンションの両方の依存関係がある場合、アプリケーションをコンパイルすると、ビルド時に問題が発生する可能性があります。
2.42.5. 追加の Camel Quarkus 設定 リンクのコピーリンクがクリップボードにコピーされました!
| 設定プロパティー | 型 | デフォルト |
|---|---|---|
|
|
|
|
|
Camel Quarkus gRPC のコード生成が、.proto ファイルのアプリケーションの依存関係をスキャンして、そのファイルから Java スタブを生成できます。このプロパティーは、スキャンする依存関係の範囲を設定します。適用可能な値: - none - デフォルト - 依存関係をスキャンしない - スキャンする groupId:artifactId コーディネートのコンマ区切りのリスト - all - すべての依存関係をスキャンする |
|
|
|
Camel Quarkus gRPC のコード生成が、このアプリケーションの proto によってインポートできる .proto ファイルの依存関係をスキャンできます。適用可能な値: - none - デフォルト - 依存関係をスキャンしない - スキャンする groupId:artifactId コーディネートのコンマ区切りリスト - all - すべての依存関係をスキャンする (デフォルトは com.google.protobuf:protobuf-java) |
|
|
|
[[quarkus-camel-grpc-codegen-scan-for-proto-includes—scan-for-proto-includes]] パッケージパスまたはファイル glob パターンは、追加対象として考慮すべき .proto ファイルを含む依存関係ごとに追加します。 |
| |
|
[[quarkus-camel-grpc-codegen-scan-for-proto-excludes—scan-for-proto-excludes]] パッケージパスまたはファイル glob パターンは、除外対象として考慮すべき .proto ファイルを含む依存関係ごとに追加します。 |
|
ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。