第2章 Service Registry ルールの概要
本章では、レジストリーコンテンツの管理に使用するオプションのルールを紹介し、利用可能なルールタイプの詳細を提供します。
2.1. レジストリーコンテンツのルール
レジストリーのコンテンツ展開を管理するには、インストール後のステップとして、レジストリーに追加されたアーティファクトのオプションのルールを設定できます。アーティファクトに設定したルールは、新しいアーティファクトバージョンをレジストリーにアップロードする前に渡す必要があります。これらのルールの目的は、無効なコンテンツがレジストリーに追加されないようにすることです。たとえば、次の理由でコンテンツが無効になる可能性があります。
-
特定のアーティファクトタイプ (
AVRO
やPROTOBUF など
) の構文が無効です - 有効な構文ですが、セマンティクスが会社の標準に違反します。
- 新しいコンテンツには、現在のアーティファクトバージョンへの重大な変更が含まれます。
2.1.1. ルールの適用時
ルールは、コンテンツがレジストリーに追加される場合にのみ適用されます。これには、以下の REST 操作が含まれます。
- アーティファクトの作成
- アーティファクトの更新
- アーティファクトバージョンの作成
ルールに違反した場合、Service Registry は HTTP エラーを返します。応答本文には、違反したルールと、何が問題だったのかを示すメッセージが含まれます。
アーティファクトにルールが設定されていない場合、現在設定されているグローバルルールのセットが適用されます。
2.1.2. ルールの仕組み
各ルールには、名前と任意の設定情報があります。レジストリーストレージは、各アーティファクトのルール一覧とグローバルルールの一覧を維持します。リスト内の各ルールは、ルール実装に固有の名前と設定プロパティーのセットで構成されます。たとえば、検証ルールは Map<String,String
> を使用することも、互換性ルールでは、既存バージョンとの互換性のために BACKWARD
の単一のプロパティーを使用することがあります。
アーティファクトの現在のバージョン (存在する場合) および追加されるアーティファクトの新しいバージョンのコンテンツを含むルールが提供されます。ルール実装は、アーティファクトがルールを渡すかどうかに応じて true または false を返します。そうでない場合、レジストリはその理由を HTTP エラー応答で報告します。一部のルールは、コンテンツの以前のバージョンを使用しない場合があります。たとえば、互換性ルールは以前のバージョンを使用しますが、構文またはセマンティック妥当性ルールは使用しません。