YAML ファイルを使用した Red Hat build of Quarkus アプリケーションの設定


Red Hat build of Quarkus 3.15

Red Hat Customer Content Services

概要

このガイドでは、YAML ファイルを使用して Red Hat build of Quarkus アプリケーションを設定する方法を説明します。

Red Hat build of Quarkus ドキュメントへのフィードバックの提供

エラーを報告したり、ドキュメントを改善したりするには、Red Hat Jira アカウントにログインし、課題を送信してください。Red Hat Jira アカウントをお持ちでない場合は、アカウントを作成するように求められます。

手順

  1. 次のリンクをクリックして チケットを作成します
  2. Summary に課題の簡単な説明を入力します。
  3. Description に課題や機能拡張の詳細な説明を入力します。問題があるドキュメントのセクションへの URL も記載してください。
  4. Submit をクリックすると、課題が作成され、適切なドキュメントチームに転送されます。

第1章 YAML ファイルを使用した Red Hat build of Quarkus アプリケーションの設定

アプリケーション開発者は、Red Hat build of Quarkus を使用して、OpenShift Container Platform 環境およびサーバーレス環境で実行される、Java で書かれたマイクロサービスベースのアプリケーションを作成できます。ネイティブ実行可能ファイルにコンパイルされたアプリケーションは、メモリーのフットプリントが小さく、起動時間は高速です。

application.yaml ファイルを更新して構造化された設定を適用して、Quarkus アプリケーションを設定します。

注記

あるいは、application.properties ファイルでプロパティーを設定して、Quarkus アプリケーションを設定することもできます。詳細は、設定プロパティーの設定 を参照してください。

この手順には、Quarkus config-quickstart 演習を使用して作成された設定例が含まれています。

注記

アプリケーション設定演習の完了した例は、Quarkus Quickstarts アーカイブをダウンロードするか、Quarkus Quickstarts Git リポジトリーをクローンして config-quickstart ディレクトリーに移動してください。

前提条件

  • OpenJDK 17 または 21 をインストールし、JAVA_HOME 環境変数を設定して Java SDK の場所を指定している。

  • Apache Maven 3.8.6 以降がインストールされている。

  • Apache Maven を、Quarkus Maven repository のアーティファクトを使用するように設定している。

1.1. 設定オプション

アプリケーションの設定を 1 つの設定ファイルで管理できます。さらに、設定プロファイルを定義して、開発、テスト、運用などのさまざまな環境の関連設定をグループ化することもできます。この方法では、メインの設定ファイルを変更せずに、プロファイルを簡単に切り替えて、環境固有のプロパティーを適用できます。

デフォルトでは、Quarkus は src/main/resources ディレクトリーにある application.properties ファイルからプロパティーを読み取ります。代わりに、application.yaml ファイルでアプリケーションプロパティーを設定および管理する場合は、プロジェクトの pom.xml ファイルに quarkus-config-yaml 依存関係を追加します。詳細は、YAML 設定サポートを追加する を参照してください。

Red Hat build of Quarkus は MicroProfile Config もサポートしており、これを使用してさまざまなソースからアプリケーションの設定を読み込むことができます。Eclipse MicroProfile プロジェクトの MicroProfile Config 仕様 を使用すると、設定プロパティーをアプリケーションに挿入し、コードで定義されたメソッドを使用してそれらにアクセスできます。

Quarkus は、次のようなさまざまなオリジンからのアプリケーションプロパティーを読み取ることができます。

  • ファイルシステム
  • データベース
  • Kubernetes または OpenShift Container Platform の ConfigMap または Secret オブジェクト
  • Java アプリケーションがロードできるソース

1.2. YAML 設定サポートの追加

Red Hat build of Quarkus は、Eclipse MicroProfile Config の SmallRye Config 実装により YAML 設定ファイルをサポートします。Quarkus Config YAML エクステンションを追加し、設定のプロパティーファイルで YAML 設定ファイルを使用できます。Quarkus は、application.yml および application.yaml を YAML ファイルの名前として使用することをサポートします。

