Tester localement à l’aide de l’émulateur Azure Event Hubs
Cet article récapitule les étapes à suivre pour développer et tester localement à l’aide de l’émulateur Event Hubs Azure.
Prérequis
- Docker desktop
- Exigences minimales du matériel :
- 2 Go de RAM
- 5 Go d’espace disque
- Configuration du sous-système Windows pour Linux (WSL) (uniquement pour Windows) :
Remarque
Avant de poursuivre les étapes de cet article, vérifiez que Docker Desktop est opérationnel en arrière-plan.
Exécuter l’émulateur
Pour exécuter l’émulateur Event Hubs, vous pouvez utiliser un script automatisé ou un conteneur Linux :
Avant d’exécuter un script automatisé, clonez le référentiel du programme d’installation GitHub de l’émulateur localement.
Windows
Procédez comme suit pour exécuter l’émulateur Event Hubs localement sur Windows :
Autorisez l’exécution de scripts non signés en exécutant cette commande dans la fenêtre PowerShell :
$>Start-Process powershell -Verb RunAs -ArgumentList 'Set-ExecutionPolicy Bypass –Scope CurrentUser'
Exécutez le script d’installation LaunchEmulator.ps1. L’exécution du script affiche deux conteneurs : l’émulateur Event Hubs et Azurite (une dépendance pour l’émulateur).
Linux et macOS
Pour exécuter l’émulateur Event Hubs localement sur Linux ou macOS :
- Exécutez le script d’installation LaunchEmulator.sh. L’exécution du script affiche deux conteneurs : l’émulateur Event Hubs et Azurite (une dépendance pour l’émulateur).
Lorsque les étapes sont réussies, vous trouverez des conteneurs s’exécutant dans Docker.
Interagir avec l’émulateur
Par défaut, l’émulateur utilise le fichier de configuration config.json. Vous pouvez configurer des entités (rubriques Event Hubs/Kafka) en apportant des modifications au fichier de configuration. Pour en savoir plus, consultez Apporter des modifications de configuration.
Vous pouvez utiliser la chaîne de connexion suivante pour vous connecter à l’émulateur Event Hubs :
- Lorsque le conteneur de l’émulateur et l’application d’interaction s’exécutent en mode natif sur la machine locale, utilisez la chaîne de connexion suivante :
"Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Les applications (conteneurisées/non conteneurisées) sur l’autre ordinateur et le même réseau local peuvent interagir avec l’émulateur en utilisant l’adresse IPv4 de l’ordinateur. Utilisez la chaîne de connexion suivante :
"Endpoint=sb://192.168.y.z;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Les conteneurs d’applications sur le même réseau de pont peuvent interagir avec l’émulateur à l’aide de son alias ou de son adresse IP. La chaîne de connexion suivante part du principe que le nom de l’émulateur a la valeur par défaut « eventhubs-emulator » :
"Endpoint=sb://eventhubs-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Les conteneurs d’applications sur le réseau de pont différent peuvent interagir avec l’émulateur à l’aide de « host.docker.internal » en tant qu’hôte. Utilisez la chaîne de connexion suivante :
"Endpoint=sb://host.docker.internal;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
Lors de l’interaction avec Kafka, veillez à définir la configuration du producteur et du consommateur comme suit :
{
BootstrapServers = //Value of bootstrap servers would depend on kind of connection string being used
SecurityProtocol = SecurityProtocol.SaslPlaintext,
SaslMechanism = SaslMechanism.Plain,
SaslUsername = "$ConnectionString",
SaslPassword = //Value of connection string would depend on topology
};
La valeur de BootstrapServers et SaslPassword dépend de votre topologie de configuration. Pour plus d’informations, consultez la section Interagir avec l’émulateur.
Important
Lorsque vous utilisez Kafka, seules les API producteur et consommateur sont compatibles avec l’émulateur Event Hubs.
Pour commencer, reportez-vous aux exemples d’émulateur Event Hubs sur GitHub.