2.42. gRPC


gRPC エンドポイントを公開し、外部 gRPC エンドポイントにアクセスします。

2.42.1. 含まれるもの

使用方法と設定の詳細は、上記リンクを参照してください。

2.42.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-grpc</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.42.3. 使用方法

2.42.3.1. Protobuf で生成されるコード

Camel Quarkus gRPC は、.proto ファイルの gRPC サービススタブを生成できます。Maven を使用する場合は、プロジェクトビルドで quarkus-maven-plugingenerate-code ゴールが有効になっていることを確認してください。

<build>
    <plugins>
        <plugin>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-maven-plugin</artifactId>
            <version>${quarkus.platform.version}</version>
            <extensions>true</extensions>
            <executions>
                <execution>
                    <goals>
                        <goal>build</goal>
                        <goal>generate-code</goal>
                        <goal>generate-code-tests</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
Copy to Clipboard Toggle word wrap

この設定を使用すると、サービス定義とメッセージ定義を 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-protoapplication.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
Copy to Clipboard Toggle word wrap

設定プロパティーを使用して、特定の 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
Copy to Clipboard Toggle word wrap
注記

プロパティーキー内の : 文字は \ でエスケープする必要があります。

2.42.3.2. ネイティブモードでのクラスパスリソースへのアクセス

gRPC コンポーネントには、リソースをクラスパスから解決するさまざまなオプションがあります。

  • keyCertChainResource
  • keyResource
  • serviceAccountResource
  • trustCertCollectionResource

これらのオプションをネイティブモードで使用する場合は、そのようなリソースがネイティブイメージに含まれていることを確認する必要があります。

これは、設定プロパティー quarkus.native.resources.includesapplication.properties に追加することで実現できます。たとえば、SSL/TLS キーと証明書を含めるには、次のように指定します。

quarkus.native.resources.includes = certs/*.pem,certs.*.key
Copy to Clipboard Toggle word wrap

ネイティブ実行可能ファイルに含めるリソースの選択に関する詳細は、ネイティブモードガイド を参照してください。

2.42.4. Camel Quarkus の制限

2.42.4.1. Quarkus gRPC との統合はサポート対象外

現時点では、Camel Quarkus gRPC と Quarkus gRPC の統合はサポートされていません。クラスパスに camel-quarkus-grpcquarkus-grpc エクステンションの両方の依存関係がある場合、アプリケーションをコンパイルすると、ビルド時に問題が発生する可能性があります。

2.42.5. 追加の Camel Quarkus 設定

Expand
設定プロパティーデフォルト

quarkus.camel.grpc.codegen.enabled

true の場合、Camel Quarkus gRPC のコード生成が、proto ディレクトリー、または scan-for-proto または scan-for-imports オプションで指定された依存関係から検出された .proto ファイルに対して実行されます。false の場合、.proto ファイルのコード生成は無効になります。

boolean

true

quarkus.camel.grpc.codegen.scan-for-proto

Camel Quarkus gRPC のコード生成が、.proto ファイルのアプリケーションの依存関係をスキャンして、そのファイルから Java スタブを生成できます。このプロパティーは、スキャンする依存関係の範囲を設定します。適用可能な値:

- none - デフォルト - 依存関係をスキャンしない - スキャンする groupId:artifactId コーディネートのコンマ区切りのリスト - all - すべての依存関係をスキャンする

string

none

quarkus.camel.grpc.codegen.scan-for-imports

Camel Quarkus gRPC のコード生成が、このアプリケーションの proto によってインポートできる .proto ファイルの依存関係をスキャンできます。適用可能な値:

- none - デフォルト - 依存関係をスキャンしない - スキャンする groupId:artifactId コーディネートのコンマ区切りリスト - all - すべての依存関係をスキャンする (デフォルトは com.google.protobuf:protobuf-java)

string

com.google.protobuf:protobuf-java

[[quarkus-camel-grpc-codegen-scan-for-proto-includes—​scan-for-proto-includes]] quarkus.camel.grpc.codegen.scan-for-proto-includes."scan-for-proto-includes"

パッケージパスまたはファイル glob パターンは、追加対象として考慮すべき .proto ファイルを含む依存関係ごとに追加します。

Map<String,List<String>>

 

[[quarkus-camel-grpc-codegen-scan-for-proto-excludes—​scan-for-proto-excludes]] quarkus.camel.grpc.codegen.scan-for-proto-excludes."scan-for-proto-excludes"

パッケージパスまたはファイル glob パターンは、除外対象として考慮すべき .proto ファイルを含む依存関係ごとに追加します。

Map<String,List<String>>

 

ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る