YAML 設定ファイルは、application.properties ファイルよりも優先されます。エラーを回避するには、application.properties ファイルを削除し、1 種類の設定ファイルのみを使用できます。

手順

  1. 以下の方法のいずれかを使用して、プロジェクトに YAML エクステンションを追加します。

    • pom.xml ファイルを開き、quarkus-config-yaml エクステンションを依存関係として追加します。

      pom.xml ファイルの例

      <dependency>
          <groupId>io.quarkus</groupId>
          <artifactId>quarkus-config-yaml</artifactId>
      </dependency>
      Copy to Clipboard Toggle word wrap

    • コマンドラインから quarkus-config-yaml エクステンションを追加するには、プロジェクトディレクトリーから以下のコマンドを入力します。

      quarkus-config-yaml エクステンションの追加

      ./mvnw quarkus:add-extension -Dextensions="quarkus-config-yaml"
      Copy to Clipboard Toggle word wrap

1.2.1. YAML を使用したネストされたオブジェクト設定の使用

application.yaml 設定ファイルを使用して、Red Hat build of Quarkus アプリケーションの既存の設定プロパティー内でネストされた設定プロパティーを定義できます。

前提条件

  • Quarkus Maven プロジェクトがある。
  • PostgreSQL データソースがある。
  • プロジェクトの pom.xml ファイルの依存関係として、以下のエクステンションがある。

    • quarkus-resteasy-client
    • quarkus-jdbc-postgresql
    • quarkus-config-yaml

手順

  1. src/main/resources/application.yaml 設定ファイルを開きます。
  2. 以下の例のように、ネストされたクラス設定プロパティーを application.yaml ファイルに追加します。

    application.yaml ファイルの例

    # Properties that configure the JDBC data source driver of your PostgreSQL data source
    quarkus:
      datasource:
        db-kind: postgresql
        jdbc:
          url: jdbc:postgresql://localhost:5432/quarkus_test
        username: quarkus_test
        password: quarkus_test
    
    # Property that configures the URL of the endpoint to which the REST client sends requests
    quarkus:
      rest-client:
        org.acme.rest.client.ExtensionsService:
          url: https://stage.code.quarkus.io/api
    
    # Property that configures the log message level for your application
    # For configuration property names that use quotes, do not split the string inside the quotes
    quarkus:
      log:
        category:
          "io.quarkus.category":
            level: INFO
    Copy to Clipboard Toggle word wrap

    警告

    実稼働環境の場合は、前述の例のように、設定ファイルにユーザー名とパスワードを設定しないでください。これは、説明のみを目的としています。代わりに、環境変数で設定します。詳細は、「プロパティーファイルを使用した Red Hat build of Quarkus アプリケーションの設定」ガイドの 設定プロパティーの設定 セクションを参照してください。

    application.properties ファイルと同様に、コメントを使用して設定プロパティーを YAML 形式で記述できます。

    注記

    YAML 設定ファイル内のプロパティーをインデントするには、常にスペースを使用してください。YAML は、インデントへのタブの使用をサポートしていません。

1.2.2. YAML を使用したカスタム設定プロファイルの設定

Quarkus を使用すると、アプリケーションのさまざまな設定プロファイルに固有の設定プロパティーと値を設定できます。特定のプロファイルを使用してアプリケーションを起動し、特定の設定にアクセスできます。この手順では、YAML 形式で特定のプロファイルの設定を提供する方法を示します。

前提条件

  • JDBC データソースドライバーで PostgreSQL データソースを使用するように設定された Quarkus Maven プロジェクトがある。
  • プロジェクトの pom.xml ファイルに、依存関係として quarkus-jdbc-postgresql および quarkus-config-yaml エクステンションが追加されている。

