Delen via


integratie van .NET AspireAzure Event Hubs

Azure Event Hubs is een systeemeigen gegevensstreamingservice in de cloud die miljoenen gebeurtenissen per seconde kan streamen, met lage latentie, van elke bron naar elke bestemming. Met de .NET AspireAzure Event Hubs-integratie kunt u vanuit uw .NET toepassingen verbinding maken met Azure Event Hubs exemplaren.

Hostingintegratie

De .NET.NET AspireAzure Event Hubs-hostingintegratie modelleert de verschillende Event Hub-resources als de volgende typen:

Installeer het 📦Aspire.Hosting.Azure.EventHubs NuGet-pakket om toegang te krijgen tot deze typen en API's voor het uitdrukken ervan binnen uw app-host project.

dotnet add package Aspire.Hosting.Azure.EventHubs

Zie dotnet pakket toevoegen of Pakketafhankelijkheden beheren in .NET toepassingenvoor meer informatie.

Een Azure Event Hubs-resource toevoegen

Als u een AzureEventHubsResource wilt toevoegen aan uw app-hostproject, roept u de AddAzureEventHubs methode aan die een naam oplevert en roept u AddHubaan:

var builder = DistributedApplication.CreateBuilder(args);

var eventHubs = builder.AddAzureEventHubs("event-hubs");
eventHubs.AddHub("messages");

builder.AddProject<Projects.ExampleService>()
       .WithReference(eventHubs);

// After adding all resources, run the app...

Wanneer u een Azure Event Hubs-resource toevoegt aan de app-host, worden er andere nuttige API's weergegeven om Event Hub-resources, consumentengroepen toe te voegen, expliciete inrichtingsconfiguratie uit te drukken en het gebruik van de Azure Event Hubs emulator mogelijk te maken. Met de voorgaande code wordt een Azure Event Hubs resource met de naam event-hubs en een Event Hub met de naam messages toegevoegd aan het app-hostproject. De methode WithReference geeft de verbindingsgegevens door aan het ExampleService-project.

Belangrijk

Wanneer u AddAzureEventHubsaanroept, wordt impliciet AddAzureProvisioning(IDistributedApplicationBuilder)aangeroepen. Hiermee wordt ondersteuning toegevoegd voor het dynamisch genereren van Azure resources tijdens het opstarten van de app. De app moet het juiste abonnement en de juiste locatie configureren. Zie Lokale inrichting voor meer informatie: Configuratie

Gegenereerde voorziening Bicep

Als je nieuw bent met Bicep, is dit een domeinspecifieke taal voor het definiëren van Azure-bronnen. Met .NET.NET Aspirehoeft u bicep niet handmatig te schrijven, in plaats daarvan genereren de inrichtings-API's Bicep voor u. Wanneer u uw app publiceert, wordt de gegenereerde Bicep samen met het manifestbestand weergegeven. Wanneer u een Azure Event Hubs resource toevoegt, wordt de volgende Bicep gegenereerd:

@description('The location for the resource(s) to be deployed.')
param location string = resourceGroup().location

param sku string = 'Standard'

param principalType string

param principalId string

resource event_hubs 'Microsoft.EventHub/namespaces@2024-01-01' = {
  name: take('event_hubs-${uniqueString(resourceGroup().id)}', 256)
  location: location
  sku: {
    name: sku
  }
  tags: {
    'aspire-resource-name': 'event-hubs'
  }
}

resource event_hubs_AzureEventHubsDataOwner 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  name: guid(event_hubs.id, principalId, subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'f526a384-b230-433a-b45c-95f59c4a2dec'))
  properties: {
    principalId: principalId
    roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'f526a384-b230-433a-b45c-95f59c4a2dec')
    principalType: principalType
  }
  scope: event_hubs
}

resource messages 'Microsoft.EventHub/namespaces/eventhubs@2024-01-01' = {
  name: 'messages'
  parent: event_hubs
}

output eventHubsEndpoint string = event_hubs.properties.serviceBusEndpoint

De voorgaande Bicep is een module die een Azure Event Hubs resource in richt met de volgende standaardwaarden:

  • location: de locatie van de resourcegroep.
  • sku: de SKU van de Event Hubs-resource, wordt standaard ingesteld op Standard.
  • principalId: de principal-id van de Event Hubs-resource.
  • principalType: Het hoofdtype van de Event Hubs-resource.
  • event_hubs: de Event Hubs-naamruimteresource.
  • event_hubs_AzureEventHubsDataOwner: De eigenaar van de Event Hubs-resource op basis van de ingebouwde Azure Event Hubs Data Owner-rol. Zie Azure Event Hubs Gegevenseigenaarvoor meer informatie.
  • messages: De Event Hub-resource.
  • eventHubsEndpoint: het eindpunt van de Event Hubs-resource.

De gegenereerde Bicep is een uitgangspunt en kan worden aangepast aan uw specifieke vereisten.

Voorzieningsinfrastructuur personaliseren

Alle .NET AspireAzure resources zijn subklassen van het AzureProvisioningResource type. Met dit type kunt u de gegenereerde Bicep aanpassen door een vloeiende API te bieden waarmee u de Azure-resources kunt configureren, met behulp van de ConfigureInfrastructure<T>(IResourceBuilder<T>, Action<AzureResourceInfrastructure>)-API. U kunt bijvoorbeeld de kind, consistencyPolicy, locationsen meer configureren. In het volgende voorbeeld ziet u hoe u de AzureAzure Cosmos DB-resource aanpast:

builder.AddAzureEventHubs("event-hubs")
    .ConfigureInfrastructure(infra =>
    {
        var eventHubs = infra.GetProvisionableResources()
                             .OfType<EventHubsNamespace>()
                             .Single();

        eventHubs.Sku = new EventHubsSku()
        {
            Name = EventHubsSkuName.Premium,
            Tier = EventHubsSkuTier.Premium,
            Capacity = 7,
        };
        eventHubs.PublicNetworkAccess = EventHubsPublicNetworkAccess.SecuredByPerimeter;
        eventHubs.Tags.Add("ExampleKey", "Example value");
    });

De voorgaande code:

Er zijn nog veel meer configuratieopties beschikbaar om de Event Hubs-resourceresource aan te passen. Zie Azure.Provisioning.PostgreSqlvoor meer informatie. Zie Azure.Provisioning aanpassingvoor meer informatie.

Verbinding maken met een bestaande Azure Event Hubs-naamruimte

Mogelijk hebt u een bestaande Azure Event Hubs naamruimte waarmee u verbinding wilt maken. In plaats van een nieuwe Azure Event Hubs resource weer te geven, kunt u een verbindingsreeks toevoegen aan de app-host. Als u een verbinding wilt toevoegen aan een bestaande Azure Event Hubs-naamruimte, roept u de methode AddConnectionString aan:

var builder = DistributedApplication.CreateBuilder(args);

var eventHubs = builder.AddConnectionString("event-hubs");

builder.AddProject<Projects.WebApplication>("web")
       .WithReference(eventHubs);

// After adding all resources, run the app...

Notitie

Verbindingsreeksen worden gebruikt om een breed scala aan verbindingsgegevens weer te geven, waaronder databaseverbindingen, berichtbrokers, eindpunt-URI's en andere services. In .NET.NET Aspire nomenclatuur wordt de term "verbindingsreeks" gebruikt om alle soorten verbindingsgegevens weer te geven.

De verbindingsreeks is geconfigureerd in de configuratie van de app-host, meestal onder gebruikersgeheimen, onder de sectie ConnectionStrings. De app-host injecteert deze verbindingsreeks als een omgevingsvariabele in alle afhankelijke resources, bijvoorbeeld:

{
  "ConnectionStrings": {
    "event-hubs": "{your_namespace}.servicebus.windows.net"
  }
}

De afhankelijke resource heeft toegang tot de geïnjecteerde verbindingsreeks door de methode GetConnectionString aan te roepen en de verbindingsnaam door te geven als de parameter, in dit geval "event-hubs". De GetConnectionString-API is een afkorting voor IConfiguration.GetSection("ConnectionStrings")[name].

Event Hub-consumentengroep toevoegen

Als u een consumentengroep wilt toevoegen, koppelt u een aanroep van een IResourceBuilder<AzureEventHubsResource> aan de AddConsumerGroup-API:

var builder = DistributedApplication.CreateBuilder(args);

var eventHubs = builder.AddAzureEventHubs("event-hubs");
var messages = eventHubs.AddHub("messages");
messages.AddConsumerGroup("messagesConsumer");

builder.AddProject<Projects.ExampleService>()
       .WithReference(eventHubs);

// After adding all resources, run the app...

Wanneer u AddConsumerGroupaanroept, wordt uw messages Event Hub-resource geconfigureerd voor een consumentengroep met de naam messagesConsumer. De consumentengroep wordt gemaakt in de Azure Event Hubs naamruimte die wordt vertegenwoordigd door de AzureEventHubsResource die u eerder hebt toegevoegd. Zie Azure Event Hubsvoor meer informatie: Consumentengroepen.

Resource voor Azure Event Hubs emulator toevoegen

De .NET AspireAzure Event Hubs hostingintegratie ondersteunt het lokaal uitvoeren van de Event Hubs-resource als een emulator, op basis van de mcr.microsoft.com/azure-messaging/eventhubs-emulator/latest containerinstallatiekopieën. Dit is handig voor situaties waarin u de Event Hubs-resource lokaal wilt uitvoeren voor ontwikkelings- en testdoeleinden, zodat u geen Azure resource hoeft in te richten of verbinding wilt maken met een bestaande Azure Event Hubs-server.

Als u de Event Hubs-resource wilt uitvoeren als een emulator, roept u de RunAsEmulator methode aan:

var builder = DistributedApplication.CreateBuilder(args);

var eventHubs = builder.AddAzureEventHubs("event-hubs")
                       .RunAsEmulator();

eventHubs.AddHub("messages");

var exampleProject = builder.AddProject<Projects.ExampleProject>()
                            .WithReference(eventHubs);

// After adding all resources, run the app...

Met de voorgaande code wordt een Azure Event Hubs-resource geconfigureerd om lokaal in een container te worden uitgevoerd. Zie Azure Event Hubs Emulatorvoor meer informatie.

Event Hubs Emulator-container configureren

Er zijn verschillende configuraties beschikbaar voor containerbronnen, bijvoorbeeld: u kunt de poorten van de container configureren, gegevensbindingen, gegevensvolumes of een wholistische JSON configuratie bieden die alles overschrijft.

Containerhostpoort voor Event Hubs-emulator configureren

De Event Hubs Emulator-container wordt standaard weergegeven wanneer deze is geconfigureerd door .NET.NET Aspire. De volgende eindpunten worden weergegeven:

Eindpunt Afbeelding Containerpoort Host-poort
emulator mcr.microsoft.com/azure-messaging/eventhubs-emulator/latest 5672 dynamisch

De poort waarop wordt geluisterd, is standaard dynamisch. Wanneer de container wordt gestart, wordt de poort toegewezen aan een willekeurige poort op de hostcomputer. Als u de eindpuntpoort wilt configureren, koppel de aanroepen met behulp van de containerresourcebouwer die wordt geleverd door de RunAsEmulator methode en vervolgens de WithHostPort(IResourceBuilder<AzureEventHubsEmulatorResource>, Nullable<Int32>), zoals in het volgende voorbeeld wordt weergegeven.

var builder = DistributedApplication.CreateBuilder(args);

