The documentation you are viewing is for Dapr v1.12 which is an older version of Dapr. For up-to-date documentation, see the latest version.
使用 Dapr 的内置 API
运行 dapr init
加载你的本地环境:
- Dapr sidecar 二进制文件。
- 两者的默认 Redis 组件定义:
- 状态管理,和
- 消息代理。
通过此设置,使用 Dapr CLI 运行 Dapr,并尝试使用状态 API 来存储和检索状态。 通过我们的概念文档了解更多关于状态构建块以及它是如何工作的。
在本指南中,您将通过运行 sidecar 并直接调用 API 来模拟应用程序。 为了本教程的目的,您将在没有应用程序的情况下运行sidecar。
第 1 步:运行Dapr sidecar
最有用的 Dapr CLI 命令之一是 dapr run
。 这条命令在启动应用的同时启动 sidecar。
启动一个 Dapr sidecar,它将在端口 3500 上侦听名为 myapp
的空白应用程序:
dapr run --app-id myapp --dapr-http-port 3500
由于没有使用上述命令定义自定义组件文件夹,因此 Dapr 将使用在 dapr init
flow 期间创建的默认组件定义,查看:
- 在Windows上,在
%UserProfile%\.dapr\components
- 在Linux/MacOS上,在
~/.dapr/components
这些告诉 Dapr 使用本地的 Redis Docker 容器作为状态存储和消息代理。
第 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
来检索你刚刚存储在状态中的对象。 使用之前运行的同一 Dapr 实例运行以下代码:
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 keys以查看Dapr如何创建一个键值对(您提供给 dapr run
的app-id 作为key的前缀):
keys *
输出:
1) "myapp||name"
查看运行时状态值:
hgetall "myapp||name"
输出:
1) "data"
2) "\"Bruce Wayne\""
3) "version"
4) "1"
退出redis-cli,使用
exit
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.