This repository contains the scripts required to install and run the Azure Service Bus Emulator.
Azure Service Bus is a fully managed enterprise message broker offering queues and publish-subscribe topics. It decouples applications and services, providing benefits like load-balancing across workers, safe data and control routing, and reliable transactional coordination. Read more here.
The Azure Service Bus emulator offers a local development experience for the Service bus service. You can use the emulator to develop and test code against the service in isolation, free from cloud interference.
Caution
Emulator is intended solely for development and testing scenarios.Any kind of Production use is strictly discouraged. There is no official support provided for Emulator. Any issues/suggestions should be reported via GitHub issues on GitHub project.
This section summarizes the steps to develop and test locally with Service Bus Emulator. To read more about Service Bus, read here.
- Docker
- Minimum hardware Requirements:
- 2 GB RAM
- 5 GB of Disk space
- WSL Enablement (Only for Windows):
Note
Before you continue with the subsequent steps, make sure Docker Engine is operational in the background.
This section highlights different steps to run Service Bus Emulator. Details are as follows:
Before running automated script, clone the installation repository locally.
After completing the prerequisites, you can proceed with the following steps to run the Service Bus Emulator locally.
- Before executing the setup script, we need to allow execution of unsigned scripts. Run the below command in the PowerShell window:
$>Start-Process powershell -Verb RunAs -ArgumentList 'Set-ExecutionPolicy Bypass –Scope CurrentUser’
- Execute setup script
LaunchEmulator.ps1
. Running the script would bring up two containers – Service Bus Emulator & Azure SQL Edge (dependency for Emulator)
After completing the prerequisites, you can proceed with the following steps to run the Service Bus Emulator locally.
-
Execute the setup script
LaunchEmulator.sh
. Running the script would bring up two containers – Service Bus Emulator & Azure SQL Edge (dependency for Emulator) -
Execute the same script
LaunchEmulator.sh
with the option--compose-down=Y
to issue adocker compose down
to terminate the containers.
LaunchEmulator.sh --compose-down=Y
You can also spin up Emulator using Docker Compose file directly. Refer here for details:
Once the steps are successful, Emulator compose set can be found running in Docker.
By default, emulator uses config.json configuration file. You can configure entities by making changes to configuration file. To know more, visit make configuration changes.
Note
Service Bus emulator isn't compatible with the community owned open source Service Bus Explorer
You can use the following connection string to connect to the Service Bus emulator:
- When the emulator container and interacting application are running natively on local machine, use following connection string:
"Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Applications (Containerized/Non-containerized) on the different machine and same local network can interact with Emulator using the IPv4 address of the machine. Use following connection string:
"Endpoint=sb://192.168.y.z;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Application containers on the same bridge network can interact with Emulator using its alias or IP. Following connection string assumes the name of Emulator container is "servicebus-emulator":
"Endpoint=sb://servicebus-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Application containers on the different bridge network can interact with Emulator using the "host.docker.internal" as host. Use following connection string:
"Endpoint=sb://host.docker.internal;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
You can use the latest client SDKs to interact with the Service Bus emulator across various programming languages. To get started, refer to the Service Bus emulator samples on GitHub.
There is no official support provided for Emulator.Any issues/suggestions should be reported via GitHub issues on installation repo.
The scripts and documentation in this project are released under the MIT License.
The software (Azure Service Bus Emulator and Sql Edge) that the scripts in this repository install are licensed under separate terms. Refer to the terms governing each software below: