integrace .NET AspireAzure Event Hubs
V tomto článku se dozvíte, jak používat integraci .NET AspireAzure Event Hubs. Knihovna Aspire.Azure.Messaging.EventHubs
nabízí možnosti registrace následujících typů:
- EventHubProducerClient
- EventHubBufferedProducerClient
- EventHubConsumerClient
- EventProcessorClient
- PartitionReceiver
Tento typ je zaregistrovaný v kontejneru DI pro připojení k Azure Event Hubs.
Požadavky
- Azure předplatné: vytvořte si ho zdarma.
- Azure Event Hubs obor názvů: Další informace najdete v tématu přidání oboru názvů služby Event Hubs. Případně můžete použít připojovací řetězec, který se nedoporučuje v produkčních prostředích.
Začněte
Pokud chcete začít s integrací .NET AspireAzure Event Hubs, nainstalujte balíček NuGet 📦Aspire.Azure.Messaging.EventHubs do projektu využívajícího client, tedy projektu aplikace používající Azure Event Hubsclient.
dotnet add package Aspire.Azure.Messaging.EventHubs
Další informace najdete v tématu dotnet add package nebo Správa závislostí balíčků v aplikacích .NET.
Podporovaní klienti s třídami možností
Knihovna podporuje následující klienty spolu s odpovídajícími možnostmi a třídami nastavení:
typ AzureClient | Azure Options třída | .NET .NET Aspire Settings – třída |
---|---|---|
EventHubProducerClient |
EventHubProducerClientOptions |
AzureMessagingEventHubsProducerSettings |
EventHubBufferedProducerClient |
EventHubBufferedProducerClientOptions |
AzureMessagingEventHubsBufferedProducerSettings |
EventHubConsumerClient |
EventHubConsumerClientOptions |
AzureMessagingEventHubsConsumerSettings |
EventProcessorClient |
EventProcessorClientOptions |
AzureMessagingEventHubsProcessorSettings |
PartitionReceiver |
PartitionReceiverOptions |
AzureMessagingEventHubsPartitionReceiverSettings |
Typ client pochází ze sady Azure SDK pro .NET, stejně jako odpovídající třídy možností. Třídy nastavení poskytuje knihovna integrace .NET AspireAzure Event Hubs.
Příklad využití
Následující příklad předpokládá, že máte Azure Event Hubs obor názvů a centrum událostí vytvořené a chcete nakonfigurovat EventHubProducerClient
pro odesílání událostí do centra událostí.
EventHubBufferedProducerClient
, EventHubConsumerClient
, EventProcessorClient
a PartitionReceiver
jsou nakonfigurované podobným způsobem.
Ve souboru Program.cs projektu využívajícího clientvyvolejte rozšíření AddAzureEventHubProducerClient
a zaregistrujte EventHubProducerClient
pro použití prostřednictvím kontejneru pro injektování závislostí.
builder.AddAzureEventHubProducerClient("eventHubsConnectionName");
Potom můžete načíst instanci EventHubProducerClient
pomocí vkládání závislostí. Pokud chcete například načíst client ze služby:
public class ExampleService(EventHubProducerClient client)
{
// Use client...
}
Další informace naleznete v dokumentaci Azureke službě Messaging.EventHubs, kde najdete příklady použití EventHubProducerClient
.
Využití hostitele aplikace
Pokud chcete do svého IDistributedApplicationBuilderpřidat podporu hostování Event Hub Azure, nainstalujte 📦Aspire.Hosting.Azure.EventHubs NuGet balíček v projektu hostitele aplikace.
dotnet add package Aspire.Hosting.Azure.EventHubs
V hostitelském projektu aplikace přidejte připojení k Event Hubu a prostředek Event Hubu a využijte toto připojení pomocí následujících metod:
var builder = DistributedApplication.CreateBuilder(args);
var eventHubs = builder.AddAzureEventHubs("eventHubsConnectionName")
.AddEventHub("MyHub");
var exampleService = builder.AddProject<Projects.ExampleService>()
.WithReference(eventHubs);
Metoda AddAzureEventHubs
načte informace o připojení z konfigurace AppHostu (například z tajných kódů uživatelů) pod konfiguračním klíčem ConnectionStrings:eventHubsConnectionName
. Metoda WithReference
předá informace o připojení do připojovacího řetězce s názvem eventHubsConnectionName
v projektu ExampleService
.
Od .NET Aspire 8.1 podporuje rozšíření Azure EventHubs pro .NET Aspire spuštění místního emulátoru pro EventHubs. Emulátor můžete použít použitím metody rozšíření RunAsEmulator()
následujícím způsobem:
var eventHubs = builder.AddAzureEventHubs("eventHubsConnectionName")
.RunAsEmulator()
.AddEventHub("MyHub");
Emulátor pro Azure EventHubs vede ke spuštění dvou kontejnerových prostředků uvnitř .NET Aspire, který je odvozen z názvu prostředku služby Event Hubs.
Důležitý
I když vytváříme Event Hub pomocí AddEventHub
ve stejnou dobu jako obor názvů, od .NET.NET Aspire verze preview-5
, připojovací řetězec nebude obsahovat vlastnost EntityPath
, takže vlastnost EventHubName
musí být nastavena ve zpětném volání nastavení upřednostňovaného client. Budoucí verze Aspire budou zahrnovat vlastnost EntityPath
v připojovacím řetězci a nebude vyžadovat, aby byla v tomto scénáři nastavena vlastnost EventHubName
.
V Program.cs souboru ExampleService
lze připojení využít pomocí volání podporovaných metod rozšíření Event Hubs client.
builder.AddAzureEventProcessorClient(
"eventHubsConnectionName",
static settings =>
{
settings.EventHubName = "MyHub";
});
Konfigurace
Knihovna .NET AspireAzure Event Hubs poskytuje několik možností konfigurace připojení Azure Event Hubs na základě požadavků a konvencí projektu. Je nutné zadat FullyQualifiedNamespace
nebo ConnectionString
.
Použijte připojovací řetězec
Při použití připojovacího řetězce z oddílu konfigurace ConnectionStrings
zadejte název připojovacího řetězce při volání builder.AddAzureEventHubProducerClient()
a dalších podporovaných klientů služby Event Hubs. V tomto příkladu připojovací řetězec neobsahuje vlastnost EntityPath
, takže vlastnost EventHubName
musí být nastavena v zpětném volání nastavení:
builder.AddAzureEventHubProducerClient(
"eventHubsConnectionName",
static settings =>
{
settings.EventHubName = "MyHub";
});
A poté se z oddílu konfigurace ConnectionStrings
načtou informace o připojení. Podporují se dva formáty připojení:
Plně kvalifikovaný obor názvů (FQN)
Doporučeným přístupem je použít plně kvalifikovaný obor názvů, který pracuje s vlastností AzureMessagingEventHubsSettings.Credential
pro navázání připojení. Pokud nejsou nakonfigurované žádné přihlašovací údaje, použije se DefaultAzureCredential.
{
"ConnectionStrings": {
"eventHubsConnectionName": "{your_namespace}.servicebus.windows.net"
}
}
Připojovací řetězec
Případně použijte připojovací řetězec:
{
"ConnectionStrings": {
"eventHubsConnectionName": "Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=accesskeyname;SharedAccessKey=accesskey;EntityPath=MyHub"
}
}
Použití zprostředkovatelů konfigurace
Knihovna .NET AspireAzure Event Hubs podporuje Microsoft.Extensions.Configuration. Načte AzureMessagingEventHubsSettings
a související možnosti, například EventProcessorClientOptions
, z konfigurace s použitím předpony klíče Aspire:Azure:Messaging:EventHubs:
, po které následuje název konkrétního používaného client. Představte si například appsettings.json, který konfiguruje některé možnosti pro EventProcessorClient
:
{
"Aspire": {
"Azure": {
"Messaging": {
"EventHubs": {
"EventProcessorClient": {
"EventHubName": "MyHub",
"ClientOptions": {
"Identifier": "PROCESSOR_ID"
}
}
}
}
}
}
}
Typ Možnosti můžete také nastavit pomocí volitelného parametru Action<IAzureClientBuilder<EventProcessorClient, EventProcessorClientOptions>> configureClientBuilder
metody AddAzureEventProcessorClient
. Pokud chcete například nastavit ID client procesoru pro tento client:
builder.AddAzureEventProcessorClient(
"eventHubsConnectionName",
configureClientBuilder: clientBuilder => clientBuilder.ConfigureOptions(
options => options.Identifier = "PROCESSOR_ID"));
Pozorovatelnost a telemetrie
.NET .NET Aspire integrace automaticky nastaví konfigurace pro protokolování, trasování a metriky, které se někdy označují jako pilíře pozorovatelnosti. Další informace o pozorovatelnosti a telemetrii integrace najdete v přehledu integrace .NET.NET Aspire. V závislosti na zálohovací službě můžou některé integrace podporovat pouze některé z těchto funkcí. Například některé integrace podporují protokolování a trasování, ale ne metriky. Funkce telemetrie je také možné zakázat pomocí technik uvedených v části Konfigurace.
Protokolování
Integrace .NET AspireAzure Event Hubs používá následující kategorie protokolů:
Azure.Core
Azure.Identity
Trasování
Integrace .NET AspireAzure Event Hubs pomocí OpenTelemetryvygeneruje následující aktivity trasování:
- "Azure.Messaging.EventHubs.*"
Metriky
Integrace .NET AspireAzure Event Hubs v současné době nepodporuje metriky ve výchozím nastavení kvůli omezením sady Azure SDK pro .NET. Pokud se tyto změny v budoucnu změní, bude tato část aktualizována tak, aby odrážela tyto změny.
Viz také
- Azure Event Hubs
- integrace .NET.NET Aspire
- .NET Aspire GitHub úložiště