Azure Service Bus Queues binding spec

Detailed documentation on the Azure Service Bus Queues binding component

Component format

To setup Azure Service Bus Queues binding create a component of type bindings.azure.servicebusqueues. See this guide on how to create and apply a binding configuration.

Connection String Authentication

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: <NAME>
  5. namespace: <NAMESPACE>
  6. spec:
  7. type: bindings.azure.servicebusqueues
  8. version: v1
  9. metadata:
  10. - name: connectionString # Required when not using Azure Authentication.
  11. value: "Endpoint=sb://************"
  12. - name: queueName
  13. value: queue1
  14. - name: ttlInSeconds
  15. value: 60

Warning

The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described here.

Spec metadata fields

FieldRequiredBinding supportDetailsExample
connectionStringYInput/OutputThe Service Bus connection string“Endpoint=sb://**
queueNameYInput/OutputThe Service Bus queue name. Queue names are case-insensitive and will always be forced to lowercase.“queuename”
ttlInSecondsNOutputParameter to set the default message time to live. If this parameter is omitted, messages will expire after 14 days. See also“60”
namespaceNameNInput/OutputParameter to set the name of the Service Bus namespace. Required if using AAD authentication.“namespace”

Azure Active Directory (AAD) authentication

The Azure Service Bus Queues binding component supports authentication using all Azure Active Directory mechanisms. For further information and the relevant component metadata fields to provide depending on the choice of AAD authentication mechanism, see the docs for authenticating to Azure.

Example Configuration

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: <NAME>
  5. namespace: <NAMESPACE>
  6. spec:
  7. type: bindings.azure.servicebusqueues
  8. version: v1
  9. metadata:
  10. - name: azureTenantId
  11. value: "***"
  12. - name: azureClientId
  13. value: "***"
  14. - name: azureClientSecret
  15. value: "***"
  16. - name: namespaceName # Required when using Azure Authentication.
  17. value: "<SERVICEBUS_NAMESPACE>"
  18. - name: queueName
  19. value: queue1
  20. - name: ttlInSeconds
  21. value: 60

Binding support

This component supports both input and output binding interfaces.

This component supports output binding with the following operations:

  • create

Specifying a TTL per message

Time to live can be defined on queue level (as illustrated above) or at the message level. The value defined at message level overwrites any value set at queue level.

To set time to live at message level use the metadata section in the request body during the binding invocation.

The field name is ttlInSeconds.

  1. curl -X POST http://localhost:3500/v1.0/bindings/myServiceBusQueue \
  2. -H "Content-Type: application/json" \
  3. -d '{
  4. "data": {
  5. "message": "Hi"
  6. },
  7. "metadata": {
  8. "ttlInSeconds": "60"
  9. },
  10. "operation": "create"
  11. }'

Last modified June 23, 2022: Merge pull request #2550 from ItalyPaleAle/cosmosdb-harcoded-dapr-version (cf03237)