Create a Dapr component
Create a file called
postgres.yaml, paste the following and replace the
<CONNECTION STRING> value with your connection string. The connection string is a standard PostgreSQL connection string. For example,
"host=localhost user=postgres password=example port=5432 connect_timeout=10 database=dapr_test". See the PostgreSQL documentation on database connections, specifically Keyword/Value Connection Strings, for information on how to define a connection string.
If you want to also configure PostgreSQL to store actors, add the
actorStateStore configuration element shown below.
apiVersion: dapr.io/v1alpha1 kind: Component metadata: name: <NAME> namespace: <NAMESPACE> spec: type: state.postgresql version: v1 metadata: - name: connectionString value: "<CONNECTION STRING>"
WarningThe above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described here.
Spec metadata fields
|connectionString||Y||The connection string for PostgreSQL||
|actorStateStore||N||Consider this state store for actors. Defaults to
If you wish to use PostgreSQL as an actor store, append the following to the yaml.
- name: actorStateStore value: "true"
Run an instance of PostgreSQL. You can run a local instance of PostgreSQL in Docker CE with the following command:
This example does not describe a production configuration because it sets the password in plain text and the user name is left as the PostgreSQL default of “postgres”.
docker run -p 5432:5432 -e POSTGRES_PASSWORD=example postgres
Create a database for state data. Either the default “postgres” database can be used, or create a new database for storing state data.
To create a new database in PostgreSQL, run the following SQL command:
create database dapr_test
- Basic schema for a Dapr component
- Read this guide for instructions on configuring state store components
- State management building block
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.