To setup a DynamoDB state store create a component of type
state.aws.dynamodb. See this guide on how to create and apply a state store configuration.
apiVersion: dapr.io/v1alpha1 kind: Component metadata: name: <NAME> spec: type: state.aws.dynamodb version: v1 metadata: - name: table value: "mytable" - name: accessKey value: "AKIAIOSFODNN7EXAMPLE" # Optional - name: secretKey value: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" # Optional - name: endpoint value: "http://localhost:8080" # Optional - name: region value: "eu-west-1" # Optional - name: sessionToken value: "myTOKEN" # Optional - name: ttlAttributeName value: "expiresAt" # Optional
WarningThe above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described here.
In order to use DynamoDB as a Dapr state store, the table must have a primary key named
Spec metadata fields
|table||Y||name of the DynamoDB table to use||
|accessKey||N||ID of the AWS account with appropriate permissions to SNS and SQS. Can be
|secretKey||N||Secret for the AWS user. Can be
|region||N||The AWS region to the instance. See this page for valid regions: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html. Ensure that DynamoDB are available in that region.||
|endpoint||N||AWS endpoint for the component to use. Only used for local development. The
|sessionToken||N||AWS session token to use. A session token is only required if you are using temporary security credentials.||
|ttlAttributeName||N||The table attribute name which should be used for TTL.||
ImportantWhen running the Dapr sidecar (daprd) with your application on EKS (AWS Kubernetes), if you’re using a node/pod that has already been attached to an IAM policy defining access to AWS resources, you must not provide AWS access-key, secret-key, and tokens in the definition of the component spec you’re using.
Setup AWS DynamoDB
See Authenticating to AWS for information about authentication-related attributes
Time to live (TTL)
In order to use DynamoDB TTL feature, you must enable TTL on your table and define the attribute name.
The attribute name must be defined in the
See official AWS docs.
- Basic schema for a Dapr component
- Read this guide for instructions on configuring state store components
- State management building block
- Authenticating to AWS
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.