Java 用 Azure Schema Registry クライアント ライブラリ - バージョン 1.3.10
Azure Schema Registry は、スキーマ ストレージ、バージョン管理、管理を提供する、Azure Event Hubsによってホストされるスキーマ リポジトリ サービスです。 レジストリは、完全なスキーマではなくスキーマ識別子を使用してペイロード構造を記述しながら、ペイロード サイズを削減するためにアプリケーションによって利用されます。
ソースコード | パッケージ (Maven) | API リファレンス ドキュメント | 製品ドキュメント | サンプル
作業の開始
前提条件
- Java Development Kit (JDK) バージョン 8 以降。
- Azure サブスクリプション
- Event Hubs 名前空間
パッケージを組み込む
BOM ファイルを含める
ライブラリの一般提供 (GA) バージョンに依存するには、azure-sdk-bom をプロジェクトに含めてください。 次のスニペットでは、{bom_version_to_target} プレースホルダーをバージョン番号に置き換えます。 BOM の詳細については、 AZURE SDK BOM README に関するページを参照してください。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
次に、次に示すように、バージョン タグを使用せずに、依存関係セクションに直接依存関係を含めます。
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-data-schemaregistry</artifactId>
</dependency>
</dependencies>
直接依存関係を含める
BOM に存在しない特定のバージョンのライブラリに依存する場合は、次のように直接依存関係をプロジェクトに追加します。
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-data-schemaregistry</artifactId>
<version>1.3.10</version>
</dependency>
クライアントを認証する
Azure Schema Registry サービスと対話するには、 を使用して SchemaRegistryClientBuilder
クラスのインスタンスをSchemaRegistryClient
作成する必要があります。 クライアント オブジェクトをインスタンス化するには、 エンドポイント と API キー が必要です。
Azure Active Directory 資格情報を使用して SchemaRegistryClient を作成する
Azure Id ライブラリを使用して、Azure Active Directory で認証できます。 リージョン エンドポイントは AAD 認証をサポートしないことに注意してください。 この種類の認証を使用するために、リソースのカスタム サブドメインを作成します。
次に示す DefaultAzureCredential プロバイダー、または Azure SDK で提供されている他の資格情報プロバイダーを使用するには、パッケージを azure-identity
含めてください。
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.10.1</version>
</dependency>
また、 新しい AAD アプリケーションを登録 し、スキーマ レジストリ サービス へのアクセス 権を付与する必要もあります。
AAD アプリケーションのクライアント ID、テナント ID、クライアント シークレットの値を環境変数として設定します(AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_SECRET)。
非同期クライアント
DefaultAzureCredential azureCredential = new DefaultAzureCredentialBuilder()
.build();
SchemaRegistryAsyncClient client = new SchemaRegistryClientBuilder()
.fullyQualifiedNamespace("https://<your-schema-registry-endpoint>.servicebus.windows.net")
.credential(azureCredential)
.buildAsyncClient();
同期クライアント
DefaultAzureCredential azureCredential = new DefaultAzureCredentialBuilder()
.build();
SchemaRegistryClient client = new SchemaRegistryClientBuilder()
.fullyQualifiedNamespace("https://<your-schema-registry-endpoint>.servicebus.windows.net")
.credential(azureCredential)
.buildClient();
主要な概念
スキーマ
スキーマには 6 つのコンポーネントがあります。
- グループ名: スキーマ レジストリ インスタンス内のスキーマのグループの名前。
- スキーマ名: スキーマの名前。
- スキーマ ID: スキーマのスキーマ レジストリ インスタンスによって割り当てられた ID。
- シリアル化の種類: スキーマのシリアル化に使用される形式。 たとえば、Avro です。
- スキーマ コンテンツ: スキーマの文字列表現。
- スキーマ バージョン: スキーマ レジストリ インスタンス内のスキーマに割り当てられたバージョン。
これらのコンポーネントは、さまざまな役割を果たします。 操作への入力として使用されるものもあれば、出力として使用されるものもあります。 現在、 SchemaProperties では、SchemaRegistry 操作で使用される可能性のある出力であるプロパティのみが公開されています。 公開されるプロパティは と Id
ですContent
。
例
スキーマを登録する
Azure スキーマ レジストリに格納するスキーマを登録します。
String schema = "{\"type\":\"enum\",\"name\":\"TEST\",\"symbols\":[\"UNIT\",\"INTEGRATION\"]}";
SchemaProperties properties = client.registerSchema("{schema-group}", "{schema-name}", schema,
SchemaFormat.AVRO);
System.out.printf("Schema id: %s, schema format: %s%n", properties.getId(), properties.getFormat());
スキーマのプロパティを取得する
Azure スキーマ レジストリから、以前に登録したスキーマのプロパティを取得します。
SchemaRegistrySchema schema = client.getSchema("{schema-id}");
System.out.printf("Schema id: %s, schema format: %s%n", schema.getProperties().getId(),
schema.getProperties().getFormat());
System.out.println("Schema contents: " + schema.getDefinition());
スキーマを取得する
Azure Schema Registry から、以前に登録したスキーマのコンテンツとプロパティを取得します。
String schemaContent = "{\n"
+ " \"type\" : \"record\", \n"
+ " \"namespace\" : \"SampleSchemaNameSpace\", \n"
+ " \"name\" : \"Person\", \n"
+ " \"fields\" : [\n"
+ " { \n"
+ " \"name\" : \"FirstName\" , \"type\" : \"string\" \n"
+ " }, \n"
+ " { \n"
+ " \"name\" : \"LastName\", \"type\" : \"string\" \n"
+ " }\n"
+ " ]\n"
+ "}";
SchemaProperties properties = client.getSchemaProperties("{schema-group}", "{schema-name}",
schemaContent, SchemaFormat.AVRO);
System.out.println("Schema id: " + properties.getId());
System.out.println("Format: " + properties.getFormat());
System.out.println("Version: " + properties.getVersion());
トラブルシューティング
ログ記録の有効化
Azure SDK for Java には、アプリケーション エラーのトラブルシューティングと解決の迅速化に役立つ一貫したログ記録のストーリーが用意されています。 生成されたログでは、最終状態に達する前のアプリケーションのフローがキャプチャされ、根本原因を特定するのに役立ちます。 ログ記録の有効化に関するガイダンスについては、ログ Wiki を参照してください。
次のステップ
その他のサンプル については、こちらを参照してください。
共同作成
このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。
pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。
このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。