var eventHubs = builder.AddAzureEventHubs("event-hubs")
                       .RunAsEmulator(emulator =>
                       {
                           emulator.WithHostPort(7777);
                       });

eventHubs.AddHub("messages");

builder.AddProject<Projects.ExampleService>()
       .WithReference(eventHubs);

// After adding all resources, run the app...

Met de voorgaande code wordt het bestaande emulator-eindpunt van de Azure Event Emulator-container geconfigureerd om te luisteren op poort 7777. De poort van de Azure Event Emulator-container is toegewezen aan de hostpoort, zoals wordt weergegeven in de volgende tabel:

Eindpuntnaam Poorttoewijzing (container:host)
emulator 5672:7777
Event Hubs-emulator toevoegen met gegevensvolume

Als u een gegevensvolume wilt toevoegen aan de Event Hubs-emulatorresource, roept u de WithDataVolume methode aan op de Event Hubs Emulator-resource:

var builder = DistributedApplication.CreateBuilder(args);

var eventHubs = builder.AddAzureEventHubs("event-hubs")
                       .RunAsEmulator(emulator =>
                       {
                           emulator.WithDataVolume();
                       });

eventHubs.AddHub("messages");

builder.AddProject<Projects.ExampleService>()
       .WithReference(eventHubs);

// After adding all resources, run the app...

Het gegevensvolume wordt gebruikt om de Event Hubs-emulatorgegevens buiten de levenscyclus van de container te behouden. Het gegevensvolume wordt gekoppeld aan het /data pad in de container. Er wordt willekeurig een naam gegenereerd, tenzij u de name parameter opgeeft. Zie de Dockervoor meer informatie over gegevensvolumes en waarom ze de voorkeur krijgen boven koppelpunten.

Event Hubs-emulator toevoegen met bind-mount van gegevens

Om een bindmount toe te voegen aan de Event Hubs-emulatorcontainer, moet u een aanroep naar de WithDataBindMount-API ketenen, zoals weergegeven in het volgende voorbeeld:

var builder = DistributedApplication.CreateBuilder(args);

var eventHubs = builder.AddAzureEventHubs("event-hubs")
                       .RunAsEmulator(emulator =>
                       {
                           emulator.WithDataBindMount("/path/to/data");
                       });

eventHubs.AddHub("messages");

builder.AddProject<Projects.ExampleService>()
       .WithReference(eventHubs);

// After adding all resources, run the app...

Belangrijk

Data koppelpunten hebben een beperkte functionaliteit vergeleken met volumes, die betere prestaties, draagbaarheid en beveiliging bieden, waardoor ze geschikter zijn voor productieomgevingen. Bind mounts bieden echter directe toegang tot en wijziging van bestanden op het hostsysteem, wat ideaal is voor ontwikkeling en testen waarbij wijzigingen in real-time nodig zijn.

Gegevensbind-mounts zijn afhankelijk van het bestandssysteem van de hostcomputer om de Azure Event Hubs-emulatorbrongegevens bij herstarten van de container te behouden. De koppeling voor gegevensbinding wordt gekoppeld aan het /path/to/data pad op de hostcomputer in de container. Zie Docker docs: Bindingskoppelingenvoor meer informatie over bindingskoppelingen voor gegevens.

De configuratie van de Event Hubs-emulatorcontainer instellen JSON

De Event Hubs Emulator-container wordt uitgevoerd met een standaardbestand config.json. U kunt dit bestand volledig overschrijven of de JSON-configuratie bijwerken met een JsonNode weergave van de configuratie.

Als u een aangepast JSON-configuratiebestand wilt opgeven, roept u de methode WithConfigurationFile(IResourceBuilder<AzureEventHubsEmulatorResource>, String) aan:

var builder = DistributedApplication.CreateBuilder(args);

var eventHubs = builder.AddAzureEventHubs("event-hubs")
                       .RunAsEmulator(emulator =>
                       {
                           emulator.WithConfigurationFile("./messaging/custom-config.json");
                       });

