第2章 Service Registry のコンテンツルール


本章では、レジストリーコンテンツを管理するために使用されるオプションのルールを紹介し、利用可能なルール設定の詳細を説明します。

2.1. ルールを使用したレジストリーコンテンツの管理

レジストリーコンテンツの展開を管理するために、レジストリーに追加されるアーティファクトコンテンツの任意のルールを設定できます。設定されたグローバルルールまたはアーティファクトルールはすべて、新しいアーティファクトバージョンをレジストリーにアップロードする前に渡す必要があります。設定されたアーティファクトルールは、設定されたグローバルルールを上書きします。

これらのルールの目的は、無効なコンテンツがレジストリーに追加されないようにすることです。たとえば、次の理由でコンテンツが無効になる可能性があります。

  • 特定のアーティファクトタイプ (AVROPROTOBUF など) の構文が無効です
  • 有効な構文で、セマンティクスが仕様に違反している
  • 新しいコンテンツに現在のアーティファクトバージョンに関連する変更の違反が含まれる場合の非互換性

Service Registry Web コンソール、REST API コマンド、または Java クライアントアプリケーションを使用して、任意のコンテンツルールを有効にできます。

2.1.1. ルールの適用時

ルールは、コンテンツがレジストリーに追加される場合にのみ適用されます。これには、以下の REST 操作が含まれます。

  • アーティファクトの追加
  • アーティファクトの更新
  • アーティファクトバージョンの追加

ルールに違反した場合、Service Registry は HTTP エラーを返します。応答本文には、違反したルールと、何が問題だったのかを示すメッセージが含まれます。

2.1.2. ルールの優先順位

Service Registry のコンテンツルールは、グローバルレベルおよびアーティファクトレベルで設定できます。優先順位は次のとおりです。

  • Artifact ルールと同等のグローバルルールを有効にすると、Artifact ルールがグローバルルールをオーバーライドします。
  • Artifact ルールを無効にして、同等のグローバルルールを有効にすると、グローバルルールが適用されます。
  • アーティファクトレベルおよびグローバルレベルでルールを無効にすると、すべてのアーティファクトのルールが無効になります。
  • アーティファクトレベルでルール値を NONE に設定すると、有効なグローバルルールがオーバーライドされます。この場合、アーティファクトルール値 NONE がこのアーティファクトでは優先されますが、有効なグローバルルールは、ルールがアーティファクトレベルで無効になっている他のすべてのアーティファクトに引き続き適用されます。

2.1.3. ルールの仕組み

各ルールには、名前と設定情報があります。レジストリーは、各アーティファクトのルール一覧とグローバルルールの一覧を維持します。リスト内の各ルールは、ルール実装の名前と設定で構成されます。

アーティファクトの現在のバージョン (存在する場合) および追加されるアーティファクトの新しいバージョンのコンテンツを含むルールが提供されます。ルール実装は、アーティファクトがルールを渡すかどうかに応じて true または false を返します。そうでない場合、レジストリーはその理由を HTTP エラー応答で報告します。一部のルールは、コンテンツの以前のバージョンを使用しない場合があります。たとえば、互換性ルールは以前のバージョンを使用しますが、構文またはセマンティック妥当性ルールは使用しません。

その他のリソース

詳細は、9章Service Registry アーティファクトの参照 を参照してください。

2.1.4. コンテンツルールの設定

アーティファクトごとに個別にルールを設定することも、グローバルに設定することもできます。Service Registry は、特定のアーティファクトに設定したルールを適用します。そのレベルでルールが設定されていない場合、Service Registry はグローバルに設定されたルールを適用します。グローバルルールが設定されていない場合は、ルールが適用されません。

アーティファクトルールの設定

Service Registry Web コンソールまたは REST API を使用してアーティファクトルールを設定できます。詳細は以下を参照してください。

グローバルルールの設定

グローバルルールは、複数の方法で設定できます。

  • REST API で /rules 操作を使用します
  • Service Registry Web コンソールの使用
  • Service Registry アプリケーションプロパティーを使用したデフォルトのグローバルルールの設定

デフォルトのグローバルルールの設定

アプリケーションレベルで Service Registry を設定して、グローバルなルールを有効または無効にすることができます。以下のアプリケーションプロパティー形式を使用して、インストール後の設定を行わずに、インストール時にデフォルトのグローバルルールを設定できます。

registry.rules.global.<ruleName>

現在、以下のルール名がサポートされています。

  • compatibility
  • validity

application プロパティーの値は、設定されたルールに固有の有効な設定オプションである必要があります。

注記

これらのアプリケーションプロパティーは、Java システムプロパティーとして設定することも、Quarkus application.properties ファイルに含めることもできます。詳細は、Quarkus のドキュメント を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.