Docs / Strand / connectors/azure-queue

Azure Queue Storage

Direction: Read / Write | Type: azure.queue

Azure Queue Storage connector for sending and receiving messages from storage queues.

Required Permissions

If using Azure RBAC (recommended), the service principal or managed identity must have the following roles:

Operation Required Azure Role
send_message Storage Queue Data Message Sender
receive_message Storage Queue Data Message Processor
Both Storage Queue Data Contributor
Tip: Assign roles at the storage account or queue level for least privilege. If using account keys for authentication, all operations are implicitly authorized.

Operations

Operation Direction Description
send_message Write Send a message to the queue
receive_message Read Receive and dequeue a message

Connector Configuration

Field Required Default Description
Authentication Type No api_key api_key for explicit credentials, role to use Azure Managed Identity / DefaultAzureCredential
Account Name Yes - Azure storage account name
Account Key Conditional - Azure storage account key (encrypted). Required when Authentication Type is api_key
Connection String No - Full Azure storage connection string (encrypted). Use instead of Account Name and Account Key to reach Azure Government, Azure China, or a private endpoint.
Account URL No - Explicit service URL, used with role auth in place of the public-cloud address (e.g. a private endpoint). Leave empty for public Azure.
Tenant ID Conditional - Your Azure AD tenant ID. Required when Authentication Type is role. The Tendrl app must be registered/consented in this tenant.
Queue Name No - Default queue name (can be overridden at node level)
Role-Based Authentication

When using role authentication, the connector authenticates via Azure Managed Identity / DefaultAzureCredential. You must still supply both Account Name and Tenant ID; no keys or connection string are needed. Set Account URL as well if the account is not on public Azure.

Node Configuration

Field Required Description
Operation Yes send_message or receive_message
Queue Name No Queue name (overrides connector default)

Output

send_message

json

{
  "success": true,
  "status": "sent",
  "data": {
    "queue": "my-queue"
  },
  "service": "azure.queue",
  "operation": "send_message"
}

receive_message

json

{
  "success": true,
  "status": "received",
  "data": {
    "queue": "my-queue",
    "message": {"key": "value"}
  },
  "service": "azure.queue",
  "operation": "receive_message"
}

When the queue is empty:

json

{
  "success": true,
  "status": "empty",
  "data": {
    "queue": "my-queue",
    "message": null
  },
  "service": "azure.queue",
  "operation": "receive_message"
}

Example

Connector Setup:

json

{
  "account_name": "mystorageaccount",
  "account_key": "base64-encoded-key...",
  "queue_name": "task-queue"
}

Connector Setup (role-based):

json

{
  "auth_type": "role",
  "account_name": "mystorageaccount",
  "tenant_id": "00000000-0000-0000-0000-000000000000",
  "queue_name": "task-queue"
}