手順

  1. プロジェクトの設定ファイル src/main/resources/application.yaml を開きます。
  2. プロファイル依存設定を設定するには、"%<profile_name>" 構文を使用してキーと値のペアを定義する前にプロファイル名を追加します。プロファイル名は必ず引用符で囲んでください。

    ヒント

    YAML では、特殊文字で始まるすべての文字列を引用符で囲む必要があります。

    次の例では、Quarkus アプリケーションを開発モードで起動すると、PostgreSQL データベースが jdbc:postgresql://localhost:5432/quarkus_test URL で使用できるように設定されています。

    src/main/resources/application.yaml

    "%dev":
      quarkus:
        datasource:
          db-kind: postgresql
            jdbc:
              url: jdbc:postgresql://localhost:5432/quarkus_test
            username: quarkus_test
            password: quarkus_test
    Copy to Clipboard Toggle word wrap

    警告

    実稼働環境の場合は、前述の例のように、設定ファイルにユーザー名とパスワードを設定しないでください。これは、説明のみを目的としています。代わりに、環境変数で設定します。詳細は、「プロパティーファイルを使用した Red Hat build of Quarkus アプリケーションの設定」ガイドの 設定プロパティーの設定 セクションを参照してください。

1.3. プロパティー式

プロパティー参照とテキスト文字列を組み合わせてプロパティー式を作成し、これらの式を Quarkus 設定の値として使用できます。

変数と同様に、プロパティー式は設定プロパティー値を動的に置き換え、値のハードコードを回避します。

ある設定ソース内の式を、別の設定ソースで定義された値で拡張できます。

アプリケーションは、java.util.Properties が設定ソースからプロパティー値を読み取るときに、プロパティー式を解決します。コンパイル時に読み取る場合はコンパイル時、実行時にオーバーライドされる場合は実行時に解決します。

アプリケーションが式のプロパティー値を解決できず、そのプロパティーにデフォルト値がない場合、アプリケーションは NoSuchElementException エラーを出力します。

1.3.1. 例: YAML ファイル内のプロパティー式

次の例は、Quarkus アプリケーションを柔軟に設定するためにプロパティー式を使用する方法を示しています。

application.yaml ファイルの例

mach: 3
x:
  factor: 2.23694

display:
  mach: ${mach}
  unit:
    name: "mph"
    factor: ${x.factor}
Copy to Clipboard Toggle word wrap

注記

ネストされたプロパティーを参照するには、{x.factor} のように、. (ドット) 区切り文字を使用します。

1.4. 実行時にプロパティーを設定するための外部 application.yaml ファイル

実行時にアプリケーションのプロパティーを設定するには、application.yaml ファイルを config ディレクトリーに追加します。

config/application.yamlsrc/main/resources/application.yaml がプロパティーを共有する場合は、config/application.yaml の値が src/main/resources/application.yaml の値をオーバーライドします。

次の例に示すように、config/application.yaml ファイルが、Quarkus アプリケーションランナーを基準とした作業ディレクトリーのルートにあることを確認します。

├── config
│    └── application.yaml
├── my-app-runner
Copy to Clipboard Toggle word wrap

1.5. 設定プロパティーの競合の管理

YAML などの構造化形式は、Configuration 名前空間の候補のサブセットのみをサポートします。次の手順は、一方のプロパティーがもう一方のプロパティーの接頭辞となっている 2 つの設定プロパティー quarkus.http.corsquarkus.http.cors.methods 間の競合を解決する方法を示しています。

前提条件

  • YAML 設定ファイルを読み取るように Quarkus プロジェクトが設定されている。

手順

  1. YAML 設定ファイルを開きます。
  2. YAML プロパティーを別のプロパティーの接頭辞として定義するには、以下の例に示すようにプロパティーの範囲にティルデ (~) を追加します。

    YAML プロパティーを接頭辞として定義する例

    quarkus:
      http:
        cors:
          ~: true
          methods: GET,PUT,POST
    Copy to Clipboard Toggle word wrap

  3. 開発モードで Quarkus アプリケーションをコンパイルするには、プロジェクトディレクトリーから以下のコマンドを入力します。

    アプリケーションをコンパイルします。

    ./mvnw quarkus:dev
    Copy to Clipboard Toggle word wrap

    注記

    YAML キーは設定プロパティー名のアセンブリーに含まれないため、任意のレベルの競合する設定キーに使用できます。

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat