LoginSignup
0
0

Dapr CLI を Ubuntu にインストールする

Last updated at Posted at 2023-07-24

Dapr CLI を Ubuntu にインストールする

こんにちは、@studio_meowtoon です。今回は、WSL Ubuntu 22.04 に Dapr CLI とランタイムをインストールする方法を紹介します。
dapr_on_ubuntu.png

目的

分散アプリケーションの為のランタイム Dapr の理解を深めます。

実現すること

ローカル環境 (Ubuntu) に Dapr を操作する為のコマンドラインツール Dapr CLI をインストールして Dapr ランタイムの動作を確認します。

技術トピック

Dapr とは?

こちらを展開してご覧いただけます。

Dapr (ダーパー)

Dapr(Distributed Application Runtime)は、マイクロサービスアプリケーションをより簡単に構築するためのオープンソースのランタイムです。

キーワード 内容
ポータビリティ Dapr はプログラム言語やクラウドプロバイダに依存しない、ユニバーサルなランタイムです。
プラグ&プレイ 既存のアプリケーションに Dapr を追加する際、既存のコードを変更することなくシームレスに統合できます。
サービス間通信 Dapr はメッセージングとイベント駆動のパターンをサポートし、サービス間の連携を簡単に実現します。
シークレット管理 アプリケーションの構成情報や認証情報などのシークレットを安全に管理できます。
開発の迅速化 Dapr のプラグ&プレイ機能により、コードの再利用が容易になり、アプリケーションの開発時間が短縮されます。
フレキシブルなアーキテクチャ Dapr はアプリケーションのコンポーネント間の緩やかな結合を促進し、アーキテクチャの柔軟性を高めます。
拡張性 Dapr は多くの言語とクラウドプロバイダに対応しており、拡張機能を追加することでカスタマイズが可能です。
可用性と信頼性 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 ※ こちらの関連記事からインストール方法をご確認いただけます

$ docker --version
Docker version 23.0.1, build a5ee5b1

Dapr CLI インストール

インストールします。

$ wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash

バーションを確認します。

$ dapr --version
CLI version: 1.11.0
Runtime version: n/a

ここまでの手順では、Dapr ランタイムはまだ初期化されていません。

Dapr ランタイムの初期化

Dapr ランタイムを初期化する方法が2種類あります。

No 方法 概要
1 ローカル環境に初期化 Dapr の起動には Redis が必要なので Redis の環境を個別に用意する必要があります。
2 Docker 環境に初期化 Dapr の起動に必要である Redis コンテナもセットで環境が初期化されます。
※ 公式での推奨

ローカル環境に初期化

この記事ではこちらの方法は試みません。

初期化

$ dapr init --slim

※ Dapr ランタイムをアンインストールする場合

$ dapr uninstall

Docker 環境に初期化

この記事ではこちらの方法を実施します。

Docker 環境の起動を確認します。

$ docker --version
Docker version 24.0.4, build 3713ee1

初期化します。

$ dapr init

出力

⌛  Making the jump to hyperspace...
ℹ️  Container images will be pulled from Docker Hub
ℹ️  Installing runtime version 1.11.2
→  Downloading binaries and setting up components...
Dapr runtime installed to /home/hiroxpepe/.dapr/bin, you may run the following to add it to your path if you want to run daprd directly:
    export PATH=$PATH:/home/$USER/.dapr/bin
✅  Downloading binaries and setting up components...
✅  Downloaded binaries and completed components set up.
ℹ️  daprd binary has been installed to /home/$USER/.dapr/bin.
ℹ️  dapr_placement container is running.
ℹ️  dapr_redis container is running.
ℹ️  dapr_zipkin container is running.
ℹ️  Use `docker ps` to check running containers.
✅  Success! Dapr is up and running. To get started, go here: https://aka.ms/dapr-getting-started

Dapr ランタイムをアンインストールする場合には以下のコマンドを実行します。

$ dapr uninstall --all

コンテナの起動状況を確認します。

$ docker ps | grep dapr
35cd134c3331   openzipkin/zipkin    "start-zipkin"            4 minutes ago   Up 4 minutes (healthy)   9410/tcp, 0.0.0.0:9411->9411/tcp, :::9411->9411/tcp   dapr_zipkin
95b45d0675e7   daprio/dapr:1.11.2   "./placement"             4 minutes ago   Up 4 minutes             0.0.0.0:50005->50005/tcp, :::50005->50005/tcp         dapr_placement
0bd11951aa9d   redis:6              "docker-entrypoint.s…"   5 minutes ago   Up 5 minutes             0.0.0.0:6379->6379/tcp, :::6379->6379/tcp             dapr_redis

初期化後

以下のディレクトリに Dapr ランタイムがインストールされています。

 /home/$USER/.dapr/bin  

再度バーションを確認します。

$ dapr --version
CLI version: 1.11.0
Runtime version: 1.11.2

ここまでの手順で、Ubuntu に Dapr ランタイムをインストールすることができました。

Dapr API を使用してみる

Dapr ランタイムの起動

Dapr サイドカーを実行します。

この例では、空のアプリケーションをポート 3500 でリッスンする Dapr サイドカーが起動されます。

$ dapr run --app-id hello-dapr --dapr-http-port 3500

出力の一部

ℹ️  Checking if Dapr sidecar is listening on GRPC port 45501
ℹ️  Dapr sidecar is up and running.
✅  You're up and running! Dapr logs will appear here.

停止したい場合、別ターミナルで以下のコマンドを実行します。なお、エラーで起動出来ていない場合は停止できないようです。

$ dapr stop --app-id hello-dapr

別ターミナルから、Dapr Dashboard で確認します。

$ dapr dashboard -p 9999
Dapr Dashboard running on http://localhost:9999

image.png

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 http://localhost:3500/v1.0/state/statestore/name

出力

"Michael Jackson"

Dapr の Redis コンテナを調べて状態を確認します。

Redis CLI を使用します。

$ 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 API で操作した値が、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 の動作を確認することが出来ました。

どうでしたか? WSL Ubuntu に Dapr CLI をインストールして Dapr ランタイムを構築できます。ぜひお試しください。今後も Ubuntu の開発環境などを紹介していきますので、ぜひお楽しみにしてください。

推奨コンテンツ

参考資料

Dapar Getting started

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0