Azure Schema Registry-Clientbibliothek für .NET– Version 1.3.0

Azure Schema Registry ist ein von Azure Event Hubs gehosteter Schemarepositorydienst, der Schemaspeicherung, Versionsverwaltung und -verwaltung bereitstellt. Die Registrierung wird von Serialisierern genutzt, um die Nutzlastgröße zu reduzieren und die Nutzlaststruktur mit Schemabezeichnern anstelle vollständiger Schemas zu beschreiben.

Erste Schritte

Installieren des Pakets

Installieren Sie die Azure Schema Registry-Clientbibliothek für .NET mit NuGet:

dotnet add package Azure.Data.SchemaRegistry

Voraussetzungen

Wenn Sie einen Event Hubs-Namespace erstellen müssen, können Sie das Azure-Portal oder Azure PowerShell verwenden.

Sie können Azure PowerShell verwenden, um den Event Hubs-Namespace mit dem folgenden Befehl zu erstellen:

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

Authentifizieren des Clients

Um mit dem Azure Schema Registry-Dienst zu interagieren, müssen Sie eine instance der Schemaregistrierungsclientklasse erstellen. Zum Erstellen dieses Clients benötigen Sie Azure-Ressourcenanmeldeinformationen und den Event Hubs-Namespacehostnamen.

Abrufen von Anmeldeinformationen

Informationen zum Abrufen authentifizierter Anmeldeinformationen und zum Beginn der Interaktion mit Azure-Ressourcen finden Sie in der Schnellstartanleitung hier.

Abrufen des Hostnamens des Event Hubs-Namespaces

Die einfachste Möglichkeit besteht darin, die Azure-Portal zu verwenden und zu Ihrem Event Hubs-Namespace zu navigieren. Auf der Registerkarte Übersicht wird angezeigt Host name. Kopieren Sie den Wert aus diesem Feld.

Erstellen von SchemaRegistryClient

Sobald Sie über die Anmeldeinformationen der Azure-Ressource und den Hostnamen des Event Hubs-Namespace verfügen, können Sie den SchemaRegistryClient erstellen. Sie benötigen auch das Azure.Identity-Paket , um die Anmeldeinformationen zu erstellen.

// 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());

Wichtige Begriffe

Schemas

Ein Schema verfügt über 6 Komponenten:

  • Gruppenname: Der Name der Gruppe von Schemas in der Schemaregistrierung instance.
  • Schemaname: Der Name des Schemas.
  • Schema-ID: Die ID, die von der Schemaregistrierung instance für das Schema zugewiesen wird.
  • Schemaformat: Das Format, das für die Serialisierung des Schemas verwendet wird. Beispiel: Avro.
  • Schemainhalt: Die Zeichenfolgendarstellung des Schemas.
  • Schemaversion: Die Dem Schema in der Schemaregistrierung instance zugewiesene Version.

Diese Komponenten spielen unterschiedliche Rollen. Einige werden als Eingabe für die Vorgänge verwendet, einige sind Ausgaben. Derzeit macht SchemaProperties nur die Eigenschaften verfügbar, die potenzielle Ausgaben sind, die in SchemaRegistry-Vorgängen verwendet werden. Diese verfügbar gemachten Eigenschaften sind Content und Id.

Threadsicherheit

Wir garantieren, dass alle Client-instance Methoden threadsicher und voneinander unabhängig sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch über Threads hinweg.

Zusätzliche Konzepte

Clientoptionen | Zugreifen auf die Antwort | Vorgänge | mit langer AusführungsdauerBehandeln von Fehlern | Diagnose | Spott | Clientlebensdauer

Beispiele

Im Folgenden finden Sie Beispiele dafür, was über SchemaRegistryClientverfügbar ist. Für diese Clientvorgänge stehen sowohl Synchronisierungsmethoden als auch asynchrone Methoden zur Verfügung.

Registrieren eines Schemas

Registrieren Sie ein Schema, das in der Azure Schema Registry gespeichert werden soll.

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);

Abrufen einer Schema-ID

Rufen Sie eine zuvor registrierte Schema-ID aus der Azure Schema Registry ab.

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;

Abrufen eines Schemas

Rufen Sie den Inhalt eines zuvor registrierten Schemas aus der Azure-Schemaregistrierung mit einer Schema-ID oder dem Gruppennamen, schemanamen und der Version ab.

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

Problembehandlung

Informationen zu den Schritten zur Problembehandlung werden bereitgestellt, wenn potenzielle Probleme erkannt werden.

Nächste Schritte

Weitere Informationen finden Sie unter Azure Schema Registry .

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Weitere Informationen finden Sie unter cla.microsoft.com.

Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.

Aufrufe