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:
- AzureEventHubsResource: Vertegenwoordigt een Azure Event Hubs resource op het hoogste niveau, die wordt gebruikt voor het weergeven van verzamelingen hubs en de verbindingsgegevens met de onderliggende Azure resource.
- AzureEventHubResource: Vertegenwoordigt één Event Hub-resource.
- AzureEventHubsEmulatorResource: Vertegenwoordigt een Azure Event Hubs-emulator als een containerresource.
- AzureEventHubConsumerGroupResource: Vertegenwoordigt een consumentengroep binnen een Event Hub-resource.
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 opStandard
. -
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 ingebouwdeAzure 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
, locations
en 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:
- Koppelt een aanroep naar de ConfigureInfrastructure-API:
- De parameter
infra
is een exemplaar van het AzureResourceInfrastructure type. - De voorzienbare middelen worden opgehaald door middel van het aanroepen van de GetProvisionableResources() methode.
- De resource EventHubsNamespace wordt opgehaald.
- De eigenschap EventHubsNamespace.Sku wordt toegewezen aan een nieuw exemplaar van EventHubsSku met een
Premium
naam en laag en eenCapacity
van7
. - De eigenschap PublicNetworkAccess is toegewezen aan
SecuredByPerimeter
. - Er wordt een tag toegevoegd aan de Event Hubs-resource met een sleutel van
ExampleKey
en een waarde vanExample value
.
- De parameter
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 AddConsumerGroup
aanroept, 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.json
bevindt. 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:
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 EventHubProducerClient
hebt 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:
-
Azure. Messaging.EventHubs-documentatie voor voorbeelden van het gebruik van
EventHubProducerClient
. - Afhankelijkheidsinjectie in .NET voor meer informatie over afhankelijkheidsinjectie.
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:
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:
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 EventProcessorClient
worden 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.