次の方法で共有


.NET 用 Azure Schema Registry クライアント ライブラリ - バージョン 1.3.0

Azure Schema Registry は、スキーマ ストレージ、バージョン管理、管理を提供する、Azure Event Hubsによってホストされるスキーマ リポジトリ サービスです。 レジストリはシリアライザーによって利用され、完全なスキーマではなくスキーマ識別子を使用してペイロード構造を記述しながらペイロード サイズを小さくします。

作業の開始

パッケージをインストールする

NuGet を使用して .NET 用の Azure Schema Registry クライアント ライブラリをインストールします。

dotnet add package Azure.Data.SchemaRegistry

前提条件

Event Hubs 名前空間を作成する必要がある場合は、Azure Portal または Azure PowerShellを使用できます。

Azure PowerShellを使用して、次のコマンドを使用して Event Hubs 名前空間を作成できます。

New-AzEventHubNamespace -ResourceGroupName myResourceGroup -NamespaceName namespace_name -Location eastus

クライアントを認証する

Azure Schema Registry サービスと対話するには、 Schema Registry Client クラスのインスタンスを作成する必要があります。 このクライアントを作成するには、Azure リソースの資格情報と Event Hubs 名前空間のホスト名が必要です。

資格情報の取得

認証された資格情報を取得し、Azure リソースの操作を開始するには、 こちらのクイックスタート ガイドを参照してください。

Event Hubs 名前空間のホスト名を取得する

最も簡単な方法は、Azure portalを使用して Event Hubs 名前空間に移動することです。 [概要] タブに が表示されます Host name。 このフィールドの値をコピーします。

SchemaRegistryClient を作成する

Azure リソースの資格情報と Event Hubs 名前空間のホスト名を取得したら、 SchemaRegistryClient を作成できます。 資格情報を作成するには、 Azure.Identity パッケージも必要です。

// Create a new SchemaRegistry client using the default credential from Azure.Identity using environment variables previously set,
// including AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID.
// For more information on Azure.Identity usage, see: https://github.com/Azure/azure-sdk-for-net/blob/Azure.Data.SchemaRegistry_1.3.0/sdk/identity/Azure.Identity/README.md
var client = new SchemaRegistryClient(fullyQualifiedNamespace: fullyQualifiedNamespace, credential: new DefaultAzureCredential());

主要な概念

スキーマ

スキーマには 6 つのコンポーネントがあります。

  • グループ名: スキーマ レジストリ インスタンス内のスキーマのグループの名前。
  • スキーマ名: スキーマの名前。
  • スキーマ ID: スキーマのスキーマ レジストリ インスタンスによって割り当てられた ID。
  • スキーマ形式: スキーマのシリアル化に使用される形式。 たとえば、Avro です。
  • スキーマ コンテンツ: スキーマの文字列表現。
  • スキーマ バージョン: スキーマ レジストリ インスタンス内のスキーマに割り当てられたバージョン。

これらのコンポーネントは、さまざまな役割を果たします。 操作への入力として使用されるものもあれば、出力として使用されるものもあります。 現時点では、 SchemaProperties では、SchemaRegistry 操作で使用される可能性のある出力であるプロパティのみが公開されています。 公開されるプロパティは と IdですContent

スレッド セーフ

すべてのクライアント インスタンス メソッドがスレッド セーフであり、相互に独立していることを保証します (ガイドライン)。 これにより、スレッド間であっても、クライアント インスタンスの再利用に関する推奨事項が常に安全になります。

その他の概念

クライアント オプション | 応答 | へのアクセス実行時間の長い操作 | エラーの | 処理診断 | あざける | クライアントの有効期間

を使用して使用できる内容の例を次に SchemaRegistryClient示します。 これらのクライアント操作では、同期メソッドと非同期メソッドの両方を使用できます。

スキーマを登録する

Azure スキーマ レジストリに格納するスキーマを登録します。

string name = "employeeSample";
SchemaFormat format = SchemaFormat.Avro;
// Example schema's definition
string definition = @"
{
   ""type"" : ""record"",
    ""namespace"" : ""TestSchema"",
    ""name"" : ""Employee"",
    ""fields"" : [
    { ""name"" : ""Name"" , ""type"" : ""string"" },
    { ""name"" : ""Age"", ""type"" : ""int"" }
    ]
}";

Response<SchemaProperties> schemaProperties = client.RegisterSchema(groupName, name, definition, format);

スキーマ ID を取得する

Azure スキーマ レジストリから、以前に登録したスキーマ ID を取得します。

string name = "employeeSample";
SchemaFormat format = SchemaFormat.Avro;
// Example schema's content
string content = @"
{
   ""type"" : ""record"",
    ""namespace"" : ""TestSchema"",
    ""name"" : ""Employee"",
    ""fields"" : [
    { ""name"" : ""Name"" , ""type"" : ""string"" },
    { ""name"" : ""Age"", ""type"" : ""int"" }
    ]
}";

SchemaProperties schemaProperties = client.GetSchemaProperties(groupName, name, content, format);
string schemaId = schemaProperties.Id;

スキーマを取得する

スキーマ ID またはグループ名、スキーマ名、およびバージョンを使用して、以前に登録したスキーマの内容を Azure Schema Registry から取得します。

SchemaRegistrySchema schema = client.GetSchema(schemaId);
string definition = schema.Definition;
SchemaRegistrySchema schema = client.GetSchema(groupName, name, version);
string definition = schema.Definition;

トラブルシューティング

潜在的な問題が検出されると、トラブルシューティング手順に関する情報が提供されます。

次の手順

詳細については、「 Azure スキーマ レジストリ 」を参照してください。

共同作成

このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、「 cla.microsoft.com」を参照してください。

pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。

インプレッション数