Sdílet prostřednictvím


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

Tento typ je zaregistrovaný v kontejneru DI pro připojení k Azure Event Hubs.

Požadavky

Začněte

Pokud chcete začít s integrací .NET AspireAzure Event Hubs, nainstalujte 📦Aspire.Azure. Messaging.EventHubs balíček NuGet v projektu, který využívá klienta, tj. projekt pro aplikaci, která používá klienta Azure Event Hubs.

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 klienta 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, EventProcessorClienta PartitionReceiverjsou nakonfigurované podobným způsobem.

V souboru projektu, který využívá klienta, Program.cs, použijte rozšíření AddAzureEventHubProducerClient a zaregistrujte EventHubProducerClient pro použití prostřednictvím kontejneru pro vkládání závislostí.

builder.AddAzureEventHubProducerClient("eventHubsConnectionName");

Potom můžete načíst instanci EventHubProducerClient pomocí vkládání závislostí. Například, chcete-li získat klienta 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 Azurepřidat podporu hostování Event Hub IDistributedApplicationBuilder, 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 centrum událostí pomocí AddEventHub ve stejnou dobu jako obor názvů, od .NET.NET Aspire verze preview-5nebude připojovací řetězec obsahovat vlastnost EntityPath, takže vlastnost EventHubName musí být nastavena ve funkci zpětného volání nastavení pro upřednostňovaného klienta. 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 souboru Program.csExampleServicelze připojení využít voláním podporovaných metod rozšíření klienta Event Hubs:

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 přidružené možnosti, například EventProcessorClientOptions, z konfigurace pomocí předpony klíče Aspire:Azure:Messaging:EventHubs: následované názvem konkrétního klienta, který se používá. 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 klienta procesoru pro tohoto klienta:

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é