The documentation you are viewing is for Dapr v1.8 which is an older version of Dapr. For up-to-date documentation, see the latest version.

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.

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: <NAME>
spec:
  type: bindings.azure.storagequeues
  version: v1
  metadata:
  - name: storageAccount
    value: "account1"
  - name: storageAccessKey
    value: "***********"
  - name: queue
    value: "myqueue"
  - name: ttlInSeconds
    value: "60"
  - name: decodeBase64
    value: "false"
  - name: queueEndpointUrl
    value: "https://account1.example.com:10001"

Spec metadata fields

Field Required Binding support Details Example
storageAccount Y Input/Output The Azure Storage account name "account1"
storageAccessKey Y Input/Output The Azure Storage access key "accessKey"
queue Y Input/Output The name of the Azure Storage queue "myqueue"
ttlInSeconds N Output Parameter to set the default message time to live. If this parameter is omitted, messages will expire after 10 minutes. See also "60"
decodeBase64 N Output Configuration 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 false true, false
queueEndpointUrl N Input/Output Optional 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:

curl -X POST http://localhost:3500/v1.0/bindings/myStorageQueue \
  -H "Content-Type: application/json" \
  -d '{
        "data": {
          "message": "Hi"
        },
        "metadata": {
          "ttlInSeconds": "60"
        },
        "operation": "create"
      }'