Azure Queue Storage
Consumes messages from Microsoft Azure Queue Storage queues for event ingestion and processing.
Sync Type: Incremental
Overview
The Azure Queue Storage input connector establishes a connection to Azure Queue Storage to ingest message data. It continuously polls queues for messages, dequeues them, emits the message data, and deletes successfully processed messages from the queue. Messages are automatically decoded from base64 format when applicable.
Prerequisites
Before setting up the Azure Queue Storage input, ensure you have:
- A Microsoft Azure account with an active subscription
- An Azure Storage account with Queue Storage enabled
- One or more message queues created in the storage account
- A registered application in Azure Entra ID with appropriate permissions
- Access to the storage account access key or connection string
Required Permissions
The application requires the following permissions:
- Storage Queue Data Message Processor role on the storage account
- This role provides permissions to read (dequeue), process, and delete messages from queues
Setting up API Access
1. Create a Storage Account and Queue
- Navigate to the Azure Portal
- Create a Storage Account:
- Go to "Create a resource" → "Storage" → "Storage account"
- Configure the storage account settings (name, subscription, resource group, location)
- Choose an appropriate redundancy level and performance tier
- Create a queue within the storage account:
- Navigate to your Storage account
- Click "Queues" in the left sidebar under "Data storage"
- Click "+ Queue"
- Enter a queue name (e.g.,
myqueue,notifications,events)
2. Register Application in Azure Entra ID
- Open the App Registration page in Azure Entra ID
- Select "New Registration"
- Add a name for your application (e.g., "Monad-Queue-Consumer")
- Click "Register"
- Save the
Application (client) IDandDirectory (tenant) IDfrom the Overview page - Navigate to "Certificates & secrets"
- Click "New client secret"
- Add a description and set an expiration (recommend 12 months)
- Copy the client secret value immediately (it will not be visible again)
3. Assign Storage Queue Permissions
- Navigate to your Storage account in the Azure Portal
- Click "Access control (IAM)" in the left menu
- Select "Add" → "Add role assignment"
- Search for and choose the "Storage Queue Data Message Processor" role
- Click "Next"
- Select "User, group, or service principal"
- Click "Select members"
- Search for your registered application name
- Select the application and click "Select"
- Click "Review + assign"
Configuration
Settings
| Setting | Type | Required | Description |
|---|---|---|---|
| Account Name | string | Yes | The name of the Azure Storage account (e.g., mystorageaccount). This is the first part of your storage account URL before .queue.core.windows.net |
| Queue Name | string | Yes | The name of the specific queue to consume messages from. Separate multiple queues by creating separate connectors with different queue names |
| Tenant ID | string | Yes | The Azure Entra ID tenant (directory) ID where your application is registered |
| Decode Base64 Messages | boolean | No | Decode message text from base64 before storing. Enable if your queue messages are base64-encoded (e.g., sent via Azure SDK defaults). |
| Visibility Timeout (seconds) | Integer | No | How long a dequeued message stays invisible to other consumers while being processed. If not deleted within this window, the message reappears in the queue. Min: 1, Max: 43200 (12 hours). Defaults to 30 if 0. |
| Use Synthetic Data | boolean | No | Generate synthetic demo data instead of connecting to the real storage account |
Secrets
| Secret | Type | Required | Description |
|---|---|---|---|
| Client ID | string | Yes | The application (client) ID from your Azure Entra ID app registration |
| Client Secret | string | Yes | The client secret value from your Azure Entra ID app registration |
How It Works
Message Processing Details
- DeQueueCount Tracking: Messages dequeued more than once are skipped to prevent reprocessing of problematic messages
- Base64 Decoding: Message text is automatically base64-decoded when possible, with fallback to raw text if decoding fails
- Message Lifetime: Messages remain in the queue until successfully processed and deleted
- Queue Draining: When the queue is empty, the connector creates a checkpoint and waits for the next polling interval
Performance Considerations
- Polling Interval: Connector polls every 30 seconds for new messages
- Batch Size: Dequeues up to 32 messages per API request
- Queue Visibility: Dequeued messages are invisible to other consumers for a visibility timeout period (default: 300 seconds)
- Scaling: Process multiple queues by creating separate connectors for each queue name