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: accountName
value: "account1"
- name: accountKey
value: "***********"
- name: queueName
value: "myqueue"
# - name: pollingInterval
# value: "30s"
# - name: ttlInSeconds
# value: "60"
# - name: decodeBase64
# value: "false"
# - name: encodeBase64
# value: "false"
# - name: endpoint
# value: "http://127.0.0.1:10001"
# - name: visibilityTimeout
# value: "30s"
# - name: initialVisibilityDelay
# value: "30s"
# - name: direction
# value: "input, output"
Field | Required | Binding support | Details | Example |
---|---|---|---|---|
accountName | Y | Input/Output | The name of the Azure Storage account | "account1" |
accountKey | Y* | Input/Output | The access key of the Azure Storage account. Only required when not using Microsoft Entra ID authentication. | "access-key" |
queueName | Y | Input/Output | The name of the Azure Storage queue | "myqueue" |
pollingInterval | N | Output | Set the interval to poll Azure Storage Queues for new messages, as a Go duration value. Default: "10s" | "30s" |
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 | Input | Configuration to decode base64 content received from the Storage Queue into a string. Defaults to false | true , false |
encodeBase64 | N | Output | If enabled base64 encodes the data payload before uploading to Azure storage queues. Default false . | true , false |
endpoint | N | Input/Output | Optional 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" |
initialVisibilityDelay | N | Input | Allows setting a custom queue visibility timeout to avoid immediate retrying of recently failed messages. Defaults to 30 seconds. | "100s" |
visibilityTimeout | N | Input | Sets a delay before a message becomes visible in the queue after being added. It can also be specified per message by setting the initialVisibilityDelay property in the invocation request’s metadata. Defaults to 0 seconds. | "30s" |
direction | N | Input/Output | Direction of the binding. | "input" , "output" , "input, output" |
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.
This component supports both input and output binding interfaces.
This component supports output binding with the following operations:
create
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"
}'
An initial visibility delay can be defined on queue level or at the message level. The value defined at message level overwrites any value set at a queue level.
To set an initial visibility delay value at the message level, use the metadata
section in the request body during the binding invocation.
The field name is initialVisbilityDelay
.
Example.
curl -X POST http://localhost:3500/v1.0/bindings/myStorageQueue \
-H "Content-Type: application/json" \
-d '{
"data": {
"message": "Hi"
},
"metadata": {
"initialVisbilityDelay": "30"
},
"operation": "create"
}'