Azure Storage Queues binding spec

Detailed documentation on the Azure Storage Queues binding component

Component format

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

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: <NAME>
  5. spec:
  6. type: bindings.azure.storagequeues
  7. version: v1
  8. metadata:
  9. - name: accountName
  10. value: "account1"
  11. - name: accountKey
  12. value: "***********"
  13. - name: queueName
  14. value: "myqueue"
  15. # - name: pollingInterval
  16. # value: "30s"
  17. # - name: ttlInSeconds
  18. # value: "60"
  19. # - name: decodeBase64
  20. # value: "false"
  21. # - name: encodeBase64
  22. # value: "false"
  23. # - name: endpoint
  24. # value: "http://127.0.0.1:10001"
  25. # - name: visibilityTimeout
  26. # value: "30s"
  27. # - name: direction
  28. # value: "input, output"

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
accountNameYInput/OutputThe name of the Azure Storage account“account1”
accountKeyY*Input/OutputThe access key of the Azure Storage account. Only required when not using Microsoft Entra ID authentication.“access-key”
queueNameYInput/OutputThe name of the Azure Storage queue“myqueue”
pollingIntervalNOutputSet the interval to poll Azure Storage Queues for new messages, as a Go duration value. Default: “10s”“30s”
ttlInSecondsNOutputParameter to set the default message time to live. If this parameter is omitted, messages will expire after 10 minutes. See also“60”
decodeBase64NInputConfiguration to decode base64 content received from the Storage Queue into a string. Defaults to falsetrue, false
encodeBase64NOutputIf enabled base64 encodes the data payload before uploading to Azure storage queues. Default false.true, false
endpointNInput/OutputOptional custom endpoint URL. This is useful when using the Azurite emulator or when using custom domains for Azure Storage (although this is not officially supported). The endpoint must be the full base URL, including the protocol (http:// or https://), the IP or FQDN, and optional port.http://127.0.0.1:10001 or https://accountName.queue.example.com
visibilityTimeoutNInputAllows setting a custom queue visibility timeout to avoid immediate retrying of recently failed messages. Defaults to 30 seconds.“100s”
directionNInput/OutputDirection of the binding.“input”, “output”, “input, output”

Microsoft Entra ID authentication

The Azure Storage Queue binding component supports authentication using all Microsoft Entra ID mechanisms. See the docs for authenticating to Azure to learn more about the relevant component metadata fields based on your choice of Microsoft Entra ID authentication mechanism.

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.

Example:

  1. curl -X POST http://localhost:3500/v1.0/bindings/myStorageQueue \
  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 March 21, 2024: Merge pull request #4082 from newbe36524/v1.13 (f4b0938)