intégration de .NET AspireAzure Service Bus
Les applications natives cloud nécessitent souvent une communication avec des services de messagerie tels que Azure Service Bus. Les services de messagerie permettent de dissocier les applications et d’activer des scénarios qui s’appuient sur des fonctionnalités telles que les files d’attente, les rubriques et les abonnements, les transactions atomiques, l’équilibrage de charge, etc. L’intégration .NET Aspire Service Bus gère les problèmes suivants pour connecter votre application à Azure Service Bus:
- Un ServiceBusClient est inscrit dans le conteneur DI pour la connexion à Azure Service Bus.
- Applique les configurations
ServiceBusClient
soit dans le code, soit dans les paramètres du fichier de configuration.
Conditions préalables
- abonnement Azure - en créer un gratuitement
- Azure Service Bus espace de noms, découvrez comment ajouter un espace de noms Service Bus. Vous pouvez également utiliser une chaîne de connexion, qui n’est pas recommandée dans les environnements de production.
Démarrer
Pour commencer à utiliser l’intégration .NET AspireAzure Service Bus, installez le package NuGet 📦Aspire.Azure.Messaging.ServiceBus dans le projet qui consomme client, autrement dit, le projet pour l’application qui utilise le Azure Service Busclient.
dotnet add package Aspire.Azure.Messaging.ServiceBus
Pour plus d’informations, consultez dotnet add package ou Gérer les dépendances de package dans .NET applications.
Exemple d’utilisation
Dans le fichier Program.cs de votre projet consommant client, appelez l’extension AddAzureServiceBusClient pour inscrire un ServiceBusClient
à utiliser via le conteneur d’injection de dépendances.
builder.AddAzureServiceBusClient("messaging");
Pour récupérer l’instance de ServiceBusClient configurée à l’aide de l’injection de dépendances, exigez-la en tant que paramètre de constructeur. Par exemple, pour récupérer le client à partir d’un exemple de service :
public class ExampleService(ServiceBusClient client)
{
// ...
}
Utilisation de l’hôte d’application
Pour ajouter
dotnet add package Aspire.Hosting.Azure.ServiceBus
Dans votre projet hôte d’application, inscrivez l’intégration de Service Bus et utilisez le service à l’aide des méthodes suivantes :
var builder = DistributedApplication.CreateBuilder(args);
var serviceBus = builder.ExecutionContext.IsPublishMode
? builder.AddAzureServiceBus("messaging")
: builder.AddConnectionString("messaging");
builder.AddProject<Projects.ExampleProject>()
.WithReference(serviceBus)
Configuration
L’intégration .NET.NET Aspire Service Bus fournit plusieurs options pour configurer l'ServiceBusClient
en fonction des exigences et des conventions de votre projet.
Utiliser des fournisseurs de configuration
L’intégration de Service Bus prend en charge Microsoft.Extensions.Configuration. Il charge le AzureMessagingServiceBusSettings
à partir de appsettings.json ou d’autres fichiers de configuration à l’aide de la clé Aspire:Azure:Messaging:ServiceBus
.
{
"Aspire": {
"Azure": {
"Messaging": {
"ServiceBus": {
"DisableHealthChecks": true,
"DisableTracing": false,
"ClientOptions": {
"Identifier": "CLIENT_ID"
}
}
}
}
}
}
Si vous avez configuré vos configurations dans la section Aspire:Azure:Messaging:ServiceBus
de votre fichier appsettings.json, vous pouvez simplement appeler la méthode AddAzureServiceBusClient
sans passer de paramètres.
Utiliser des délégués en ligne
Vous pouvez également passer le délégué Action<AzureMessagingServiceBusSettings>
pour configurer certaines ou toutes les options directement, par exemple pour définir le FullyQualifiedNamespace
:
builder.AddAzureServiceBusClient(
"messaging",
static settings => settings.FullyQualifiedNamespace = "YOUR_SERVICE_BUS_NAMESPACE");
Vous pouvez également configurer le ServiceBusClientOptions ServiceBusClient
pour identifier le client:
builder.AddAzureServiceBusClient(
"messaging",
static clientBuilder =>
clientBuilder.ConfigureOptions(
static options => options.Identifier = "CLIENT_ID"));
Options de configuration
Les options configurables suivantes sont exposées via la classe AzureMessagingServiceBusSettings :
Nom | Description |
---|---|
ConnectionString |
Chaîne de connexion utilisée pour se connecter à l’espace de noms Service Bus. |
Credential |
Informations d’identification utilisées pour s’authentifier auprès de l’espace de noms Service Bus. |
FullyQualifiedNamespace |
Espace de noms entièrement qualifié du Service Bus. |
DisableTracing |
Désactive le suivi pour le Service Bus client. |
†HealthCheckQueueName |
Nom de la file d’attente utilisée pour les vérifications d’intégrité. |
†HealthCheckTopicName |
Nom du sujet utilisé pour les contrôles de santé. |
† Au moins l’une des options de nom est obligatoire lors de l’activation des vérifications d’intégrité.
Observabilité et télémétrie
.NET .NET Aspire intégrations configurent automatiquement les configurations de journalisation, de suivi et de métriques, parfois appelées les piliers de l’observabilité. Pour plus d’informations sur l’observabilité de l’intégration et la télémétrie, consultez .NET.NET Aspire vue d’ensemble des intégrations. Selon le service de stockage, certaines intégrations peuvent uniquement prendre en charge certaines de ces fonctionnalités. Par exemple, certaines intégrations prennent en charge la journalisation et le suivi, mais pas les métriques. Les fonctionnalités de télémétrie peuvent également être désactivées à l’aide des techniques présentées dans la section Configuration.
Exploitation forestière
L’intégration .NET AspireAzure Service Bus utilise les catégories de journaux suivantes :
Azure.Core
Azure.Identity
Azure-Messaging-ServiceBus
Traçage
Note
La prise en charge du Service Bus ActivitySource
dans le SDK (Kit de développement logiciel) Azure pour .NET est expérimentale, et la structure des activités peut changer à l’avenir sans préavis.
Vous pouvez activer le suivi de plusieurs façons :
Définition du paramètre de configuration d'exécution
Azure.Experimental.EnableActivitySource
surtrue
. Ce qui peut être fait avec :Appelez
AppContext.SetSwitch("Azure.Experimental.EnableActivitySource", true);
.Ajoutez le paramètre
RuntimeHostConfigurationOption
à votre fichier projet :<ItemGroup> <RuntimeHostConfigurationOption Include="Azure.Experimental.EnableActivitySource" Value="true" /> </ItemGroup>
Définissez la variable d’environnement
AZURE_EXPERIMENTAL_ENABLE_ACTIVITY_SOURCE
sur « true ».- Peut être obtenu en chaînant un appel à
WithEnvironment("AZURE_EXPERIMENTAL_ENABLE_ACTIVITY_SOURCE", "true")
- Peut être obtenu en chaînant un appel à
Lorsque cette option est activée, l’intégration .NET AspireAzure Service Bus émet les activités de suivi suivantes à l’aide de 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
Pour plus d’informations, consultez :
- Azure SDK pour .NET: suivi distribué et Service Bus client.
- Azure SDK pour .NET: OpenTelemetry configuration.
- Azure SDK pour .NET: activation des fonctionnalités de suivi expérimentales.
Métriques
L’intégration .NET AspireAzure Service Bus ne prend actuellement pas en charge les métriques par défaut en raison de limitations avec le SDK Azure pour .NET. Si ces modifications seront apportées à l’avenir, cette section sera mise à jour pour refléter ces modifications.
Voir aussi
- Azure Service Bus
- intégrations .NET.NET Aspire
- .NET Aspire GitHub dépôt