The documentation you are viewing is for Dapr v1.13 which is an older version of Dapr. For up-to-date documentation, see the latest version.

使用 Dapr 的内置 API

运行 Dapr sidecar 并尝试使用状态管理 API

在本指南中,您将通过运行 sidecar 并直接调用状态管理 API 来模拟一个应用程序。 使用 Dapr CLI 运行 Dapr 后,您将:

  • 保存状态对象。
  • 阅读/获取状态对象。
  • 删除状态对象。

在我们的概念文档中了解更多关于状态构建块及其工作原理的信息

先决条件

第 1 步:运行 Dapr sidecar

dapr run 命令通常会运行您的应用程序和一个 Dapr sidecar。 在这种情况下, 它只运行 sidecar ,因为您直接与状态管理 API 交互。

运行以下命令以启动 Dapr sidecar,它将在端口 3500 上监听名为 myapp 的空白应用程序:

dapr run --app-id myapp --dapr-http-port 3500

由于没有使用上述命令定义自定义组件文件夹,因此Dapr将使用在dapr init流程期间创建的默认组件定义。

第 2 步:保存状态

更新对象的状态。 新状态将如下所示:

[
  {
    "key": "name",
    "value": "Bruce Wayne"
  }
]

注意, 状态中包含的对象每个都有一个key被赋值为name的值。 您将在下一步中使用该 key。

使用以下命令保存一个新的状态对象:


curl -X POST -H "Content-Type: application/json" -d '[{ "key": "name", "value": "Bruce Wayne"}]' http://localhost:3500/v1.0/state/statestore

Invoke-RestMethod -Method Post -ContentType 'application/json' -Body '[{ "key": "name", "value": "Bruce Wayne"}]' -Uri 'http://localhost:3500/v1.0/state/statestore'

第 3 步:获取状态

通过使用状态管理 API,用 key name 来检索你刚刚存储在状态中的对象。 在同一个终端窗口中,运行以下命令:


curl http://localhost:3500/v1.0/state/statestore/name 

Invoke-RestMethod -Uri 'http://localhost:3500/v1.0/state/statestore/name'

第 4 步:查看状态在 Redis 中的存储方式

在 Redis 容器中查看并验证Dapr 正在使用它作为状态存储。 通过以下命令使用 Redis CLI:

docker exec -it dapr_redis redis-cli

列出Redis的键,以查看Dapr如何创建一个带有您提供给dapr run作为键前缀的键值对:

keys *

输出:
1) "myapp||name"

查看运行时状态值:

hgetall "myapp||name"

输出:
1) "data"
2) "\"Bruce Wayne\""
3) "version"
4) "1"

退出 Redis CLI,使用:

exit

第三步:删除状态

在同一个终端窗口中,从状态存储中删除name状态对象。


curl -v -X DELETE -H "Content-Type: application/json" http://localhost:3500/v1.0/state/statestore/name

Invoke-RestMethod -Method Delete -ContentType 'application/json' -Uri 'http://localhost:3500/v1.0/state/statestore/name'
下一步: Dapr 快速入门 >>