Dapr CLI をインストールする手順
目的
分散アプリケーションの為のランタイム Dapr の理解を深めます。
実現すること
ローカル環境 (Ubuntu) に Dapr を操作する為のコマンドラインツール Dapr CLI をインストールして Dapr ランタイムの動作を確認します。
開発環境
- Windows 11 Home 22H2 を使用しています。
- WSL の Ubuntu を操作していきますので macOS の方も参考にして頂けます。
WSL (Microsoft Store アプリ版)
> wsl --version
WSL バージョン: 1.0.3.0
カーネル バージョン: 5.15.79.1
WSLg バージョン: 1.0.47
Ubuntu
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Docker Desktop
Version 4.16.3 (96739)
$ docker --version
Docker version 20.10.22, build 3a2c30b
※ この記事では基本的に Ubuntu のターミナルで操作を行います。
インストール
インストール
$ wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash
バーション確認
※ ランタイムはまだ初期化されていません。
$ dapr --version
CLI version: 1.10.0
Runtime version: n/a
ランタイムの初期化
※ Dapr ランタイムを初期化する方法が2種類あります。
No | 方法 | 概要 |
---|---|---|
1 | ローカル環境に初期化 | Dapr の起動には Redis が必要なので Redis の環境を個別に用意する必要があります。 |
2 | Docker 環境に初期化 | Dapr の起動に必要である Redis コンテナもセットで環境が初期化されます。 ※ 公式での推奨 |
ローカル環境に初期化
初期化
$ dapr init --slim
※ ランタイムをアンインストールする場合
$ dapr uninstall
Docker 環境に初期化
※ Docker 環境が起動している必要があります。
$ docker --version
Docker version 20.10.22, build 3a2c30b
初期化
$ dapr init
※ ランタイムをアンインストールする場合
$ dapr uninstall --all
コンテナ起動状況確認
$ docker ps | grep dapr
a842a0006f5d redis:6 "docker-entrypoint.s…" 0.0.0.0:6379->6379/tcp dapr_redis
4201cb6b0ca7 openzipkin/zipkin "start-zipkin" 9410/tcp, 0.0.0.0:9411->9411/tcp dapr_zipkin
dae8b337dabe daprio/dapr:1.10.0 "./placement" 0.0.0.0:50005->50005/tcp dapr_placement
初期化後
※ 以下のディレクトリに Dapr ランタイムがインストールされています。
/home/$USER/.dapr/bin
バーション確認
$ dapr --version
CLI version: 1.10.0
Runtime version: 1.10.0
Dapr API を使用してみる
※ ローカル環境に初期化した構成では Redis を起動します。
※ この例では Redis を Docker コンテナとして起動しています。
$ docker run -d -p 6379:6379 redis
Dapr ランタイムの起動
Dapr サイドカーを実行します。
※ 空のアプリケーションをポート 3500 でリッスンする Dapr サイドカーが起動されます。
$ dapr run --app-id hello-dapr --dapr-http-port 3500
※ 停止したい場合(別ターミナル)
- なおエラーで起動出来ていない場合は停止できないようです。
$ dapr stop --app-id hello-dapr
Dapr Dashboard で確認(別ターミナル)
$ dapr dashboard -p 9999
Dapr Dashboard running on http://localhost:9999
API で操作してみる
別ターミナルから Dapr API で値を登録します。
curl -X POST -H "Content-Type: application/json" -d '[{ "key": "name", "value": "Michael Jackson"}]' http://localhost:3500/v1.0/state/statestore
続けて Dapr API で値を取得してみます。
curl -X GET http://localhost:3500/v1.0/state/statestore/name
"Michael Jackson"
Dapr の Redis コンテナを調べて状態を確認します。
※ Redis CLI を使用します。
※ ローカル環境に初期化した構成の場合、動作してる Redis コンテナに対して操作して下さい。
$ docker exec -it dapr_redis redis-cli
Redis CLI
※ exit で操作を抜けます。
> keys *
1) "hello-dapr||name"
> hgetall "hello-dapr||name"
1) "data"
2) "\"Michael Jackson\""
3) "version"
4) "1"
※ Dapr の Redis コンテナに値が保存されています。
Dapr API で値を削除します。
curl -v -X DELETE -H "Content-Type: application/json" http://localhost:3500/v1.0/state/statestore/name
※ Redis コンテナを確認すると値が削除されています。
> keys *
(empty array)
まとめ
- Dapr CLI をインストールして Dapr ランタイムを構築し、 Ubuntu の Docker 環境にて Dapr API の動作を確認することが出来ました。