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: storageAccount
  10. value: "account1"
  11. - name: storageAccessKey
  12. value: "***********"
  13. - name: queue
  14. value: "myqueue"
  15. - name: ttlInSeconds
  16. value: "60"
  17. - name: decodeBase64
  18. value: "false"
  19. - name: queueEndpointUrl
  20. value: "https://account1.example.com:10001"

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
storageAccountYInput/OutputThe Azure Storage account name“account1”
storageAccessKeyYInput/OutputThe Azure Storage access key“accessKey”
queueYInput/OutputThe name of the Azure Storage queue“myqueue”
ttlInSecondsNOutputParameter to set the default message time to live. If this parameter is omitted, messages will expire after 10 minutes. See also“60”
decodeBase64NOutputConfiguration to decode base64 file content before saving to Blob Storage. (In case of saving a file with binary content). true is the only allowed positive value. Other positive variations like “True”, “1” are not acceptable. Defaults to falsetrue, false
queueEndpointUrlNInput/OutputOptional custom endpoint URL. This is useful, for example, with “production-style URLs” when using the Storage emulator. This is also potentially useful when using custom domains for Azure Storage, although this hasn’t been tested (yet). Other possible use-cases include integration testing, debugging, or any other scenario in which one might have the inclination to instruct this Dapr binding to direct its API requests to a specific URL.https://accountName.queue.example.com:10001

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 July 27, 2022: Remove namespace element from component examples (#2647) (ff9de5c8)