This is an unofficial tool to test the Azure Communication Services Job Router. It will help you visualize the job router compoents, including distribution policieis, queues, workers, and jobs.
To run this tool, you need to have the following:
- An Azure Communication Services resource. You can create the resource by following the steps mentioned here Job Router Prerequesets.
- An Azure Service Bus resource with a namespace and queue. You can create the resource by following the public documentation on how to Use Azure portal to create a Service Bus namespace and a queue.
- .Net 8.0. You can download it from .Net download page.
After downloading the project and building it using Visual Studio, you need to prepare your environment as follows:
- Configure your Azure Communication Services resource events to send all Job Router-related events to the Azure Service Bus queue created in the prerequisites. For more information on setting up the events, refer to the Subscribe to Azure Communication Services events documentation.
- Modify the
app.config
file inside your project with the following details:AcsConnectionString
: Your Azure Communication Services resource connection string.ServiceBusConnectionString
: Your Azure Service Bus resource connection string.ServiceBusQueueName
: Your Azure Service Bus created queue name.
- This is an unofficial tool that you can use to test the Azure Communication Services Job Router. Use it at your own risk, as there are no guarantees that it is bug-free.
- The tool includes several shortcuts for your convenience. For example:
- You can click on
Options
and thenRefresh
(CTRL + R
) to manually refresh the lists. - You can click on
Options
and thenLegend
(CTRL + L
) to display the legend window.
- You can click on
- Some features, such as
Job Matching
Mode andClassification Policies
, are currently missing but will be added later. However, this will not affect the tool's usability, as these features are optional.
This tool will help you test the Azure Communication Services Job Router by providing the following key features:
- It visualizes the Job Router components for you, allowing you to see them in tables and understand the relationships between them.
- You can create and update Distribution Policies, Queues, Workers, and Jobs.
- It colors the row backgrounds with different colors to make it easier to track changes in component states.
- It displays different Job Router events based on actions, giving you a better understanding of when events are fired and what information each one contains.
- You can use it as a proof of concept (POC) to build your distribution policy and workers, and test how jobs will be distributed in different scenarios.
- The
JobRouterEventParser
project contains a parser for most of the Job Router events (remaining events will be added later), which can be useful if you need a parser. - The
ServiceBusReceiver
project is a Service Bus consumer that you can use as a starting point for any other project or service where you need to consume Service Bus events. - It helps you test moving components between different states, and provides descriptive error messages if you try to move between unsupported states.
Below, you can find some screenshots of the tool:
Here, you will be able to manage the Distribution Policies and Queues as follows:
- Distribution Policies: Create, update, and delete Distribution Policies.
- Queues: Create, update, and delete Queues.
Here, you will be able to manage the Workers and Jobs as follows
- Workers: Create, update, delete, respond to offers, register, and deregister workers.
- Jobs: Create, update, delete, cancel job, complete jobs, and close jobs. From the screenshot, you can notice the coloring scheme that helps identify the states of jobs and workers, as well as the events received from the Azure Service Bus
You can open this window by navigating to Options and selecting Legend (CTRL + L). This will allow you to see the possible colors for each component
If you attempt to make an unsupported move in a component state, you will receive a descriptive error message, as shown below, which will help you understand the issue
If you encounter any bugs while using the tool or have any feature requests, please open a new issue on GitHub.