第10章 YAML 設定サポートの追加


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

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

手順

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

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

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

      ./mvnw quarkus:add-extension -Dextensions="quarkus-config-yaml"

10.1. YAML でのネストされたオブジェクト設定の使用

既存のクラス内でネストされたクラスを定義できます。以下の YAML 設定ファイルの例は、YAML 形式を使用して Quarkus アプリケーションでネストされたプロパティーを設定する方法を示しています。

前提条件

  • YAML 設定ファイルを読み取ることができる既存の Quarkus プロジェクトがあること。

手順

  1. 開発モードで Quarkus を起動するには、Quarkus アプリケーションの pom.xml ファイルが含まれるディレクトリーで以下のコマンドを入力します。

    ./mvnw quarkus:dev
  2. YAML 設定ファイルを開きます。
  3. 以下に示す構文のようなネストされたクラス設定を追加します。
# YAML supports comments
quarkus:
  datasource:
    url: jdbc:postgresql://localhost:5432/some-database
    driver: org.postgresql.Driver
    username: quarkus
    password: quarkus

# REST Client configuration property
org:
  acme:
    restclient:
      CountriesService/mp-rest/url: https://restcountries.eu/rest

# For configuration property names that use quotes, do not split the string inside the quotes.
quarkus:
  log:
    category:
      "io.quarkus.category":
        level: INFO

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

Red Hat ビルドの Quarkus では、プロファイル依存の設定を作成し、必要に応じてそれらの設定の切り替えを行うことができます。以下の手順は、YAML を使用してプロファイル依存設定を提供する方法を示しています。

前提条件

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

手順

  1. YAML 設定ファイルを開きます。
  2. プロファイル依存設定を設定するには、”%profile” 構文を使用してキーと値のペアを定義する前にプロファイル名を追加します。

    以下の例では、Quarkus が開発モードで実行される際に、jdbc:postgresql://localhost:5432/some-database URL で PostgreSQL データベースが利用可能になるように設定されます。

    "%dev":
      quarkus:
        datasource:
          url: jdbc:postgresql://localhost:5432/some-database
          driver: org.postgresql.Driver
          username: quarkus
          password: quarkus
  3. アプリケーションを停止した場合には、以下のコマンドを入力して再起動します。

    ./mvnw quarkus:dev

10.3. 設定キーの競合の管理

YAML などの構造化形式は、Configuration 名前空間の候補のサブセットのみをサポートします。以下の手順は、2 つの設定プロパティー (quarkus.http.corsquarkus.http.cors.methods) における競合の解決方法を示しています。ここで、1 つのプロパティーはもう 1 つのプロパティーの接頭辞になります。

前提条件

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

手順

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

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

    ./mvnw quarkus:dev
    注記

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

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.