eventHubs.AddHub("messages");

builder.AddProject<Projects.ExampleService>()
       .WithReference(eventHubs);

// After adding all resources, run the app...

Met de voorgaande code wordt de Event Hubs Emulator-container geconfigureerd voor het gebruik van een aangepast JSON configuratiebestand dat zich in ./messaging/custom-config.jsonbevindt. Dit wordt gekoppeld aan het /Eventhubs_Emulator/ConfigFiles/Config.json pad in de container als een alleen-lezen bestand. Als u in plaats daarvan specifieke eigenschappen in de standaardconfiguratie wilt overschrijven, roept u de methode WithConfiguration(IResourceBuilder<AzureEventHubsEmulatorResource>, Action<JsonNode>) aan:

var builder = DistributedApplication.CreateBuilder(args);

var eventHubs = builder.AddAzureEventHubs("event-hubs")
                       .RunAsEmulator(emulator =>
                       {
                           emulator.WithConfiguration(
                               (JsonNode configuration) =>
                               {
                                   var userConfig = configuration["UserConfig"];
                                   var ns = userConfig["NamespaceConfig"][0];
                                   var firstEntity = ns["Entities"][0];
                                   
                                   firstEntity["PartitionCount"] = 5;
                               });
                       });

eventHubs.AddHub("messages");

builder.AddProject<Projects.ExampleService>()
       .WithReference(eventHubs);

// After adding all resources, run the app...

Met de voorgaande code wordt het UserConfig knooppunt opgehaald uit de standaardconfiguratie. Vervolgens wordt de PartitionCount van de eerste entiteit bijgewerkt naar een 5.

Gezondheidscontroles van hostingintegratie

De Azure Event Hubs hostingintegratie voegt automatisch een statuscontrole toe voor de Event Hubs-resource. De statuscontrole verifieert of Event Hubs in werking is en of er een verbinding mee kan worden gemaakt.

De hostingintegratie is afhankelijk van de 📦 AspNetCore.HealthChecks.Azure. Messaging.EventHubs NuGet-pakket.

integratie van Client

Installeer de 📦Aspireom te beginnen met de .NET AspireAzure Event Hubs-clientintegratie. Voeg hetAzure.Messaging.EventHubs NuGet-pakket toe aan het project dat de applicatie-klant gebruikt, dat wil zeggen, het project voor de toepassing die de Event Hubs-client gebruikt.

dotnet add package Aspire.Azure.Messaging.EventHubs

Ondersteunde Event Hubs-clienttypen

De volgende Event Hub-clients worden ondersteund door de bibliotheek, samen met de bijbehorende opties en instellingenklassen:

Azure cliënttype opties klasse Azure .NET .NET Aspire-instellingenklasse
EventHubProducerClient EventHubProducerClientOptions AzureMessagingEventHubsProducerSettings
EventHubBufferedProducerClient EventHubBufferedProducerClientOptions AzureMessagingEventHubsBufferedProducerSettings
EventHubConsumerClient EventHubConsumerClientOptions AzureMessagingEventHubsConsumerSettings
EventProcessorClient EventProcessorClientOptions AzureMessagingEventHubsProcessorSettings
PartitionReceiver PartitionReceiverOptions AzureMessagingEventHubsPartitionReceiverSettings

De clienttypen zijn afkomstig van de Azure SDK voor .NET, net als de bijbehorende optiesklassen. De instellingenklassen worden geleverd door de .NET.NET Aspire. De instellingenklassen worden gebruikt om de clientinstanties te configureren.

Een Event Hubs-producentclient toevoegen

Roep in het Program.cs bestand van het clientgebruikte project de AddAzureEventHubProducerClient-extensiemethode aan op elke IHostApplicationBuilder om een EventHubProducerClient te registreren voor gebruik via de container voor afhankelijkheidsinjectie. De methode gebruikt een verbindingsnaamparameter.

