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 Cosmos DB
Dapr 在保存和检索状态时不会转换状态值。 Dapr requires all state store implementations to abide by a certain key format scheme (see Dapr state management spec. 您可以直接与基础存储进行交互以操作状态数据,例如查询状态、创建聚合视图和进行备份。
注意: Azure Cosmos DB是一个支持多种API的多模数据库。 默认的Dapr Cosmos DB状态存储实现使用 Azure Cosmos DB SQL API.
1. 连接到 Azure Cosmos DB
连接到您的 Cosmos DB 实例的最简单方法是使用 Azure Management Portal上的数据资源管理器。 或者,你也可以使用多种SDK和工具。
注意: 下面的示例使用 Cosmos DB SQL API. 当你为 Dapr 配置 Azure Cosmos DB 时,你需要明确指定要使用的数据库和集合。 当你为 Dapr 配置 Azure Cosmos DB 时,你需要明确指定要使用的数据库和集合。 下面的示例假设你已经连接到了正确的数据库和一个名为 “states"的集合。
2. 通过 App ID 列出键
执行下面的查询,以获得与应用程序 “myapp “相关的所有状态键:
SELECT * FROM states WHERE CONTAINS(states.id, 'myapp||')
上面的查询会返回所有id包含 “myapp-“的文档,也就是状态键的前缀。
3. 获取特定状态数据
执行下面的查询,以通过键 “balance “获取应用程序 “myapp “的状态数据:
SELECT * FROM states WHERE states.id = 'myapp||balance'
然后,读取返回的文档的value字段。
要获取状态version/ETag ,请使用以下命令:
SELECT states._etag FROM states WHERE states.id = 'myapp||balance'
4. 获取 actor 状态
要获取应用ID为 “myets “,实例ID为"leroy”,actor类型为"cat"的相关联所有actor的状态键,请使用以下命令:
SELECT * FROM states WHERE CONTAINS(states.id, 'mypets||cat||leroy||')
要获取特定actor状态(如"food”) ,请使用以下命令:
SELECT * FROM states WHERE states.id = 'mypets||cat||leroy||food'
警告: 您不应该手动更新或删除存储引擎中的状态, 所有的写入和删除操作都应该通过Dapr运行时来完成。 所有的写入和删除操作都应该通过Dapr运行时来完成。
Feedback
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.