Freigeben über


Azure Schema Registry-Clientbibliothek für Java– Version 1.3.10

Azure Schema Registry ist ein von Azure Event Hubs gehosteter Schemarepositorydienst, der Schemaspeicherung, Versionsverwaltung und -verwaltung bereitstellt. Die Registrierung wird von Anwendungen genutzt, um die Nutzlastgröße zu reduzieren, während die Nutzlaststruktur mit Schemabezeichnern und nicht mit vollständigen Schemas beschrieben wird.

Quellcode | Paket (Maven) | API-Referenzdokumentation | Produktdokumentation | Proben

Erste Schritte

Voraussetzungen

Einschließen des Pakets

BOM-Datei einfügen

Fügen Sie azure-sdk-bom in Ihr Projekt ein, um von der Allgemeinverfügbarkeitsversion der Bibliothek abhängig zu sein. Ersetzen Sie im folgenden Codeausschnitt den Platzhalter {bom_version_to_target} durch die Versionsnummer. Weitere Informationen zur BOM finden Sie in der INFODATEI FÜR AZURE SDK-STÜCKLISTEN.

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

und fügen Sie dann die direkte Abhängigkeit wie unten dargestellt ohne das Versionstag in den Abschnitt abhängigkeiten ein.

<dependencies>
    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-data-schemaregistry</artifactId>
    </dependency>
</dependencies>

Direkte Abhängigkeiten einfügen

Wenn Sie eine Abhängigkeit von einer bestimmten Version der Bibliothek annehmen möchten, die nicht in der BoM vorhanden ist, fügen Sie die direkte Abhängigkeit wie folgt zu Ihrem Projekt hinzu.

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-data-schemaregistry</artifactId>
  <version>1.3.10</version>
</dependency>

Authentifizieren des Clients

Um mit dem Azure Schema Registry-Dienst zu interagieren, müssen Sie eine instance der SchemaRegistryClient -Klasse über erstellenSchemaRegistryClientBuilder. Sie benötigen einen Endpunkt und einen API-Schlüssel , um ein Clientobjekt zu instanziieren.

Erstellen von SchemaRegistryClient mit Azure Active Directory-Anmeldeinformationen

Sie können sich mit Azure Active Directory mithilfe der Azure Identity-Bibliothek authentifizieren. Beachten Sie, dass regionale Endpunkte die AAD-Authentifizierung nicht unterstützen. Erstellen Sie eine benutzerdefinierte Unterdomäne für Ihre Ressource, um diesen Authentifizierungstyp zu verwenden.

Um den unten gezeigten DefaultAzureCredential-Anbieter oder andere Mit dem Azure SDK bereitgestellte Anmeldeinformationsanbieter zu verwenden, schließen Sie das azure-identity Paket ein:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.10.1</version>
</dependency>

Außerdem müssen Sie eine neue AAD-Anwendung registrieren und Zugriff auf den Schemaregistrierungsdienst gewähren.

Legen Sie die Werte der Client-ID, mandanten-ID und des geheimen Clientschlüssels der AAD-Anwendung als Umgebungsvariablen fest: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.

Asynchroner Client
DefaultAzureCredential azureCredential = new DefaultAzureCredentialBuilder()
    .build();
SchemaRegistryAsyncClient client = new SchemaRegistryClientBuilder()
    .fullyQualifiedNamespace("https://<your-schema-registry-endpoint>.servicebus.windows.net")
    .credential(azureCredential)
    .buildAsyncClient();
Synchronisierungsclient
DefaultAzureCredential azureCredential = new DefaultAzureCredentialBuilder()
    .build();
SchemaRegistryClient client = new SchemaRegistryClientBuilder()
    .fullyQualifiedNamespace("https://<your-schema-registry-endpoint>.servicebus.windows.net")
    .credential(azureCredential)
    .buildClient();

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.
  • Serialisierungstyp: 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.

Beispiele

Registrieren eines Schemas

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

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

Abrufen der Eigenschaften eines Schemas

Rufen Sie die Eigenschaften eines zuvor registrierten Schemas aus der Azure-Schemaregistrierung ab.

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

Abrufen eines Schemas

Rufen Sie den Inhalt und die Eigenschaften eines zuvor registrierten Schemas aus der Azure-Schemaregistrierung ab.

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

Problembehandlung

Aktivieren der Protokollierung

Azure SDKs für Java bieten einen konsistenten Protokollierungsverlauf, um die Problembehandlung von Anwendungsfehlern zu unterstützen und deren Lösung zu beschleunigen. Die erstellten Protokolle erfassen den Flow einer Anwendung, bevor sie den Endzustand erreichen. Dies trägt zur Ermittlung der Grundursache bei. Informationen zum Aktivieren der Protokollierung finden Sie im Protokollierungswiki.

Nächste Schritte

Weitere Beispiele finden Sie hier.

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Für die meisten Beiträge ist die Zustimmung zu einer Lizenzvereinbarung für Mitwirkende (Contributor License Agreement, CLA) erforderlich, in der Sie erklären, dass Sie dazu berechtigt sind, uns die Rechte für die Nutzung Ihres Beitrags zu erteilen, und dies auch tun.

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