Dapr 简单使用的内置API 电脑版发表于:2021/8/26 16:42 ![](https://img.tnblog.net/arcimg/hb/896fd38e95b346f9a0d98c54b135bb94.jpg) >#Dapr 简单使用的内置API [TOC] tn2>您的本地环境具有 Dapr sidecar 二进制文件以及状态管理和消息代理(均使用 Redis)的默认组件定义。现在您可以通过使用 Dapr CLI 来运行 Dapr sidecar 并尝试使用状态 API 来存储和检索状态,从而尝试 Dapr 提供的一些功能。您可以在这些文档中了解有关状态构建块及其工作原理的更多信息。 您现在将运行sidecar并直接调用API(模拟应用程序将应用程序)。 运行 Dapr sidecar ------------ tn2>最有用的Dapr CLI命令之一是`dapr run`. 此命令与sidecar一起启动一个应用程序。为了本教程的目的,您将在没有应用程序的情况下运行sidecar。 ```bash dapr run --app-id myapp --dapr-http-port 3500 # 查看进程 ps aux ``` ![](https://img.tnblog.net/arcimg/hb/ffa86ef36c7047108f6a512b9c7191fb.png) tn2>使用这个命令,没有定义自定义组件。因此,Dapr 使用在 init 流中创建的默认组件 (这些定义可以`$HOME/.dapr/components`在 Linux 或 MacOS 上,`%USERPROFILE%\.dapr\components`在 Windows)。 告诉 Dapr 使用本地的 Redis Docker 容器作为状态存储和消息代理。 保存状态 ------------ tn2>我们现在将更新对象的状态。 ```json [ { "key": "name", "value": "Bruce Wayne" } ] ``` tn>注意,状态中包含的对象有一个`key`,其值`name`。您将在下一步中使用该密钥。 运行下面显示的命令来存储新的状态。 ```json curl -X POST -H "Content-Type: application/json" -d '[{ "key": "name", "value": "Bruce Wayne"}]' http://localhost:3500/v1.0/state/statestore ``` 获取状态 ------------ tn2>现在通过使用状态管理API,用`key name`来获取你已经存储在状态中的对象。 ```json curl http://localhost:3500/v1.0/state/statestore/name ``` ![](https://img.tnblog.net/arcimg/hb/5620d0a8f4814255b7a070167a2c1050.png) 查看状态如何在 Redis 中存储 ------------ tn2>您可以在 Redis 容器中看到并验证 Dapr 正在使用它作为状态。存储运行以下命令来使用 Redis CLI: ```bash docker exec -it dapr_redis redis-cli ``` tn2>以查看Dapr如何创建一个键值对(您提供给dapr run的app-id作为键的前缀): ```bash keys * ``` ![](https://img.tnblog.net/arcimg/hb/6360c86518594f5fa1a30f23e2e99bee.png) tn2>(你们执行时其实只有`myapp||name`这一个)查看运行时状态值: ```bash hgetall "myapp||name" ``` ![](https://img.tnblog.net/arcimg/hb/0bbf42513beb406f9fa227b15f7bb21a.png) ```bash # 退出 exit ```