builder.AddAzureEventHubProducerClient(connectionName: "event-hubs");

Hint

De parameter connectionName moet overeenkomen met de naam die wordt gebruikt bij het toevoegen van de Event Hubs-resource in het app-hostproject. Zie Een Azure Event Hubs-resource toevoegenvoor meer informatie.

Nadat u de EventHubProducerClienthebt toegevoegd, kunt u de clientinstantie ophalen met behulp van afhankelijkheidsinjectie. Als u bijvoorbeeld uw gegevensbronobject wilt ophalen uit een voorbeeldservice, definieert u het als een constructorparameter en zorgt u ervoor dat de klasse ExampleService is geregistreerd bij de container voor afhankelijkheidsinjectie:

public class ExampleService(EventHubProducerClient client)
{
    // Use client...
}

Zie voor meer informatie:

Aanvullende API's om rekening mee te houden

De clientintegratie biedt aanvullende API's voor het configureren van clientexemplaren. Houd rekening met de volgende API's wanneer u een Event Hubs-client moet registreren:

Azure client type Registratie-API
EventHubProducerClient AddAzureEventHubProducerClient
EventHubBufferedProducerClient AddAzureEventHubBufferedProducerClient
EventHubConsumerClient AddAzureEventHubConsumerClient
EventProcessorClient AddAzureEventProcessorClient
PartitionReceiver AddAzurePartitionReceiverClient

Alle bovengenoemde API's bevatten optionele parameters voor het configureren van de clientinstanties.

Event Hubs-producentclient met sleutel toevoegen

Er kunnen situaties zijn waarin u meerdere EventHubProducerClient exemplaren met verschillende verbindingsnamen wilt registreren. Als u keyed Event Hubs-clients wilt registreren, roept u de methode AddKeyedAzureServiceBusClient aan:

builder.AddKeyedAzureEventHubProducerClient(name: "messages");
builder.AddKeyedAzureEventHubProducerClient(name: "commands");

Belangrijk

Wanneer u sleutelservices gebruikt, wordt verwacht dat uw Event Hubs-resource twee benoemde hubs heeft geconfigureerd, één voor de messages en één voor de commands.

Vervolgens kunt u de clientexemplaren ophalen met behulp van afhankelijkheidsinjectie. Bijvoorbeeld om de clients op te halen uit een service:

public class ExampleService(
    [KeyedService("messages")] EventHubProducerClient messagesClient,
    [KeyedService("commands")] EventHubProducerClient commandsClient)
{
    // Use clients...
}

Zie Keyed-services in .NETvoor meer informatie.

Aanvullende sleutel-API's om rekening mee te houden

De client integratie biedt extra API's voor het configureren van clientinstanties met een sleutel. Houd rekening met de volgende API's wanneer u een keyed Event Hubs-client moet registreren:

Azure client type Registratie-API
EventHubProducerClient AddKeyedAzureEventHubProducerClient
EventHubBufferedProducerClient AddKeyedAzureEventHubBufferedProducerClient
EventHubConsumerClient AddKeyedAzureEventHubConsumerClient
EventProcessorClient AddKeyedAzureEventProcessorClient
PartitionReceiver AddKeyedAzurePartitionReceiverClient

Alle bovengenoemde API's bevatten optionele parameters voor het configureren van de clientinstanties.

Configuratie

De .NET AspireAzure Event Hubs-bibliotheek biedt meerdere opties voor het configureren van de Azure Event Hubs verbinding op basis van de vereisten en conventies van uw project. Een FullyQualifiedNamespace of een ConnectionString moet geleverd worden.

Een verbindingsreeks gebruiken

Wanneer u een verbindingsreeks uit de sectie ConnectionStrings configuratie gebruikt, geeft u de naam van de verbindingsreeks op bij het aanroepen van builder.AddAzureEventHubProducerClient() en andere ondersteunde Event Hubs-clients. In dit voorbeeld bevat de verbindingsreeks niet de eigenschap EntityPath, dus moet de eigenschap EventHubName worden ingesteld in de callback-instellingen:

