Azure Blob Storage
Detailed information on the Azure Blob Store state store component
Component format
To setup Azure Blobstorage state store create a component of type state.azure.blobstorage
. See this guide on how to create and apply a state store configuration.
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: <NAME>
namespace: <NAMESPACE>
spec:
type: state.azure.blobstorage
version: v1
metadata:
- name: accountName
value: <REPLACE-WITH-ACCOUNT-NAME>
- name: accountKey
value: <REPLACE-WITH-ACCOUNT-KEY>
- name: containerName
value: <REPLACE-WITH-CONTAINER-NAME>
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
Field | Required | Details | Example |
---|---|---|---|
accountName | Y | The storage account name | “mystorageaccount” . |
accountKey | Y | Primary or secondary storage key | “key” |
containerName | Y | The name of the container to be used for Dapr state. The container will be created for you if it doesn’t exist | “container” |
ContentType | N | The blob’s content type | “text/plain” |
ContentMD5 | N | The blob’s MD5 hash | “vZGKbMRDAnMs4BIwlXaRvQ==” |
ContentEncoding | N | The blob’s content encoding | “UTF-8” |
ContentLanguage | N | The blob’s content language | “en-us” |
ContentDisposition | N | The blob’s content disposition. Conveys additional information about how to process the response payload | “attachment” |
CacheControl | N | The blob’s cache control | “no-cache” |
Setup Azure Blobstorage
Follow the instructions from the Azure documentation on how to create an Azure Storage Account.
If you wish to create a container for Dapr to use, you can do so beforehand. However, Blob Storage state provider will create one for you automatically if it doesn’t exist.
In order to setup Azure Blob Storage as a state store, you will need the following properties:
- AccountName: The storage account name. For example: mystorageaccount.
- AccountKey: Primary or secondary storage key.
- ContainerName: The name of the container to be used for Dapr state. The container will be created for you if it doesn’t exist.
Apply the configuration
In Kubernetes
To apply Azure Blob Storage state store to Kubernetes, use the kubectl
CLI:
kubectl apply -f azureblob.yaml
Running locally
To run locally, create a components
dir containing the YAML file and provide the path to the dapr run
command with the flag --components-path
.
This state store creates a blob file in the container and puts raw state inside it.
For example, the following operation coming from service called myservice
curl -X POST http://localhost:3500/v1.0/state \
-H "Content-Type: application/json"
-d '[
{
"key": "nihilus",
"value": "darth"
}
]'
creates the blob file in the containter with key
as filename and value
as the contents of file.
Concurrency
Azure Blob Storage state concurrency is achieved by using ETag
s according to the Azure Blob Storage documentation.
Related links
- Basic schema for a Dapr component
- Read this guide for instructions on configuring state store components
- State management building block
Last modified September 17, 2021 : Merge pull request #1757 from georgestevens99/1440SecretKeyRefExplanation (620a5f8)