integracja .NET AspireAzure Service Bus
obejmuje: integracja hostingu oraz integracja
Client
Azure Service Bus jest w pełni zarządzanym korporacyjnym brokerem wiadomości z kolejkami wiadomości i tematami publikacji i subskrypcji. Integracja .NET AspireAzure Service Bus umożliwia połączenie się z wystąpieniami Azure Service Bus za pomocą aplikacji .NET.
Integracja hostingu
.NET .NET Aspire Azure Service Bus model integracji hostingu przedstawia różne zasoby usługi Service Bus jako następujące typy:
- AzureServiceBusResource: reprezentuje zasób Azure Service Bus.
- AzureServiceBusEmulatorResource: reprezentuje zasób emulatora Azure Service Bus.
Aby uzyskać dostęp do tych typów i ich wyrażania za pomocą interfejsów API, dodaj pakiet NuGet 📦Aspire.Hosting.Azure.ServiceBus do projektu hosta aplikacji .
dotnet add package Aspire.Hosting.Azure.ServiceBus
Aby uzyskać więcej informacji, zobacz dotnet add package lub Zarządzanie zależnościami pakietów w aplikacjach .NET.
Dodawanie zasobu Azure Service Bus
W projekcie hosta aplikacji wywołaj AddAzureServiceBus, aby dodać i zwrócić obiekt typu konstruktor zasobów Azure Service Bus.
var builder = DistributedApplication.CreateBuilder(args);
var serviceBus = builder.AddAzureServiceBus("messaging");
// After adding all resources, run the app...
Po dodaniu AzureServiceBusResource do hosta aplikacji udostępnia inne przydatne API do dodawania kolejek i tematów. Innymi słowy, należy dodać AzureServiceBusResource
przed dodaniem jakiegokolwiek innego zasobu usługi Service Bus.
Ważny
Podczas wywołania AddAzureServiceBusnastępuje również niejawne wywołanie AddAzureProvisioning, 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 Konfiguracja.
Wygenerowany skrypt aprowizacji Bicep
Jeśli dopiero zaczynasz korzystać z Bicep, jest to język specyficzny dla domeny do definiowania zasobów Azure. W przypadku .NET.NET Aspire nie musisz pisać Bicep ręcznie; zamiast tego interfejsy API do tworzenia zasobów generują Bicep za Ciebie. Podczas publikowania aplikacji, wygenerowany plik Bicep zostaje wyeksportowany razem z plikiem manifestu. Po dodaniu zasobu Azure Service Bus 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 service_bus 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
name: take('servicebus-${uniqueString(resourceGroup().id)}', 50)
location: location
properties: {
disableLocalAuth: true
}
sku: {
name: sku
}
tags: {
'aspire-resource-name': 'service-bus'
}
}
resource service_bus_AzureServiceBusDataOwner 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(service_bus.id, principalId, subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '090c5cfd-751d-490a-894a-3ce6f1109419'))
properties: {
principalId: principalId
roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '090c5cfd-751d-490a-894a-3ce6f1109419')
principalType: principalType
}
scope: service_bus
}
output serviceBusEndpoint string = service_bus.properties.serviceBusEndpoint
Poprzedni Bicep jest modułem, który zapewnia przestrzeni nazw Azure Service Bus następujące wartości domyślne:
-
sku
: SKU dla przestrzeni nazw usługi Service Bus. Wartość domyślna to Standardowa. -
location
: lokalizacja przestrzeni nazw usługi Service Bus. Wartość domyślna to lokalizacja grupy zasobów.
Oprócz przestrzeni nazw w usłudze Service Bus zapewnia również wbudowaną rolę kontroli dostępu opartej na rolach (RBAC), jaką jest Azure Service Bus Data Owner (właściciel danych). Rola jest przypisywana do grupy zasobów przestrzeni nazw usługi Service Bus. Aby uzyskać więcej informacji, zobacz Azure Service Bus Właściciel danych.
Dostosowywanie infrastruktury aprowizacji
Wszystkie zasoby .NET AspireAzure to podklasy typu AzureProvisioningResource. Ten typ umożliwia dostosowanie wygenerowanego kodu Bicep, oferując interfejs API umożliwiający płynną konfigurację zasobów Azure za pomocą API ConfigureInfrastructure<T>(IResourceBuilder<T>, Action<AzureResourceInfrastructure>). Na przykład, można skonfigurować jednostkę magazynową (SKU), lokalizację oraz inne parametry. W poniższym przykładzie pokazano, jak dostosować zasób Azure Service Bus:
builder.AddAzureServiceBus("service-bus")
.ConfigureInfrastructure(infra =>
{
var serviceBusNamespace = infra.GetProvisionableResources()
.OfType<ServiceBusNamespace>()
.Single();
serviceBusNamespace.Sku = new ServiceBusSku
{
Tier = ServiceBusSkuTier.Premium
};
serviceBusNamespace.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().
- Pobrano pojedynczy element ServiceBusNamespace.
- ServiceBusNamespace.Sku utworzone za pomocą ServiceBusSkuTier.Premium
- Tag jest dodawany do przestrzeni nazw usługi Service Bus z kluczem
ExampleKey
i wartościąExample value
.
Dostępnych jest wiele opcji konfiguracji umożliwiających dostosowanie zasobu Azure Service Bus. Aby uzyskać więcej informacji, zobacz Azure.Provisioning.ServiceBus. Aby uzyskać więcej informacji, zobacz Azure. Dostosowywanie konfiguracji.
Połącz się z istniejącą przestrzenią nazw Azure Service Bus
Być może istnieje przestrzeń nazw Azure Service Bus, do której chcesz się połączyć. Zamiast tworzyć nowy zasób Azure Service Bus, można dodać ciąg połączenia do hosta aplikacji. Aby dodać połączenie z istniejącą przestrzenią nazw Azure Service Bus, wywołaj metodę AddConnectionString:
var builder = DistributedApplication.CreateBuilder(args);
var serviceBus = builder.AddConnectionString("messaging");
builder.AddProject<Projects.WebApplication>("web")
.WithReference(serviceBus);
// After adding all resources, run the app...
Notatka
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": {
"messaging": "Endpoint=sb://{namespace}.servicebus.windows.net/;SharedAccessKeyName={key_name};SharedAccessKey={key_value};"
}
}
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 "messaging"
. Interfejs API GetConnectionString
jest skrótem dla IConfiguration.GetSection("ConnectionStrings")[name]
.
Dodaj kolejkę Azure Service Bus
Aby dodać kolejkę Azure Service Bus, wywołaj metodę AddServiceBusQueue w IResourceBuilder<AzureServiceBusResource>
:
var builder = DistributedApplication.CreateBuilder(args);
var serviceBus = builder.AddAzureServiceBus("messaging");
serviceBus.AddServiceBusQueue("queue");
// After adding all resources, run the app...
Podczas wywoływania AddServiceBusQueue(IResourceBuilder<AzureServiceBusResource>, String, String), konfiguruje się zasoby usługi Service Bus, aby utworzyć kolejkę o nazwie queue
. Kolejka jest tworzona w przestrzeni nazw usługi Service Bus reprezentowanej przez dodany wcześniej AzureServiceBusResource
. Aby uzyskać więcej informacji, zobacz Kolejki, tematy i subskrypcje w Azure Service Bus.
Dodać temat Azure Service Bus i subskrypcję
Aby dodać temat Azure Service Bus, wywołaj metodę AddServiceBusTopic w IResourceBuilder<AzureServiceBusResource>
:
var builder = DistributedApplication.CreateBuilder(args);
var serviceBus = builder.AddAzureServiceBus("messaging");
serviceBus.AddServiceBusTopic("topic");
// After adding all resources, run the app...
Podczas wywoływania AddServiceBusTopic(IResourceBuilder<AzureServiceBusResource>, String, String) program konfiguruje zasoby usługi Service Bus tak, aby miał topik o nazwie topic
. Temat jest tworzony w przestrzeni nazw usługi Service Bus, reprezentowanej przez AzureServiceBusResource
, którą dodałeś wcześniej.
Aby dodać subskrypcję tematu, wywołaj metodę AddServiceBusSubscription w IResourceBuilder<AzureServiceBusTopicResource>
i skonfiguruj ją przy użyciu metody WithProperties:
using Aspire.Hosting.Azure;
var builder = DistributedApplication.CreateBuilder(args);
var serviceBus = builder.AddAzureServiceBus("messaging");
var topic = serviceBus.AddServiceBusTopic("topic");
topic.AddServiceBusSubscription("sub1")
.WithProperties(subscription =>
{
subscription.MaxDeliveryCount = 10;
subscription.Rules.Add(
new AzureServiceBusRule("app-prop-filter-1")
{
CorrelationFilter = new()
{
ContentType = "application/text",
CorrelationId = "id1",
Subject = "subject1",
MessageId = "msgid1",
ReplyTo = "someQueue",
ReplyToSessionId = "sessionId",
SessionId = "session1",
SendTo = "xyz"
}
});
});
// After adding all resources, run the app...
Powyższy kod nie tylko dodaje temat i tworzy i konfiguruje subskrypcję o nazwie sub1
dla tematu. Subskrypcja ma maksymalną liczbę dostaw 10
i regułę o nazwie app-prop-filter-1
. Reguła jest filtrem korelacji, który filtruje komunikaty na podstawie właściwości ContentType
, CorrelationId
, Subject
, MessageId
, ReplyTo
, ReplyToSessionId
, SessionId
i SendTo
.
Aby uzyskać więcej informacji, zobacz Kolejki, tematy i subskrypcje w Azure Service Bus.
Dodawanie zasobu emulatora Azure Service Bus
Aby dodać zasób emulatora Azure Service Bus, połącz wywołanie <IResourceBuilder<AzureServiceBusResource>>
z interfejsem API RunAsEmulator:
var builder = DistributedApplication.CreateBuilder(args);
var serviceBus = builder.AddAzureServiceBus("messaging")
.RunAsEmulator();
// After adding all resources, run the app...
Kiedy wywołasz RunAsEmulator
, zasoby usługi Service Bus są konfigurowane do uruchamiania lokalnie przy użyciu emulatora. Emulator w tym przypadku to Azure Service Bus Emulator. Emulator Azure Service Bus zapewnia bezpłatne środowisko lokalne do testowania aplikacji Azure Service Bus i jest doskonałym towarzyszem integracji .NET AspireAzure hostingu. Emulator nie jest zainstalowany, a zamiast tego jest dostępny do .NET.NET Aspire jako kontener. Po dodaniu kontenera do hosta aplikacji, jak pokazano w poprzednim przykładzie z obrazem mcr.microsoft.com/azure-messaging/servicebus-emulator
(i obrazem towarzyszącym mcr.microsoft.com/azure-sql-edge
), tworzy i uruchamia kontener po uruchomieniu hosta aplikacji. Aby uzyskać więcej informacji, zobacz Cykl życia zasobów kontenera.
Konfigurowanie kontenera emulatora usługi Service Bus
Istnieją różne konfiguracje dostępne dla zasobów kontenera; na przykład można skonfigurować porty kontenera lub zapewnić kompleksową konfigurację JSON, która zastępuje wszystkie inne.
Konfigurowanie portu hosta kontenera emulatora usługi Service Bus
Domyślnie kontener emulatora usługi Service Bus 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/servicebus-emulator |
5672 | dynamiczny |
tcp |
mcr.microsoft.com/azure-sql-edge |
1433 | 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, zastosuj łańcuch wywołań na zasobie kontenera stworzonym za pomocą metody RunAsEmulator
i następnie WithHostPort(IResourceBuilder<AzureServiceBusEmulatorResource>, Nullable<Int32>), jak to pokazano w poniższym przykładzie:
var builder = DistributedApplication.CreateBuilder(args);
var serviceBus = builder.AddAzureServiceBus("messaging").RunAsEmulator(
emulator =>
{
emulator.WithHostPort(7777);
});
// After adding all resources, run the app...
Powyższy kod konfiguruje istniejący punkt końcowy emulator
w kontenerze emulatora usługi Service Bus do nasłuchiwania na porcie 7777
. Port kontenera emulatora usługi Service Bus jest mapowany na port hosta, jak pokazano w poniższej tabeli:
Nazwa punktu końcowego | Mapowanie portów (container:host ) |
---|---|
emulator |
5672:7777 |
Konfiguracja kontenera emulatora Service Bus JSON
Kontener emulatora usługi Service Bus jest uruchamiany z domyślnym plikiem config.json. Możesz całkowicie zastąpić ten plik albo zaktualizować konfigurację JSON korzystając z reprezentacji JsonNode tej konfiguracji.
Aby udostępnić niestandardowy plik konfiguracji JSON, wywołaj metodę WithConfigurationFile(IResourceBuilder<AzureServiceBusEmulatorResource>, String):
var builder = DistributedApplication.CreateBuilder(args);
var serviceBus = builder.AddAzureServiceBus("messaging").RunAsEmulator(
emulator =>
{
emulator.WithConfigurationFile(
path: "./messaging/custom-config.json");
});
Powyższy kod konfiguruje kontener emulatora usługi Service Bus do używania niestandardowego pliku konfiguracji JSON znajdującego się w ./messaging/custom-config.json
. Aby zamiast tego zastąpić określone właściwości w konfiguracji domyślnej, wywołaj metodę WithConfiguration(IResourceBuilder<AzureServiceBusEmulatorResource>, Action<JsonNode>):
var builder = DistributedApplication.CreateBuilder(args);
var serviceBus = builder.AddAzureServiceBus("messaging").RunAsEmulator(
emulator =>
{
emulator.WithConfiguration(
(JsonNode configuration) =>
{
var userConfig = configuration["UserConfig"];
var ns = userConfig["Namespaces"][0];
var firstQueue = ns["Queues"][0];
var properties = firstQueue["Properties"];
properties["MaxDeliveryCount"] = 5;
properties["RequiresDuplicateDetection"] = true;
properties["DefaultMessageTimeToLive"] = "PT2H";
});
});
// After adding all resources, run the app...
Powyższy kod pobiera węzeł UserConfig
z konfiguracji domyślnej. Następnie aktualizuje właściwości pierwszej kolejki, aby ustawić MaxDeliveryCount
na 5
, RequiresDuplicateDetection
na true
i DefaultMessageTimeToLive
na 2 hours
.
Kontrola stanu integracji hostingu
Integracja hostowania Azure Service Bus automatycznie dodaje sprawdzanie kondycji zasobu Service Bus. Test kondycji sprawdza, czy usługa Service Bus jest uruchomiona i czy można nawiązać z nim połączenie.
Integracja hostingu opiera się na pakiecie NuGet 📦 AspNetCore.HealthChecks.AzureServiceBus.
Client integracja
Aby rozpocząć pracę z integracją klienta .NET AspireAzure Service Bus, zainstaluj pakiet NuGet 📦Aspire.Azure. Messaging.ServiceBus w projekcie wykorzystującym klienta, czyli projekcie aplikacji korzystającej z klienta usługi Service Bus. Integracja klienta usługi Service Bus rejestruje wystąpienie ServiceBusClient, którego można użyć do interakcji z usługą Service Bus.
dotnet add package Aspire.Azure.Messaging.ServiceBus
Dodawanie klienta usługi Service Bus
W pliku Program.cs projektu wykorzystującego klienta wywołaj metodę rozszerzenia AddAzureServiceBusClient na dowolnym IHostApplicationBuilder, aby za pomocą kontenera wstrzykiwania zależności zarejestrować ServiceBusClient do użycia. Metoda przyjmuje parametr nazwy połączenia.
builder.AddAzureServiceBusClient(connectionName: "messaging");
Wskazówka
Parametr connectionName
musi być zgodny z nazwą używaną podczas dodawania zasobu usługi Service Bus w projekcie hosta aplikacji. Innymi słowy, kiedy wywołujesz AddAzureServiceBus
i podajesz nazwę messaging
, tej samej nazwy powinieneś użyć podczas wywoływania AddAzureServiceBusClient
. Aby uzyskać więcej informacji, zobacz Dodaj zasób Azure Service Bus.
Następnie można pobrać instancję ServiceBusClient, korzystając z mechanizmu wstrzykiwania zależności. Aby na przykład pobrać połączenie z przykładowej usługi:
public class ExampleService(ServiceBusClient client)
{
// Use client...
}
Aby uzyskać więcej informacji o wstrzykiwaniu zależności, zobacz .NETwstrzykiwanie zależności.
Dodawanie klienta usługi Service Bus z kluczami
Mogą wystąpić sytuacje, w których chcesz zarejestrować wiele wystąpień ServiceBusClient
z różnymi nazwami połączeń. Aby zarejestrować klientów usługi Service Bus z kluczami, wywołaj metodę AddKeyedAzureServiceBusClient:
builder.AddKeyedAzureServiceBusClient(name: "mainBus");
builder.AddKeyedAzureServiceBusClient(name: "loggingBus");
Ważny
W przypadku korzystania z usług opartych na kluczach należy się spodziewać, że zasób Service Bus skonfigurował dwie nazwane magistrale, jedną dla mainBus
i jedną dla loggingBus
.
Następnie, korzystając z wstrzykiwania zależności, można uzyskać wystąpienia ServiceBusClient
. Aby na przykład pobrać połączenie z przykładowej usługi:
public class ExampleService(
[FromKeyedServices("mainBus")] ServiceBusClient mainBusClient,
[FromKeyedServices("loggingBus")] ServiceBusClient loggingBusClient)
{
// Use clients...
}
Aby uzyskać więcej informacji na temat usług oznaczonych kluczami, odwołaj się do ".NET wstrzykiwanie zależności: usługi oznaczone kluczami".
Konfiguracja
Integracja .NET AspireAzure Service Bus udostępnia wiele opcji konfigurowania połączenia na podstawie wymagań i konwencji projektu.
Użyj łańcucha połączenia
W przypadku używania parametrów połączenia z sekcji konfiguracji ConnectionStrings
podczas wywoływania metody AddAzureServiceBusClient można podać nazwę parametrów połączenia:
builder.AddAzureServiceBusClient("messaging");
Następnie parametry połączenia są pobierane z sekcji konfiguracji ConnectionStrings
:
{
"ConnectionStrings": {
"messaging": "Endpoint=sb://{namespace}.servicebus.windows.net/;SharedAccessKeyName={keyName};SharedAccessKey={key};"
}
}
Aby uzyskać więcej informacji na temat formatowania tych parametrów połączenia, zobacz dokumentację ConnectionString.
Korzystanie z dostawców konfiguracji
Integracja .NET AspireAzure Service Bus obsługuje Microsoft.Extensions.Configuration. Ładowanie AzureMessagingServiceBusSettings z konfiguracji odbywa się za pomocą klucza Aspire:Azure:Messaging:ServiceBus
. Poniższy fragment kodu to przykład pliku appsettings.json, który konfiguruje niektóre opcje:
{
"Aspire": {
"Azure": {
"Messaging": {
"ServiceBus": {
"ConnectionString": "Endpoint=sb://{namespace}.servicebus.windows.net/;SharedAccessKeyName={keyName};SharedAccessKey={key};",
"DisableTracing": false
}
}
}
}
}
Aby zapoznać się z pełnym schematem integracji klienta usługi Service Bus JSON, zobacz Aspire.Azure. Messaging.ServiceBus/ConfigurationSchema.json.
Używanie delegatów wbudowanych
Możesz również przekazać delegata Action<AzureMessagingServiceBusSettings> configureSettings
, aby skonfigurować niektóre lub wszystkie opcje bezpośrednio w kodzie, na przykład w celu wyłączenia śledzenia:
builder.AddAzureServiceBusClient(
"messaging",
static settings => settings.DisableTracing = true);
Można również skonfigurować Azure.Messaging.ServiceBus.ServiceBusClientOptions przy użyciu opcjonalnego parametru Action<ServiceBusClientOptions> configureClientOptions
metody AddAzureServiceBusClient
. Aby na przykład ustawić sufiks nagłówka ServiceBusClientOptions.Identifier user-agent dla wszystkich żądań wysyłanych przez tego klienta:
builder.AddAzureServiceBusClient(
"messaging",
configureClientOptions:
clientOptions => clientOptions.Identifier = "myapp");
Client kontrole stanu integracji
Domyślnie .NET.NET Aspire integracje umożliwiają kontrolę stanu wszystkich usług. Aby uzyskać więcej informacji, zobacz omówienie integracji .NET.NET Aspire.
Integracja .NET AspireAzure Service Bus:
- Dodaje kontrolę kondycji, gdy AzureMessagingServiceBusSettings.DisableTracing jest
false
, która próbuje nawiązać połączenie z Service Bus. - Integruje się z punktem końcowym HTTP
/health
, który wymaga, aby wszystkie zarejestrowane kontrole sprawności były pomyślnie przeprowadzone, aby aplikacja została uznana za gotową do akceptowania ruchu.
Obserwowanie i telemetria
.NET
.NET Aspire integracje automatycznie konfigurują rejestrowanie, śledzenie i metryki, 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
Przemysł drzewny
Integracja .NET AspireAzure Service Bus używa następujących kategorii dzienników:
Azure.Core
Azure.Identity
Azure-Messaging-ServiceBus
Poza uzyskaniem diagnostyki Azure Service Bus dla żądań zakończonych niepowodzeniem, można skonfigurować progi opóźnienia, aby określić, które diagnostyki dotyczące pomyślnych żądań Azure Service Bus zostaną zarejestrowane. Wartości domyślne to 100 ms dla operacji punktów i 500 ms dla operacji innych niż punkt.
builder.AddAzureServiceBusClient(
"messaging",
configureClientOptions:
clientOptions => {
clientOptions.ServiceBusClientTelemetryOptions = new()
{
ServiceBusThresholdOptions = new()
{
PointOperationLatencyThreshold = TimeSpan.FromMilliseconds(50),
NonPointOperationLatencyThreshold = TimeSpan.FromMilliseconds(300)
}
};
});
Śledzenie
Integracja .NET AspireAzure Service Bus spowoduje emitowanie następujących działań śledzenia przy użyciu OpenTelemetry:
Message
ServiceBusSender.Send
ServiceBusSender.Schedule
ServiceBusSender.Cancel
ServiceBusReceiver.Receive
ServiceBusReceiver.ReceiveDeferred
ServiceBusReceiver.Peek
ServiceBusReceiver.Abandon
ServiceBusReceiver.Complete
ServiceBusReceiver.DeadLetter
ServiceBusReceiver.Defer
ServiceBusReceiver.RenewMessageLock
ServiceBusSessionReceiver.RenewSessionLock
ServiceBusSessionReceiver.GetSessionState
ServiceBusSessionReceiver.SetSessionState
ServiceBusProcessor.ProcessMessage
ServiceBusSessionProcessor.ProcessSessionMessage
ServiceBusRuleManager.CreateRule
ServiceBusRuleManager.DeleteRule
ServiceBusRuleManager.GetRules
Azure Service Bus śledzenie jest obecnie w wersji zapoznawczej, dlatego należy ustawić przełącznik eksperymentalny, aby upewnić się, że generowane są ślady.
AppContext.SetSwitch("Azure.Experimental.EnableActivitySource", true);
Aby uzyskać więcej informacji, zobacz Azure Service Bus: Śledzenie rozproszone i korelacja za pośrednictwem komunikatów usługi Service Bus.
Wskaźniki
Integracja .NET AspireAzure Service Bus obecnie nie obsługuje metryk domyślnie z powodu ograniczeń SDK Azure.
Zobacz też
- Azure Service Bus
- Omówienie integracji .NET.NET Aspire
- Omówienie integracji .NET AspireAzure
- .NET Aspire GitHub repozytorium