builder.AddAzureEventHubProducerClient(
    "event-hubs",
    static settings =>
    {
        settings.EventHubName = "MyHub";
    });

Vervolgens worden de verbindingsgegevens opgehaald uit de ConnectionStrings configuratiesectie. Er worden twee verbindingsindelingen ondersteund:

Fully Qualified Namespace (FQN)

De aanbevolen methode is om een volledig gekwalificeerde naamruimte te gebruiken, die werkt met de eigenschap AzureMessagingEventHubsSettings.Credential om een verbinding tot stand te brengen. Als er geen referentie is geconfigureerd, wordt de DefaultAzureCredential gebruikt.

{
  "ConnectionStrings": {
    "event-hubs": "{your_namespace}.servicebus.windows.net"
  }
}

Verbindingsreeks

U kunt ook een verbindingsreeks gebruiken:

{
  "ConnectionStrings": {
    "event-hubs": "Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=accesskeyname;SharedAccessKey=accesskey;EntityPath=MyHub"
  }
}

Configuratieproviders gebruiken

De .NET AspireAzure Event Hubs-bibliotheek ondersteunt Microsoft.Extensions.Configuration. Het laadt de AzureMessagingEventHubsSettings en de bijbehorende opties, bijvoorbeeld EventProcessorClientOptions, uit de configuratie met behulp van het Aspire:Azure:Messaging:EventHubs: sleutelvoorvoegsel, gevolgd door de naam van de specifieke client die wordt gebruikt. Denk bijvoorbeeld aan de appsettings.json waarmee enkele van de opties voor een EventProcessorClientworden geconfigureerd:

{
  "Aspire": {
    "Azure": {
      "Messaging": {
        "EventHubs": {
          "EventProcessorClient": {
            "EventHubName": "MyHub",
            "ClientOptions": {
              "Identifier": "PROCESSOR_ID"
            }
          }
        }
      }
    }
  }
}

U kunt ook het type Opties instellen met behulp van de optionele Action<IAzureClientBuilder<EventProcessorClient, EventProcessorClientOptions>> configureClientBuilder parameter van de AddAzureEventProcessorClient methode. Als u bijvoorbeeld de client-id van de processor voor deze client wilt instellen:

builder.AddAzureEventProcessorClient(
    "event-hubs",
    configureClientBuilder: clientBuilder => clientBuilder.ConfigureOptions(
        options => options.Identifier = "PROCESSOR_ID"));

Waarneembaarheid en telemetrie

.NET .NET Aspire integraties stellen automatisch configuraties voor logging, tracering en metrieken in, ook bekend als de pijlers van waarneembaarheid. Zie .NET.NET Aspire overzicht van integratieintegratiesvoor meer informatie over de waarneembaarheid en telemetrie van integraties. Afhankelijk van de back-upservice ondersteunen sommige integraties mogelijk slechts enkele van deze functies. Sommige integraties ondersteunen bijvoorbeeld logboekregistratie en tracering, maar geen metrische gegevens. Telemetriefuncties kunnen ook worden uitgeschakeld met behulp van de technieken die worden weergegeven in de sectie Configuratie.

Loggen

De .NET AspireAzure Event Hubs-integratie maakt gebruik van de volgende logboekcategorieën:

  • Azure.Core
  • Azure.Identity

Tracering

De .NET AspireAzure Event Hubs-integratie verzendt de volgende traceringsactiviteiten met behulp van OpenTelemetry:

  • Azure.Messaging.EventHubs.*

Statistieken

De integratie van .NET AspireAzure Event Hubs biedt momenteel geen ondersteuning voor metrische gegevens vanwege beperkingen met de Azure SDK voor .NET. Als deze wijzigingen in de toekomst worden gewijzigd, wordt deze sectie bijgewerkt om deze wijzigingen weer te geven.

Zie ook