integracja .NET AspireAzure Event Hubs
Azure Event Hubs to natywna usługa przesyłania strumieniowego danych w chmurze, która może przesyłać strumieniowo miliony zdarzeń na sekundę z małym opóźnieniem z dowolnego źródła do dowolnego miejsca docelowego. Integracja .NET AspireAzure Event Hubs umożliwia łączenie aplikacji .NET z instancjami Azure Event Hubs.
Integracja hostingu
.NET .NET Aspire Azure Event Hubs integracja hostingu modeluje różne zasoby Event Hub jako następujące typy:
- AzureEventHubsResource: reprezentuje zasób najwyższego poziomu Azure Event Hubs używany do reprezentowania kolekcji centrów i informacji o połączeniu z bazowym zasobem Azure.
- AzureEventHubResource: reprezentuje pojedynczy zasób Event Hub.
- AzureEventHubsEmulatorResource: reprezentuje emulator Azure Event Hubs jako zasób kontenera.
- AzureEventHubConsumerGroupResource: Reprezentuje Grupę Odbiorców w ramach zasobu Centrum Zdarzeń.
Aby uzyskać dostęp do tych typów i interfejsów API w celu ich wyrażania w projekcie hosta aplikacji , zainstaluj pakiet NuGet 📦Aspire.Hosting.Azure.EventHubs.
-
interfejsu wiersza polecenia - OdwołanieDoPakietu
dotnet add package Aspire.Hosting.Azure.EventHubs
Aby uzyskać więcej informacji, zobacz dotnet add package lub Zarządzanie zależnościami pakietów w aplikacjach .NET.
Dodawanie zasobu Azure Event Hubs
Aby dodać AzureEventHubsResource do projektu hosta aplikacji, wywołaj metodę AddAzureEventHubs podając nazwę, a następnie wywołaj AddHub:
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...
Po dodaniu zasobu Azure Event Hubs do hosta aplikacji odsłania on inne przydatne interfejsy API, które umożliwiają dodawanie zasobów centrum zdarzeń, grup odbiorców, wyrażenie jawnej konfiguracji aprowizacji oraz korzystanie z emulatora Azure Event Hubs. Powyższy kod dodaje zasób Azure Event Hubs o nazwie event-hubs
i centrum zdarzeń o nazwie messages
do projektu hosta aplikacji. Metoda WithReference przekazuje informacje o połączeniu do projektu ExampleService
.
Ważny
Podczas wywołania AddAzureEventHubsnastępuje również niejawne wywołanie AddAzureProvisioning(IDistributedApplicationBuilder), co dodaje możliwość dynamicznego generowania zasobów Azure podczas uruchamiania aplikacji. Aplikacja musi skonfigurować odpowiednią subskrypcję i lokalizację. Aby uzyskać więcej informacji, zobacz Lokalne zaopatrzenie: Konfiguracja
Wygenerowany skrypt aprowizacji Bicep
Jeśli dopiero zaczynasz przygodę z Bicep, jest to język specyficzny dla domeny, używany do definiowania zasobów Azure. W przypadku .NET.NET Aspirenie musisz pisać Bicep ręcznie; zamiast tego interfejsy API do aprowizacji generują Bicep za Ciebie. Podczas publikowania aplikacji, wygenerowany plik Bicep zostaje wyeksportowany razem z plikiem manifestu. Po dodaniu zasobu Azure Event Hubs jest generowany następujący kod Bicep:
@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
Poprzedni Bicep to moduł, który udostępnia zasób Azure Event Hubs z następującymi wartościami domyślnymi.
-
location
: lokalizacja grupy zasobów. -
sku
: jednostka SKU zasobu usługi Event Hubs domyślnie ma wartośćStandard
. -
principalId
: główny identyfikator zasobu Event Hubs. -
principalType
: Główny typ zasobu Event Hubs. -
event_hubs
: Zasób przestrzeni nazw Event Hubs. -
event_hubs_AzureEventHubsDataOwner
: właściciel zasobu Event Hubs oparty na wbudowanej roliAzure Event Hubs Data Owner
. Aby uzyskać więcej informacji, zobacz Azure Event Hubs Właściciel danych. -
messages
: zasób Centrum Zdarzeń. -
eventHubsEndpoint
: punkt końcowy zasobu usługi Event Hubs.
Wygenerowany Bicep jest punktem wyjścia i można go dopasować, aby spełnić Twoje konkretne wymagania.
Dostosowywanie infrastruktury aprowizacji
Wszystkie zasoby .NET AspireAzure to podklasy typu AzureProvisioningResource. Ten typ umożliwia dostosowanie wygenerowanego kodu Bicep, zapewniając płynny interfejs API do konfigurowania zasobów Azure przy użyciu API ConfigureInfrastructure<T>(IResourceBuilder<T>, Action<AzureResourceInfrastructure>). Można na przykład skonfigurować kind
, consistencyPolicy
, locations
i więcej. W poniższym przykładzie pokazano, jak dostosować zasób AzureAzure Cosmos DB:
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");
});
Powyższy kod:
- Łańcuch wywołania interfejsu API ConfigureInfrastructure:
- Parametr
infra
jest wystąpieniem typu AzureResourceInfrastructure. - Zasoby możliwe do aprowizacji są pobierane przez wywołanie metody GetProvisionableResources().
- Pojedynczy zasób EventHubsNamespace jest pobierany.
- Właściwość EventHubsNamespace.Sku jest przypisywana do nowego wystąpienia EventHubsSku z nazwą i warstwą
Premium
orazCapacity
7
. - Właściwość PublicNetworkAccess jest przypisana do
SecuredByPerimeter
. - Tag jest dodawany do zasobu usługi Event Hubs z kluczem
ExampleKey
i wartościąExample value
.
- Parametr
Dostępnych jest wiele opcji konfiguracji umożliwiających dostosowanie zasobu usługi Event Hubs. Aby uzyskać więcej informacji, zobacz Azure.Provisioning.PostgreSql. Aby uzyskać więcej informacji, zobacz Azure.Provisioning
dostosowywanie.
Nawiązywanie połączenia z istniejącą przestrzenią nazw Azure Event Hubs
Być może istnieje przestrzeń nazw Azure Event Hubs, do której chcesz się podłączyć. Zamiast reprezentować nowy zasób Azure Event Hubs, można dodać łańcuch połączenia do hosta aplikacji. Aby dodać połączenie z istniejącą przestrzenią nazw Azure Event Hubs, wywołaj metodę AddConnectionString:
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...
Uwaga
Parametry połączenia służą do reprezentowania szerokiego zakresu informacji o połączeniu, w tym połączeń z bazą danych, brokerów komunikatów, identyfikatorów URI punktów końcowych i innych usług. W .NET.NET Aspire nomenklaturze termin "parametry połączenia" służy do reprezentowania wszelkich informacji o połączeniu.
Ciąg połączenia jest konfigurowany w konfiguracji hosta aplikacji, zazwyczaj w obszarze Tajne dane użytkownika, w sekcji ConnectionStrings
. Host aplikacji wprowadza te parametry połączenia jako zmienną środowiskową do wszystkich zasobów zależnych, na przykład:
{
"ConnectionStrings": {
"event-hubs": "{your_namespace}.servicebus.windows.net"
}
}
Zasób zależny może uzyskać dostęp do wstrzykiwanych parametrów połączenia, wywołując metodę GetConnectionString i przekazując nazwę połączenia jako parametr, w tym przypadku "event-hubs"
. Interfejs API GetConnectionString
jest skrótem dla IConfiguration.GetSection("ConnectionStrings")[name]
.
Dodaj grupę odbiorców centrum zdarzeń
Aby dodać grupę odbiorców, połącz wywołanie IResourceBuilder<AzureEventHubsResource>
z interfejsem API AddConsumerGroup:
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...
Podczas wywoływania AddConsumerGroup
program konfiguruje zasób usługi messages
Event Hub tak, aby grupa odbiorców miała nazwę messagesConsumer
. Grupa konsumentów jest tworzona w przestrzeni nazw Azure Event Hubs reprezentowanej przez AzureEventHubsResource
, który dodałeś wcześniej. Aby uzyskać więcej informacji, zobacz Azure Event Hubs: Grupy konsumentów.
Dodawanie zasobu emulatora Azure Event Hubs
Integracja hostowania .NET AspireAzure Event Hubs obsługuje lokalne uruchamianie zasobu usługi Event Hubs jako emulatora na podstawie obrazu kontenera mcr.microsoft.com/azure-messaging/eventhubs-emulator/latest
. Jest to korzystne w sytuacjach, w których chcesz uruchomić zasób usługi Event Hubs lokalnie na potrzeby programowania i testowania, unikając konieczności aprowizacji zasobu Azure lub nawiązywania połączenia z istniejącym serwerem Azure Event Hubs.
Aby uruchomić zasób usługi Event Hubs jako emulator, wywołaj metodę RunAsEmulator:
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...
Powyższy kod konfiguruje zasób Azure Event Hubs do uruchamiania lokalnego w kontenerze. Aby uzyskać więcej informacji, zobacz Azure Event Hubs Emulator.
Konfigurowanie kontenera emulatora usługi Event Hubs
Istnieją różne konfiguracje dostępne dla zasobów kontenera; na przykład można skonfigurować porty kontenera, powiązania danych, woluminy danych lub dostarczyć całościową konfigurację JSON, która zastępuje wszystkie ustawienia.
Konfigurowanie portu hosta kontenera emulatora usługi Event Hubs
Domyślnie kontener emulatora usługi Event Hubs skonfigurowany przez .NET.NET Aspireuwidacznia następujące punkty końcowe:
Punkt końcowy | Obraz | Port kontenerowy | Port hosta |
---|---|---|---|
emulator |
mcr.microsoft.com/azure-messaging/eventhubs-emulator/latest |
5672 | dynamiczny |
Port, na który nasłuchuje, jest domyślnie dynamiczny. Po uruchomieniu kontenera port jest mapowany na losowy port na maszynie hosta. Aby skonfigurować port punktu końcowego, łańcuch wywołań konstruktora zasobów kontenera dostarczonego przez metodę RunAsEmulator
, a następnie WithHostPort(IResourceBuilder<AzureEventHubsEmulatorResource>, Nullable<Int32>), jak pokazano w poniższym przykładzie:
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...
Powyższy kod konfiguruje istniejący punkt końcowy emulator
kontenera emulatora zdarzeń Azure do nasłuchiwania na porcie 7777
. Port kontenera emulatora zdarzeń Azure jest mapowany na port hosta, jak pokazano w poniższej tabeli:
Nazwa punktu końcowego | Mapowanie portów (container:host ) |
---|---|
emulator |
5672:7777 |
Dodawanie emulatora usługi Event Hubs z woluminem danych
Aby dodać wolumin danych do zasobu emulatora usługi Event Hubs, wywołaj metodę WithDataVolume w zasobie emulatora usługi Event Hubs:
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...
Wolumin danych jest używany do utrwalania danych emulatora usługi Event Hubs poza cyklem życia kontenera. Wolumin danych jest instalowany w ścieżce /data
w kontenerze. Nazwa jest generowana losowo, chyba że zostanie określony parametr name
. Aby uzyskać więcej informacji na temat woluminów danych i szczegóły dotyczące tego, dlaczego są preferowane zamiast montowań wiązań , zobacz dokumentację Docker: Woluminy.
Dodawanie emulatora usługi Event Hubs z instalacją powiązania danych
Aby dodać montowanie powiązania do kontenera emulatora Event Hubs, połącz wywołanie interfejsu API WithDataBindMount, jak pokazano w poniższym przykładzie:
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...
Ważny
Powiązania montowań danych mają ograniczoną funkcjonalność w porównaniu z woluminami , które zapewniają lepszą wydajność, przenośność i bezpieczeństwo, dzięki czemu są bardziej odpowiednie dla środowisk produkcyjnych. Jednak mocowania bind umożliwiają bezpośredni dostęp i modyfikację plików w systemie hosta, co jest idealne dla rozwoju i testowania, gdzie potrzebne są zmiany w czasie rzeczywistym.
Montowanie wiązane danych polega na używaniu systemu plików maszyny hosta do przechowywania danych zasobów emulatora Azure Event Hubs między ponownymi uruchomieniami kontenera. Instalacja powiązania danych jest instalowana w ścieżce /path/to/data
na maszynie hosta w kontenerze. Aby uzyskać więcej informacji na temat montowania powiązań danych, zobacz dokumentację Docker: Montowanie powiązań.
Konfigurowanie konfiguracji kontenera emulatora usługi Event Hubs JSON
Kontener emulatora usługi Event Hubs jest uruchamiany z domyślnym plikiem config.json. Możesz całkowicie zastąpić ten plik lub zaktualizować konfigurację JSON, używając reprezentacji konfiguracji JsonNode.
Aby udostępnić niestandardowy plik konfiguracji JSON, wywołaj metodę WithConfigurationFile(IResourceBuilder<AzureEventHubsEmulatorResource>, String):
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...
Powyższy kod konfiguruje kontener emulatora usługi Event Hubs do używania niestandardowego pliku konfiguracji JSON znajdującego się w ./messaging/custom-config.json
. Zostanie on zainstalowany w ścieżce /Eventhubs_Emulator/ConfigFiles/Config.json
w kontenerze jako plik tylko do odczytu. Aby zamiast tego zastąpić określone właściwości w konfiguracji domyślnej, wywołaj metodę WithConfiguration(IResourceBuilder<AzureEventHubsEmulatorResource>, Action<JsonNode>):
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...
Powyższy kod pobiera węzeł UserConfig
z konfiguracji domyślnej. Następnie aktualizuje PartitionCount
pierwszego elementu do 5
.
Kontrola stanu integracji hostingu
Integracja hostowania Azure Event Hubs automatycznie dodaje kontrolę kondycji zasobu usługi Event Hubs. Kontrola kondycji sprawdza, czy usługa Event Hubs jest uruchomiona i czy można nawiązać z nim połączenie.
Integracja hostingu opiera się na 📦 AspNetCore.HealthChecks,Azure.Messaging.EventHubs pakiecie NuGet.
Client integracja
Aby rozpocząć pracę z integracją klienta .NET AspireAzure Event Hubs, zainstaluj 📦Aspire.Azure. Messaging.EventHubs pakiet NuGet w projekcie korzystającym z klienta, czyli projekt aplikacji korzystającej z klienta usługi Event Hubs.
-
interfejsu wiersza polecenia - OdwołanieDoPakietu
dotnet add package Aspire.Azure.Messaging.EventHubs
Obsługiwane typy klientów usługi Event Hubs
Następujące klienci centrum zdarzeń są obsługiwani przez bibliotekę wraz z odpowiednimi opcjami i klasami ustawień:
Typy klientów pochodzą z zestawu SDK Azure dla .NET, podobnie jak odpowiednie klasy opcji. Klasy ustawień są udostępniane przez .NET.NET Aspire. Klasy ustawień służą do konfigurowania wystąpień klienta.
Dodawanie klienta producenta usługi Event Hubs
W pliku Program.cs projektu wykorzystującego klienta wywołaj metodę rozszerzenia AddAzureEventHubProducerClient na dowolnym IHostApplicationBuilder, aby zarejestrować EventHubProducerClient do użycia przy użyciu kontenera wstrzykiwania zależności. Metoda przyjmuje parametr nazwy połączenia.
builder.AddAzureEventHubProducerClient(connectionName: "event-hubs");
Wskazówka
Parametr connectionName
musi być zgodny z nazwą używaną podczas dodawania zasobu usługi Event Hubs w projekcie hosta aplikacji. Aby uzyskać więcej informacji, zobacz Dodanie zasobu Azure Event Hubs.
Po dodaniu EventHubProducerClient
można pobrać wystąpienie klienta przy użyciu wstrzykiwania zależności. Na przykład aby pobrać obiekt źródła danych z przykładowej usługi, zdefiniuj go jako parametr konstruktora i upewnij się, że klasa ExampleService
jest zarejestrowana w kontenerze iniekcji zależności:
public class ExampleService(EventHubProducerClient client)
{
// Use client...
}
Aby uzyskać więcej informacji, zobacz:
-
Azure. Dokumentacja Messaging.EventHubs zawiera przykłady użycia
EventHubProducerClient
. - wstrzykiwanie zależności w .NET szczegóły dotyczące wstrzykiwania zależności.
Dodatkowe interfejsy API do rozważenia
Integracja klienta zapewnia dodatkowe interfejsy API do konfigurowania instancji klienta. Jeśli musisz zarejestrować klienta usługi Event Hubs, rozważ następujące interfejsy API:
Wszystkie wyżej wymienione interfejsy API zawierają opcjonalne parametry do konfigurowania wystąpień klienta.
Dodawanie klienta producenta usługi Event Hubs z kluczami
Mogą wystąpić sytuacje, w których chcesz zarejestrować wiele wystąpień EventHubProducerClient
z różnymi nazwami połączeń. Aby zarejestrować klientów usługi Event Hubs z kluczami, wywołaj metodę AddKeyedAzureServiceBusClient:
builder.AddKeyedAzureEventHubProducerClient(name: "messages");
builder.AddKeyedAzureEventHubProducerClient(name: "commands");
Ważny
W przypadku korzystania z usług opartych na kluczach oczekuje się, że zasób Event Hubs skonfigurował dwa nazwane centra, jedno dla messages
i jedno dla commands
.
Następnie można pobrać wystąpienia klienta przy użyciu wstrzykiwania zależności. Aby na przykład pobrać klientów z usługi:
public class ExampleService(
[KeyedService("messages")] EventHubProducerClient messagesClient,
[KeyedService("commands")] EventHubProducerClient commandsClient)
{
// Use clients...
}
Aby uzyskać więcej informacji, zobacz kluczowe usługi w .NET.
Dodatkowe kluczowe interfejsy API do rozważenia
Integracja klienta zapewnia dodatkowe interfejsy API do konfigurowania kluczowych wystąpień klienta. Jeśli musisz zarejestrować klienta usługi Event Hubs z kluczem, rozważ następujące interfejsy API:
Wszystkie wyżej wymienione interfejsy API zawierają opcjonalne parametry do konfigurowania wystąpień klienta.
Konfiguracja
Biblioteka .NET AspireAzure Event Hubs udostępnia wiele opcji konfigurowania połączenia Azure Event Hubs na podstawie wymagań i konwencji projektu. Wymagane jest dostarczenie FullyQualifiedNamespace
lub ConnectionString
.
Używanie parametrów połączenia
W przypadku używania parametrów połączenia z sekcji konfiguracji ConnectionStrings
podaj nazwę parametrów połączenia podczas wywoływania builder.AddAzureEventHubProducerClient()
i innych obsługiwanych klientów usługi Event Hubs. W tym przykładzie parametry połączenia nie zawierają właściwości EntityPath
, więc właściwość EventHubName
musi być ustawiona w wywołaniu zwrotnym ustawień:
builder.AddAzureEventHubProducerClient(
"event-hubs",
static settings =>
{
settings.EventHubName = "MyHub";
});
Następnie informacje o połączeniu zostaną pobrane z sekcji konfiguracji ConnectionStrings
. Obsługiwane są dwa formaty połączeń:
Pełna kwalifikowana przestrzeń nazw (FQN)
Zalecaną metodą jest użycie w pełni kwalifikowanej przestrzeni nazw, która współpracuje z właściwością AzureMessagingEventHubsSettings.Credential w celu nawiązania połączenia. Jeśli nie skonfigurowano poświadczeń, zostanie użyta DefaultAzureCredential.
{
"ConnectionStrings": {
"event-hubs": "{your_namespace}.servicebus.windows.net"
}
}
Ciąg połączenia
Alternatywnie użyj parametrów połączenia:
{
"ConnectionStrings": {
"event-hubs": "Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=accesskeyname;SharedAccessKey=accesskey;EntityPath=MyHub"
}
}
Korzystanie z dostawców konfiguracji
Biblioteka .NET AspireAzure Event Hubs obsługuje Microsoft.Extensions.Configuration. Ładuje AzureMessagingEventHubsSettings
i skojarzone opcje, np. EventProcessorClientOptions
z konfiguracji, używając prefiksu klucza Aspire:Azure:Messaging:EventHubs:
, a następnie nazwy konkretnego używanego klienta. Rozważmy na przykład appsettings.json, która konfiguruje niektóre opcje dla EventProcessorClient
:
{
"Aspire": {
"Azure": {
"Messaging": {
"EventHubs": {
"EventProcessorClient": {
"EventHubName": "MyHub",
"ClientOptions": {
"Identifier": "PROCESSOR_ID"
}
}
}
}
}
}
}
Typ opcji można również skonfigurować przy użyciu opcjonalnego parametru Action<IAzureClientBuilder<EventProcessorClient, EventProcessorClientOptions>> configureClientBuilder
metody AddAzureEventProcessorClient
. Aby na przykład ustawić identyfikator klienta procesora dla tego klienta:
builder.AddAzureEventProcessorClient(
"event-hubs",
configureClientBuilder: clientBuilder => clientBuilder.ConfigureOptions(
options => options.Identifier = "PROCESSOR_ID"));
Obserwowanie i telemetria
.NET
.NET Aspire integracje automatycznie ustawiają konfiguracje do rejestrowania, śledzenia i metryk, które są czasami nazywane filarami obserwowalności. Aby uzyskać więcej informacji na temat możliwości obserwacji integracji i telemetrii, zobacz omówienie integracji .NET.NET Aspire. W zależności od usługi pomocniczej niektóre integracje mogą obsługiwać tylko niektóre z tych funkcji. Na przykład niektóre integracje obsługują rejestrowanie i śledzenie, ale nie metryki. Funkcje telemetrii można również wyłączyć przy użyciu technik przedstawionych w sekcji konfiguracji
Rejestrowanie
Integracja .NET AspireAzure Event Hubs używa następujących kategorii dzienników:
Azure.Core
Azure.Identity
Śledzenie
Integracja .NET AspireAzure Event Hubs spowoduje emitowanie następujących działań śledzenia przy użyciu OpenTelemetry:
Azure.Messaging.EventHubs.*
Metryki
Integracja .NET AspireAzure Event Hubs obecnie nie obsługuje metryk domyślnie ze względu na ograniczenia SDK Azure dla .NET. Jeśli ta zmiana nastąpi w przyszłości, ta sekcja zostanie zaktualizowana, aby odzwierciedlić te zmiany.
Zobacz też
- Azure Event Hubs
- Omówienie integracji .NET AspireAzure
- .NET .NET Aspire integracje
- .NET Aspire GitHub repozytorium