1 - Dapr 命令行界面(CLI)参考

Dapr CLI 的详细信息

Dapr CLI 允许您在本地开发机器或 Kubernetes 集群上设置 Dapr,提供调试支持,并启动和管理 Dapr 实例。


         __
    ____/ /___ _____  _____
   / __  / __ '/ __ \/ ___/
  / /_/ / /_/ / /_/ / /
  \__,_/\__,_/ .___/_/
              /_/

===============================
Distributed Application Runtime

Usage:
  dapr [command]

Available Commands:
  annotate       Add dapr annotations to a Kubernetes configuration. Supported platforms: Kubernetes
  build-info     Print build info of Dapr CLI and runtime
  completion     Generates shell completion scripts
  components     List all Dapr components. Supported platforms: Kubernetes
  configurations List all Dapr configurations. Supported platforms: Kubernetes
  dashboard      Start Dapr dashboard. Supported platforms: Kubernetes and self-hosted
  help           Help about any command
  init           Install Dapr on supported hosting platforms. Supported platforms: Kubernetes and self-hosted
  invoke         Invoke a method on a given Dapr application. Supported platforms: Self-hosted
  list           List all Dapr instances. Supported platforms: Kubernetes and self-hosted
  logs           Get Dapr sidecar logs for an application. Supported platforms: Kubernetes
  mtls           Check if mTLS is enabled. Supported platforms: Kubernetes
  publish        Publish a pub-sub event. Supported platforms: Self-hosted
  run            Run Dapr and (optionally) your application side by side. Supported platforms: Self-hosted
  status         Show the health status of Dapr services. Supported platforms: Kubernetes
  stop           Stop Dapr instances and their associated apps. Supported platforms: Self-hosted
  uninstall      Uninstall Dapr runtime. Supported platforms: Kubernetes and self-hosted
  upgrade        Upgrades a Dapr control plane installation in a cluster. Supported platforms: Kubernetes
  version        Print the Dapr runtime and CLI version

Flags:
  -h, --help          help for dapr
      --log-as-json   Log output in JSON format
  -v, --version       version for dapr

Use "dapr [command] --help" for more information about a command.

命令参考

您可以通过以下链接了解每个 Dapr 命令的详细信息。

环境变量

部分 Dapr 标志可以通过环境变量设置(例如,对于 dapr init 命令的 --network 标志,可以使用 DAPR_NETWORK)。请注意,在命令行上指定标志会覆盖任何已设置的环境变量。

2 - dapr scheduler

使用 dapr CLI 管理 Dapr Scheduler 作业和提醒

dapr scheduler

管理存储在 Dapr Scheduler 中的计划作业和提醒。

dapr scheduler [command]

别名

  • scheduler
  • sched

可用命令

  • list: 列出计划作业
  • get: 按键获取计划作业
  • delete: 按键删除计划作业
  • delete-all): 按键前缀删除所有计划作业
  • export: 将所有计划作业导出到文件
  • import: 从文件导入计划作业

全局标志

| 标志 | 描述 | | -k, –kubernetes | 在 Kubernetes Dapr 集群上执行操作 | | -n, –namespace string | Dapr 应用的命名空间(默认 “default”) | | –scheduler-namespace string | 调度器运行的命名空间(默认 “dapr-system”) |

dapr scheduler list

列出 Scheduler 中的计划作业。

dapr scheduler list [flags]

标志

  • --filter string – 按类型筛选作业。可选值:all、app、actor、workflow、activity(默认 all)
  • -o, --output string – 输出格式:short、wide、yaml、json(默认 short)

示例

$ dapr scheduler list
NAME                                           BEGIN     COUNT  LAST TRIGGER
actor/myactortype/actorid1/test1               -3.89s    1      2025-10-03T16:58:55Z
actor/myactortype/actorid2/test2               -3.89s    1      2025-10-03T16:58:55Z
app/test-scheduler/test1                       -3.89s    1      2025-10-03T16:58:55Z
app/test-scheduler/test2                       -3.89s    1      2025-10-03T16:58:55Z
activity/test-scheduler/xyz1::0::1             -888.8ms  0
activity/test-scheduler/xyz2::0::1             -888.8ms  0
workflow/test-scheduler/abc1/timer-0-TVIQGkvu  +50.0h    0
workflow/test-scheduler/abc2/timer-0-OM2xqG9m  +50.0h    0
$ dapr scheduler list -o wide
NAMESPACE  NAME                                           BEGIN                 EXPIRATION            SCHEDULE         DUE TIME                   TTL     REPEATS  COUNT  LAST TRIGGER
default    actor/myactortype/actorid1/test1               2025-10-03T16:58:55Z                        @every 2h46m40s  2025-10-03T17:58:55+01:00          100      1      2025-10-03T16:58:55Z
default    actor/myactortype/actorid2/test2               2025-10-03T16:58:55Z                        @every 2h46m40s  2025-10-03T17:58:55+01:00          100      1      2025-10-03T16:58:55Z
default    app/test-scheduler/test1                       2025-10-03T16:58:55Z                        @every 100m      2025-10-03T17:58:55+01:00          1234     1      2025-10-03T16:58:55Z
default    app/test-scheduler/test2                       2025-10-03T16:58:55Z  2025-10-03T19:45:35Z  @every 100m      2025-10-03T17:58:55+01:00  10000s  56788    1      2025-10-03T16:58:55Z
default    activity/test-scheduler/xyz1::0::1             2025-10-03T16:58:58Z                                         0s                                          0
default    activity/test-scheduler/xyz2::0::1             2025-10-03T16:58:58Z                                         0s                                          0
default    workflow/test-scheduler/abc1/timer-0-TVIQGkvu  2025-10-05T18:58:58Z                                         2025-10-05T18:58:58Z                        0
default    workflow/test-scheduler/abc2/timer-0-OM2xqG9m  2025-10-05T18:58:58Z                                         2025-10-05T18:58:58Z                        0

dapr scheduler get

按键获取一个或多个计划作业/提醒。

dapr scheduler get <keys...> [flags]

键格式

  • App 作业:app/<app-id>/<job-name>
  • Actor 提醒:actor/<actor-type>/<actor-id>/<reminder-name>
  • 工作流提醒:workflow/<app-id>/<instance-id>/<reminder-name>
  • Activity 提醒:activity/<app-id>/<activity-id>

标志

  • -o, --output string – 输出格式:shortwideyamljson(默认 short

示例

dapr scheduler get app/my-app/job1 -o yaml

dapr scheduler delete

删除一个或多个作业。

dapr scheduler delete <keys...>

别名

  • deleteddel

示例

dapr scheduler delete app/my-app/job1 actor/MyActor/123/reminder1

dapr scheduler delete-all

按筛选键批量删除作业。

dapr scheduler delete-all <filter-key>

别名

  • delete-alldadelall

示例

dapr scheduler delete-all all
dapr scheduler delete-all app/my-app
dapr scheduler delete-all actor/MyActorType

dapr scheduler export

将所有作业和提醒导出到文件。

dapr scheduler export -o backup.bin

dapr scheduler import

从文件导入作业和提醒。

dapr scheduler import -f backup.bin

3 - annotate CLI 命令参考

向 Kubernetes 配置添加 Dapr 注解

描述

向 Kubernetes 配置添加 Dapr 注解。这使您能够在部署文件上添加/更改 Dapr 注解。有关以下标志列表中每个可用注解的完整说明,请参阅 Kubernetes 注解

支持的平台

用法

dapr annotate [flags] CONFIG-FILE

标志

名称环境变量默认值描述
--kubernetes, -k向 Kubernetes 资源应用注解。必需
--api-token-secret用于 API 令牌的密钥
--app-id, -a要添加注解的应用 ID
--app-max-concurrency-1允许的最大并发请求数
--app-port, -p-1暴露应用的端口
--app-protocol应用使用的协议:http(默认)、grpchttpsgrpcsh2c
--app-token-secret用于应用令牌的密钥
--config, -c要添加注解的配置文件
--cpu-limit为边车设置的 CPU 限制。请参阅此处的有效值。
--cpu-request为边车设置的 CPU 请求。请参阅此处的有效值。
--dapr-image用于 dapr 边车容器的镜像
--enable-debugfalse启用调试
--enable-metricsfalse启用指标
--enable-profilefalse启用性能分析
--env要设置的环境变量(键值对,逗号分隔)
--graceful-shutdown-seconds-1等待应用关闭的秒数
--help, -hannotate 命令的帮助信息
--listen-addresses边车监听的地址。要监听所有 IPv4 地址,使用 0.0.0.0。要监听所有 IPv6 地址,使用 [::]
--liveness-probe-delay-1边车用于存活探测的延迟。了解更多信息
--liveness-probe-period-1边车用于存活探测的周期。了解更多信息
--liveness-probe-threshold-1边车用于存活探测的阈值。了解更多信息
--liveness-probe-timeout-1边车用于存活探测的超时时间。了解更多信息
--log-level要使用的日志级别
--max-request-body-size-1要使用的最大请求体大小
--http-read-buffer-size-1HTTP 标头读取缓冲区的最大大小(千字节)
--memory-limit为边车设置的内存限制。请参阅此处的有效值
--memory-request为边车设置的内存请求
--metrics-port-1暴露指标的端口
--namespace, -n资源目标所在的命名空间(仅在同时设置了 --resource 时才能设置)
--readiness-probe-delay-1边车中就绪探测要使用的延迟。了解更多信息
--readiness-probe-period-1边车中就绪探测要使用的周期。了解更多信息
--readiness-probe-threshold-1边车中就绪探测要使用的阈值。了解更多信息
--readiness-probe-timeout-1边车中就绪探测要使用的超时时间。了解更多信息
--resource, -r要添加注解的 Kubernetes 资源目标
--enable-api-logging为 Dapr 边车启用 API 日志记录
--unix-domain-socket-path用于与 Dapr 边车通信的 Linux 域套接字路径
--volume-mounts要以只读模式挂载到边车容器的 Pod 卷列表
--volume-mounts-rw要以读写模式挂载到边车容器的 Pod 卷列表
--disable-builtin-k8s-secret-store禁用内置的 Kubernetes 密钥存储
--placement-host-addressDapr Actor 放置服务器的地址列表,逗号分隔

示例

# 对输入中找到的第一个部署添加注解
kubectl get deploy -l app=node -o yaml | dapr annotate -k - | kubectl apply -f -

# 在链中按名称为多个部署添加注解
kubectl get deploy -o yaml | dapr annotate -k -r nodeapp - | dapr annotate -k -r pythonapp - | kubectl apply -f -

# 从文件或目录按名称为特定命名空间中的部署添加注解
dapr annotate -k -r nodeapp -n namespace mydeploy.yaml | kubectl apply -f -

# 从 URL 按名称为部署添加注解
dapr annotate -k -r nodeapp --log-level debug https://raw.githubusercontent.com/dapr/quickstarts/master/tutorials/hello-kubernetes/deploy/node.yaml | kubectl apply -f -

4 - build-info CLI 命令参考

dapr CLI 和 daprd 可执行文件的详细构建信息

说明

获取 daprdaprd 可执行文件的版本和 git 提交数据。

支持的平台

用法

dapr build-info

相关说明

您可以通过调用 daprd --build-info 命令直接获取 daprd 构建信息。

5 - completion CLI 命令参考

completion CLI 命令的详细信息

Description

生成 shell 自动补全脚本

Usage

dapr completion [flags]
dapr completion [command]

Flags

名称环境变量默认值描述
--help, -h显示此帮助信息

Examples

在 macOS 上使用 Homebrew 安装 bash 自动补全

如果运行 macOS 附带的 Bash 3.2:

brew install bash-completion

或者,如果运行 Bash 4.1+:

brew install bash-completion@2

将自动补全添加到你的自动补全目录:

dapr completion bash > $(brew --prefix)/etc/bash_completion.d/dapr
source ~/.bash_profile

在 Linux 上安装 bash 自动补全

如果 Linux 上未安装 bash-completion,请通过你的发行版的包管理器安装 ‘bash-completion’ 包。

将 dapr 的 bash 自动补全代码加载到当前 shell:

source <(dapr completion bash)

将 bash 自动补全代码写入文件并从 .bash_profile 加载:

dapr completion bash > ~/.dapr/completion.bash.inc
printf "source '$HOME/.dapr/completion.bash.inc'" >> $HOME/.bash_profile
source $HOME/.bash_profile

在 macOS 上使用 Homebrew 安装 zsh 自动补全

如果 macOS 上未安装 zsh-completion,请安装 ‘zsh-completion’ 包:

brew install zsh-completions

设置 dapr 的 zsh[1] 自动补全代码在启动时自动加载:

dapr completion zsh > "${fpath[1]}/_dapr"
source ~/.zshrc

在 Linux 上安装 zsh 自动补全

如果 Linux 上未安装 zsh-completion,请通过你的发行版的包管理器安装 ‘zsh-completion’ 包。

将 dapr 的 zsh 自动补全代码加载到当前 shell:

source <(dapr completion zsh)

设置 dapr 的 zsh[1] 自动补全代码在启动时自动加载:

dapr completion zsh > "${fpath[1]}/_dapr"

在 Windows 上安装 Powershell 自动补全

如果 $PROFILE 不存在则创建:

if (!(Test-Path -Path $PROFILE )){ New-Item -Type File -Path $PROFILE -Force }

将自动补全添加到你的配置文件:

dapr completion powershell >> $PROFILE

Available Commands

bash        生成 bash 自动补全脚本
powershell  生成 powershell 自动补全脚本
zsh         生成 zsh 自动补全脚本

6 - components CLI 命令参考

components CLI 命令的详细信息

描述

列出所有 Dapr 组件。

支持的平台

用法

dapr components [flags]

标志

名称环境变量默认值描述
--kubernetes, -kfalse列出 Kubernetes 集群中的所有 Dapr 组件(必需)
--all-namespaces, -Atrue如果为 true,列出所有命名空间中的所有 Dapr 组件
--help, -h打印此帮助信息
--name, -n要打印的组件名称(可选)
--namespace列出指定命名空间中的所有组件
--output, -olist输出格式(选项:json 或 yaml 或 list)

示例

# 在 Kubernetes 模式下列出所有命名空间中的 Dapr 组件
dapr components -k

# 在 Kubernetes 模式下列出特定命名空间中的 Dapr 组件
dapr components -k --namespace default

# 在 Kubernetes 模式下打印特定的 Dapr 组件
dapr components -k -n mycomponent

# 在 Kubernetes 模式下列出所有命名空间中的 Dapr 组件
dapr components -k --all-namespaces

警告消息

此命令可能会发出警告消息。

根证书续期警告

如果部署到 Kubernetes 集群的 mTLS 根证书将在 30 天内过期,将显示以下警告消息:

Dapr root certificate of your Kubernetes cluster expires in <n> days. Expiry date: <date:time> UTC. 
Please see docs.dapr.io for certificate renewal instructions to avoid service interruptions.

7 - configurations CLI 命令参考

configurations CLI 命令的详细信息

描述

列出所有 Dapr 配置。

支持的平台

用法

dapr configurations [flags]

标志

名称环境变量默认值描述
--kubernetes, -kfalse列出 Kubernetes 集群中的所有 Dapr 配置(必需)。
--all-namespaces, -Atrue如果为 true,列出所有命名空间中的所有 Dapr 配置(可选)。
--namespace列出特定命名空间中的 Dapr 配置。
--name, -n打印特定的 Dapr 配置(可选)。
--output, -olist输出格式(选项:json 或 yaml 或 list)。
--help, -h打印此帮助消息。

示例

# 在 Kubernetes 模式下列出所有命名空间中的 Dapr 配置
dapr configurations -k

# 在 Kubernetes 模式下列出特定命名空间中的 Dapr 配置
dapr configurations -k --namespace default

# 在 Kubernetes 模式下打印特定的 Dapr 配置
dapr configurations -k -n appconfig

# 在 Kubernetes 模式下列出所有命名空间中的 Dapr 配置
dapr configurations -k --all-namespaces

警告消息

此命令可能会发出警告消息。

根证书续期警告

如果部署到 Kubernetes 集群的 mTLS 根证书将在 30 天内过期,将显示以下警告消息:

Dapr root certificate of your Kubernetes cluster expires in <n> days. Expiry date: <date:time> UTC. 
Please see docs.dapr.io for certificate renewal instructions to avoid service interruptions.

8 - dashboard CLI 命令参考

关于 dashboard CLI 命令的详细信息

描述

启动 Dapr dashboard

支持的平台

用法

dapr dashboard [flags]

标志

名称环境变量默认值描述
--address, -alocalhost监听地址。仅接受 IP 地址或 localhost 作为值
--help, -h打印此帮助信息
--kubernetes, -kfalse通过到 Kubernetes 集群的本地代理在本地浏览器中打开 Dapr dashboard
--namespace, -ndapr-systemDapr dashboard 运行的命名空间
--port, -p8080用于提供 Dapr dashboard 的本地端口
--version, -vfalse打印 Dapr dashboard 的版本

示例

# 在本地启动 dashboard
dapr dashboard

# 在本地启动 dashboard 服务并指定端口
dapr dashboard -p 9999

# 端口转发到在 Kubernetes 中运行的 dashboard 服务
dapr dashboard -k

# 端口转发到在 Kubernetes 中运行的 dashboard 服务,监听指定端口上的所有地址
dapr dashboard -k -p 9999 --address 0.0.0.0

# 端口转发到在 Kubernetes 中运行的 dashboard 服务,指定端口
dapr dashboard -k -p 9999

警告信息 - Kubernetes 模式

此命令可能会发出警告信息。

根证书续订警告

如果部署到 Kubernetes 集群的 mTLS 根证书将在 30 天内过期,将显示以下警告信息:

Dapr root certificate of your Kubernetes cluster expires in <n> days. Expiry date: <date:time> UTC. 
Please see docs.dapr.io for certificate renewal instructions to avoid service interruptions.

9 - help CLI 命令参考

help CLI 命令的详细信息

描述

Help 为应用程序中的任何命令提供帮助。

用法

dapr help [command] [flags]

标志

名称环境变量默认值描述
--help, -h打印此帮助消息

10 - init CLI 命令参考

init CLI 命令的详细信息

说明

在支持的托管平台上安装 Dapr。

支持的平台

用法

dapr init [flags]

标志

名称环境变量默认值描述
--dashboard-versionlatest要安装的 Dapr 仪表板的版本,例如:1.0.0
--enable-hafalse启用高可用(HA)模式
--enable-mtlstrue在集群中启用 mTLS
--from-dir包含下载的"Dapr 安装程序包"版本的本地目录路径,用于在离线环境中 init
--help, -h打印此帮助信息
--image-registry从给定的镜像仓库拉取 Dapr 所需的容器镜像
--kubernetes, -kfalse将 Dapr 部署到 Kubernetes 集群
--namespace, -ndapr-system安装 Dapr 的 Kubernetes 命名空间
--network在其上安装和部署 Dapr 运行时的 Docker 网络
--runtime-versionlatest要安装的 Dapr 运行时版本,例如:1.0.0
--image-variant用于 Dapr 运行时的镜像变体,例如:mariner
--set在命令行上配置选项,以便在安装时传递给 Dapr Helm chart 和 Kubernetes 集群。可以在逗号分隔的列表中指定多个值,例如:key1=val1,key2=val2
--slim, -sfalse在自托管安装中排除 placement 服务、scheduler 服务以及 Redis 和 Zipkin 容器
--timeout300Kubernetes 安装的等待超时时间
--waitfalse等待 Kubernetes 初始化完成
N/ADAPR_DEFAULT_IMAGE_REGISTRY用于指定默认容器仓库以拉取镜像。当其值设置为 GHCRghcr 时,它将从 Github 容器仓库拉取所需镜像。要默认使用 Docker Hub,请取消设置该环境变量或将其留空
N/ADAPR_HELM_REPO_URL指定私有 Dapr Helm chart url
N/ADAPR_HELM_REPO_USERNAME私有 Helm chart 的用户名访问私有 Dapr Helm chart 所需的用户名。如果可以公开访问,则无需设置此环境变量
N/ADAPR_HELM_REPO_PASSWORD私有 Helm chart 的密码访问私有 Dapr Helm chart 所需的密码。如果可以公开访问,则无需设置此环境变量
--container-runtimedocker用于传入除 Docker 之外的不同容器运行时。支持的容器运行时包括:dockerpodman
--dev在 Kubernetes 中运行时创建 Redis 和 Zipkin 部署。
--scheduler-volume仅限自托管。可选地,您可以为 scheduler 服务数据目录指定一个卷。默认情况下,如果不使用此标志,scheduler 数据不会持久化,并且对重启没有弹性。
--scheduler-override-broadcast-host-portlocalhost:50006 (Windows 为 6060)仅限自托管。指定 scheduler 广播主机和端口,例如:192.168.42.42:50006。

示例

安装

通过拉取 Placement、Scheduler、Redis 和 Zipkin 的容器镜像来安装 Dapr。默认情况下,这些镜像从 Docker Hub 拉取。

默认情况下,会为 Scheduler 服务创建一个 dapr_scheduler 本地卷,用作数据库目录。此卷的主机文件位置可能位于 /var/lib/docker/volumes/dapr_scheduler/_data~/.local/share/containers/storage/volumes/dapr_scheduler/_data,具体取决于您的容器运行时。

dapr init

Dapr 也可以在没有 Docker 的情况下运行 Slim 自托管模式

dapr init -s

要将 Dapr Github 容器仓库切换为默认仓库,请将 DAPR_DEFAULT_IMAGE_REGISTRY 环境变量值设置为 GHCR。要切换回 Docker Hub 作为默认仓库,请取消设置此环境变量。

指定运行时版本

您还可以指定特定的运行时版本。默认情况下,使用最新版本。

dapr init --runtime-version 1.13.4

使用镜像变体安装

您还可以使用特定的镜像变体安装 Dapr,例如:mariner

dapr init --image-variant mariner

使用 Dapr 安装程序包

在离线或网络隔离环境中,您可以下载 Dapr 安装程序包并使用它来安装 Dapr,而不是从网络拉取镜像。

dapr init --from-dir <installer-bundle-directory-path>

Dapr 也可以在网络隔离环境中的 slim 自托管模式下运行,而无需 Docker。

dapr init -s --from-dir <installer-bundle-directory-path>

指定私有仓库

您还可以指定私有仓库来拉取容器镜像。这些镜像需要发布到私有仓库,如下所示,以使 Dapr CLI 能够通过 dapr init 命令成功拉取它们:

  1. Dapr 运行时容器镜像(dapr)(用于运行 Placement)- dapr/dapr:
  2. Redis 容器镜像- dapr/3rdparty/rejson
  3. Zipkin 容器镜像- dapr/3rdparty/zipkin

Dapr 使用的所有所需镜像都必须在 dapr 路径下。第三方镜像必须发布在 dapr/3rdparty 路径下。

image-registry uri 遵循 docker.io/<username> 格式。

dapr init --image-registry docker.io/username

此命令解析完整的镜像 URI,如下所示 -

  1. Placement 容器镜像- docker.io/username/dapr/dapr:
  2. Redis 容器镜像- docker.io/username/dapr/3rdparty/rejson
  3. zipkin 容器镜像- docker.io/username/dapr/3rdparty/zipkin

您可以在设置 Dapr 时指定不同的容器运行时。如果省略 --container-runtime 标志,则默认容器运行时为 Docker。

dapr init --container-runtime podman

使用 Docker 网络

您可以将本地容器部署到 Docker 网络中,这对于部署到单独的网络或使用 Docker Compose 进行本地开发以部署应用程序非常有用。

创建 Docker 网络。

docker network create mynet

初始化 Dapr 并指定创建的 Docker 网络。

dapr init --network mynet

验证所有容器都在指定网络中运行。

docker ps

从该 Docker 网络卸载 Dapr。

dapr uninstall --all --network mynet

指定 scheduler 广播主机和端口

您可以指定 scheduler 广播主机和端口,例如:192.168.42.42:50006。

当您必须使用不同的主机和端口连接到 scheduler 时,这是必要的,因为 scheduler 只允许与此主机和端口匹配的连接。

默认情况下,scheduler 将使用 localhost:50006(Windows 为 6060)。

dapr init --scheduler-override-broadcast-host-port 192.168.42.42:50006
dapr init -k

使用 --dev 标志以开发模式初始化 Dapr,其中包括 Zipkin 和 Redis。

dapr init -k --dev

您可以使用 --wait 标志等待安装完成部署。 默认超时时间为 300s(5 分钟),但可以使用 --timeout 标志进行自定义。

dapr init -k --wait --timeout 600

您还可以指定特定的运行时版本。

dapr init -k --runtime-version 1.4.0

使用 --set 标志在 Dapr 安装期间配置一组 Helm Chart 值,以帮助设置 Kubernetes 集群。

dapr init -k --set global.tag=1.0.0 --set dapr_operator.logLevel=error

您还可以指定私有仓库来拉取容器镜像。截至目前,dapr init -k 不使用 sentry、operator、placement、scheduler 和 sidecar 的特定镜像。它仅依赖 Dapr 运行时容器镜像 dapr 作为所有这些镜像。

场景 1:dapr 镜像直接托管在私有仓库的根文件夹下 -

dapr init -k --image-registry docker.io/username

场景 2:dapr 镜像托管在私有仓库中的新/不同目录下 -

dapr init -k --image-registry docker.io/username/<directory-name>

11 - invoke CLI 命令参考

关于 invoke CLI 命令的详细信息

说明

对给定的 Dapr 应用程序调用一个方法。

支持的平台

用法

dapr invoke [flags]

标志

名称环境变量默认值描述
--app-id, -aAPP_ID要调用的应用程序 id
--help, -h打印此帮助信息
--method, -m要调用的方法
--data, -dJSON 序列化的数据字符串(可选)
--data-file, -f包含 JSON 序列化数据的文件(可选)
--verb, -vPOST要使用的 HTTP 动词

示例

# 使用 POST 动词在目标应用上调用示例方法
dapr invoke --app-id target --method sample --data '{"key":"value"}'

# 使用 GET 动词在目标应用上调用示例方法
dapr invoke --app-id target --method sample --verb GET

12 - list CLI 命令参考

关于 list CLI 命令的详细信息

描述

列出所有 Dapr 实例。

支持的平台

用法

dapr list [flags]

参数

名称环境变量默认值描述
--all-namespaces, -Afalse列出所有命名空间中的所有 Dapr Pod(可选)
--help, -h打印此帮助消息
--kubernetes, -kfalse列出 Kubernetes 集群中的所有 Dapr Pod(可选)
--namespace, -ndefault列出 Kubernetes 中指定命名空间的 Dapr Pod。仅与 -k 参数一起使用(可选)
--output, -otable列表的输出格式。有效值为:jsonyamltable

示例

# 列出自托管模式下的 Dapr 实例
dapr list

# 列出 Kubernetes 模式下所有命名空间中的 Dapr 实例
dapr list -k

# 以 JSON 格式列出 Dapr 实例
dapr list -o json

# 列出 Kubernetes 模式下特定命名空间中的 Dapr 实例
dapr list -k --namespace default

# 列出 Kubernetes 模式下所有命名空间中的 Dapr 实例
dapr list -k --all-namespaces

警告消息 - Kubernetes 模式

此命令可能会发出警告消息。

根证书续期警告

如果部署到 Kubernetes 集群的 mTLS 根证书将在 30 天内过期,则会显示以下警告消息:

Dapr root certificate of your Kubernetes cluster expires in <n> days. Expiry date: <date:time> UTC. 
Please see docs.dapr.io for certificate renewal instructions to avoid service interruptions.

13 - logs CLI 命令参考

logs CLI 命令的详细信息

描述

获取应用程序的 Dapr 边车日志。

支持的平台

用法

dapr logs [flags]

标志

名称环境变量默认值描述
--app-id, -aAPP_ID需要获取日志的应用程序 id
--help, -h打印此帮助消息
--kubernetes, -ktrue从 Kubernetes 集群获取日志
--namespace, -ndefault部署应用程序的 Kubernetes 命名空间
--pod-name, -pKubernetes 中 Pod 的名称,如果你的应用程序有多个 Pod 则需要指定(可选)

示例

# 从自定义命名空间的目标 Pod 获取示例应用的日志
dapr logs -k --app-id sample --pod-name target --namespace custom

警告消息

此命令可能会发出警告消息。

根证书续期警告

如果部署到 Kubernetes 集群的 mTLS 根证书将在 30 天内过期,则会显示以下警告消息:

Dapr root certificate of your Kubernetes cluster expires in <n> days. Expiry date: <date:time> UTC. 
Please see docs.dapr.io for certificate renewal instructions to avoid service interruptions.

14 - mtls CLI 命令参考

mtls CLI 命令的详细信息

描述

检查 mTLS 是否已启用。

支持的平台

用法

dapr mtls [flags]
dapr mtls [command]

标志

名称环境变量默认值描述
--help, -h打印此帮助消息
--kubernetes, -kfalse检查 Kubernetes 集群中是否启用了 mTLS

可用命令

expiry              检查根证书颁发机构(CA)证书的过期时间
export              将根证书颁发机构(CA)、颁发者证书和颁发者密钥导出到本地文件
renew-certificate   轮换现有的根证书颁发机构(CA)、颁发者证书和颁发者密钥

命令参考

你可以通过以下链接了解每个子命令的更多信息。

示例

# 检查 Kubernetes 集群上的 mTLS 是否已启用
dapr mtls -k

警告消息

此命令可能会发出警告消息。

根证书续期警告

如果部署到 Kubernetes 集群的 mtls 根证书将在 30 天内过期,将显示以下警告消息:

Dapr root certificate of your Kubernetes cluster expires in <n> days. Expiry date: <date:time> UTC. 
Please see docs.dapr.io for certificate renewal instructions to avoid service interruptions.

14.1 - mtls export CLI 命令参考

mtls export CLI 命令的详细信息

说明

将根证书颁发机构(CA)、颁发者证书和颁发者密钥导出到本地文件

支持的平台

用法

dapr mtls export [flags]

标志

名称环境变量默认值说明
--help, -hexport 的帮助信息
--out, -o当前目录用于保存证书的输出目录路径

示例

# 导出 Kubernetes 证书到指定目录
dapr mtls export -o ./certs

警告消息

此命令可能会发出警告消息。

根证书续期警告

如果部署到 Kubernetes 集群的 mtls 根证书将在 30 天内过期,将显示以下警告消息:

Dapr root certificate of your Kubernetes cluster expires in <n> days. Expiry date: <date:time> UTC. 
Please see docs.dapr.io for certificate renewal instructions to avoid service interruptions.

14.2 - mtls expiry CLI 命令参考

mtls expiry CLI 命令的详细信息

描述

检查根证书颁发机构 (CA) 证书的到期时间

支持的平台

用法

dapr mtls expiry [flags]

标志

名称环境变量默认值描述
--help, -h帮助信息

示例

# 检查 Kubernetes 证书的到期时间
dapr mtls expiry

14.3 - mtls renew certificate CLI 命令参考

mtls renew certificate CLI 命令的详细信息

描述

此命令可用于续订即将过期的 Dapr 证书。例如,Dapr Sentry 服务可以生成应用程序使用的默认根证书和颁发者证书。有关更多信息,请参阅安全的 Dapr 与 Dapr 通信

支持的平台

用法

dapr mtls renew-certificate [flags]

标志

名称环境变量默认值描述
--help, -h显示 renew-certificate 的帮助信息
--kubernetes, -kfalse支持的平台
--valid-until365 天新创建证书的有效期
--restartfalse重启 Dapr 控制平面服务(Sentry 服务、Operator 服务和 Placement 服务器)
--timeout300 秒证书续订过程的超时时间
--ca-root-certificate用户提供的 PEM 根证书的文件路径
--issuer-public-certificate用户提供的 PEM 颁发者证书的文件路径
--issuer-private-key用户提供的 PEM 颁发者私钥的文件路径
--private-key用户提供的 root.key 文件,用于生成根证书

示例

通过生成全新的证书来续订证书

为 Kubernetes 集群生成新的根证书和颁发者证书,默认有效期为 365 天。证书不会应用到 Dapr 控制平面。

dapr mtls renew-certificate -k

为 Kubernetes 集群生成新的根证书和颁发者证书,默认有效期为 365 天,并重启 Dapr 控制平面服务。

dapr mtls renew-certificate -k --restart

为 Kubernetes 集群生成新的根证书和颁发者证书,具有给定的有效期。

dapr mtls renew-certificate -k --valid-until <天数>

为 Kubernetes 集群生成新的根证书和颁发者证书,具有给定的有效期并重启 Dapr 控制平面服务。

dapr mtls renew-certificate -k --valid-until <天数> --restart

使用用户提供的证书来续订证书

使用提供的 ca.pem、issuer.pem 和 issuer.key 文件路径为 Kubernetes 集群轮换证书并重启 Dapr 控制平面服务

dapr mtls renew-certificate -k --ca-root-certificate <ca.pem> --issuer-private-key <issuer.key> --issuer-public-certificate <issuer.pem> --restart

使用提供的 ca.pem、issuer.pem 和 issuer.key 文件路径为 Kubernetes 集群轮换证书。

dapr mtls renew-certificate -k --ca-root-certificate <ca.pem> --issuer-private-key <issuer.key> --issuer-public-certificate <issuer.pem>

使用提供的根私钥通过生成全新的证书来续订证书

使用现有的 root.key 私钥为 Kubernetes 集群生成新的根证书和颁发者证书,创建的证书具有给定的有效期。

dapr mtls renew-certificate -k --private-key myprivatekey.key --valid-until <天数>

使用现有的 root.key 私钥为 Kubernetes 集群生成新的根证书和颁发者证书。

dapr mtls renew-certificate -k --private-key myprivatekey.key

15 - publish CLI 命令参考

publish CLI 命令的详细信息

描述

发布一个发布订阅事件。

支持的平台

用法

dapr publish [flags]

标志

名称环境变量默认值描述
--publish-app-id, -i表示发布源应用的 ID
--pubsub, -p发布订阅组件的名称
--topic, -t要发布到的主题
--data, -dJSON 序列化字符串(可选)
--data-file, -f包含 JSON 序列化数据的文件(可选)
--help, -h打印此帮助消息
--metadata, -mJSON 序列化的发布元数据(可选)
--unix-domain-socket, -uUnix 域套接字路径(可选)

示例

# 通过发布应用发布到目标发布订阅的示例主题
dapr publish --publish-app-id appId --topic sample --pubsub target --data '{"key":"value"}'

# 使用 Unix 域套接字通过发布应用发布到目标发布订阅的示例主题
dapr publish --enable-domain-socket --publish-app-id myapp --pubsub target --topic sample --data '{"key":"value"}'

# 通过发布应用发布到目标发布订阅的示例主题,不使用云事件
dapr publish --publish-app-id myapp --pubsub target --topic sample --data '{"key":"value"}' --metadata '{"rawPayload":"true"}'

16 - run CLI 命令参考

run CLI 命令的详细信息

说明

运行 Dapr 以及(可选的)您的应用程序。有关 daprd 参数、CLI 参数和 Kubernetes 注解的完整对比列表,请参见此处

支持的平台

用法

dapr run [flags] [command]

标志

名称环境变量默认值说明
--app-id, -aAPP_ID您的应用程序的 id,用于服务发现。不能包含点。
--app-max-concurrencyunlimited应用程序的并发级别;默认为 unlimited(无限制)
--app-port, -pAPP_PORT您的应用程序监听的端口
--app-protocol, -PhttpDapr 用于与应用程序通信的协议。有效值为:httpgrpchttps(带 TLS 的 HTTP)、grpcs(带 TLS 的 gRPC)、h2c(HTTP/2 明文)
--resources-path, -dLinux/Mac: $HOME/.dapr/components
Windows: %USERPROFILE%\.dapr\components
资源目录的路径。如果您将资源组织到多个文件夹中(例如,组件在一个文件夹中,弹性策略在另一个文件夹中),您可以定义多个资源路径。请参见下面的示例
--app-channel-address127.0.0.1应用程序监听的网络地址
--runtime-pathDapr 运行时安装路径
--config, -cLinux/Mac: $HOME/.dapr/config.yaml
Windows: %USERPROFILE%\.dapr\config.yaml
Dapr 配置文件
--dapr-grpc-port, -GDAPR_GRPC_PORT50001Dapr 监听的 gRPC 端口
--dapr-internal-grpc-port, -I50002Dapr 内部 API 监听的 gRPC 端口。在开发过程中为遇到因 mDNS 缓存导致服务调用失败暂时性错误的应用程序设置,或在防火墙后配置 Dapr 边车时设置。可以是大于 1024 的任何值,并且每个应用程序必须不同。
--dapr-http-port, -HDAPR_HTTP_PORT3500Dapr 监听的 HTTP 端口
--enable-profilingfalse通过 HTTP 端点启用 “pprof” 性能分析
--help, -h打印帮助信息
--run-file, -fLinux/MacOS: $HOME/.dapr/dapr.yaml使用多应用运行模板文件一次运行多个应用程序。目前处于 alpha 阶段,仅在 Linux/MacOS 上可用
--image使用自定义 Docker 镜像。Docker Hub 的格式为 repository/image,自定义注册表的格式为 example.com/repository/image
--log-levelinfo日志详细程度。有效值为:debuginfowarnerrorfatalpanic
--enable-api-loggingfalse启用从应用程序到 Dapr 的所有 API 调用的日志记录
--metrics-portDAPR_METRICS_PORT9090Dapr 将其指标信息发送到的端口
--profile-port7777性能分析服务器监听的端口
--placement-host-addressLinux/Mac: $HOME/.dapr/components
Windows: %USERPROFILE%\.dapr\components
在 Docker 网络内的任何容器中运行。使用 <hostname><hostname>:<port>。如果省略端口,将默认为:
  • Linux/MacOS: 50005
  • Windows: 6050
--scheduler-host-addressLinux/Mac: $HOME/.dapr/components
Windows: %USERPROFILE%\.dapr\components
在 Docker 网络内的任何容器中运行。使用 <hostname><hostname>:<port>。如果省略端口,将默认为:
  • Linux/MacOS: 50006
  • Windows: 6060
--enable-app-health-checkfalse使用 app-protocol 定义的协议为应用程序启用健康检查
--app-health-check-path用于健康检查的路径;仅限 HTTP
--app-health-probe-interval探测应用程序健康状态的间隔(秒)
--app-health-probe-timeout应用程序健康探测的超时时间(毫秒)
--app-health-threshold将应用程序视为不健康的连续失败次数
--unix-domain-socket, -uUnix 域套接字目录挂载路径。如果指定,与 Dapr 边车的通信使用 Unix 域套接字,与使用 TCP 端口相比,延迟更低且吞吐量更大。Windows 上不可用。
--dapr-http-max-request-size4请求正文的最大大小(MB)。
--dapr-http-read-buffer-size4HTTP 读取缓冲区的最大大小(KB)。这也限制了 HTTP 标头的最大大小。默认为 4 KB
--kubernetes, -k在 Kubernetes 上运行 Dapr,用于 Kubernetes 上的多应用运行模板文件
--components-path, -dLinux/Mac: $HOME/.dapr/components
Windows: %USERPROFILE%\.dapr\components
已弃用,推荐使用 --resources-path

示例

# 运行 .NET 应用程序
dapr run --app-id myapp --app-port 5000 -- dotnet run

# 使用 Unix 域套接字运行 .Net 应用程序
dapr run --app-id myapp --app-port 5000 --unix-domain-socket /tmp -- dotnet run

# 运行 Java 应用程序
dapr run --app-id myapp -- java -jar myapp.jar

# 运行监听端口 3000 的 NodeJs 应用程序
dapr run --app-id myapp --app-port 3000 -- node myapp.js

# 运行 Python 应用程序
dapr run --app-id myapp -- python myapp.py

# 仅运行边车
dapr run --app-id myapp

# 运行用 Go 编写的 gRPC 应用程序(监听端口 3000)
dapr run --app-id myapp --app-port 5000 --app-protocol grpc -- go run main.go

# 运行启用 API 日志记录的监听端口 3000 的 NodeJs 应用程序
dapr run --app-id myapp --app-port 3000 --enable-api-logging  -- node myapp.js

# 传递多个资源路径
dapr run --app-id myapp --resources-path path1 --resources-path path2

# 运行多应用运行模板文件
dapr run -f dapr.yaml

# 在 Kubernetes 上运行多应用运行模板文件
dapr run -k -f dapr.yaml

17 - status CLI 命令参考

status CLI 命令的详细信息

说明

显示 Dapr 服务的健康状态。

支持的平台

用法

dapr status -k

标志

名称环境变量默认值说明
--help, -h打印此帮助消息
--kubernetes, -kfalse显示 Kubernetes 集群上 Dapr 服务的健康状态

示例

# 从 Kubernetes 获取 Dapr 服务状态
dapr status -k

警告消息

此命令可能会发出警告消息。

根证书更新警告

如果部署到 Kubernetes 集群的 mtls 根证书在 30 天内过期,将显示以下警告消息:

Dapr root certificate of your Kubernetes cluster expires in <n> days. Expiry date: <date:time> UTC. 
Please see docs.dapr.io for certificate renewal instructions to avoid service interruptions.

18 - stop CLI 命令参考

有关 stop CLI 命令的详细信息

描述

停止 Dapr 实例及其关联的应用程序。

受支持的平台

用法

dapr stop [flags]

标志

名称环境变量默认值描述
--app-id, -aAPP_ID要停止的应用程序 id
--help, -h打印此帮助信息
--run-file, -f使用 Multi-App Run 模板文件一次停止多个运行中的应用程序。目前处于 alpha 阶段,仅可用于 Linux/MacOS

示例

# 停止 Dapr 应用程序
dapr stop --app-id <ID>

19 - uninstall CLI 命令参考

关于 uninstall CLI 命令的详细信息

描述

卸载 Dapr 运行时。

支持的平台

用法

dapr uninstall [flags]

标志

名称环境变量默认值说明
--allfalse除了 Scheduler 服务和 actor Placement 服务容器外,还删除 Redis、Zipkin 容器。删除位于 $HOME/.dapr%USERPROFILE%\.dapr\ 的默认 Dapr 目录。
--help, -h打印此帮助信息
--kubernetes, -kfalse从 Kubernetes 集群卸载 Dapr
--namespace, -ndapr-system卸载 Dapr 的 Kubernetes 命名空间
--container-runtimedocker用于传入除 Docker 以外的容器运行时。支持的容器运行时为:dockerpodman

示例

从自托管模式卸载

dapr uninstall

您还可以使用 --all 选项来删除 .dapr 目录、Redis、Placement、Scheduler 和 Zipkin 容器

dapr uninstall --all

在设置 Dapr 时,您可以指定不同的容器运行时。如果省略 --container-runtime 标志,则默认容器运行时为 Docker。

dapr uninstall --all --container-runtime podman

从 Kubernetes 卸载

dapr uninstall -k

20 - upgrade CLI 命令参考

upgrade CLI 命令的详细信息

描述

在支持的托管平台上升级或降级 Dapr。

支持的平台

用法

dapr upgrade [flags]

标志

名称环境变量默认值描述
--help, -h打印此帮助信息
--kubernetes, -kfalse在 Kubernetes 集群中升级/降级 Dapr
--runtime-versionlatest要升级/降级到的 Dapr 运行时版本,例如:1.0.0
--set在命令行上设置值(可以指定多个或用逗号分隔多个值:key1=val1,key2=val2)
--image-registry从给定的镜像仓库拉取 Dapr 所需的容器镜像

示例

# 在 Kubernetes 中将 Dapr 升级到最新版本
dapr upgrade -k

# 在 Kubernetes 中升级或降级到指定的 Dapr 运行时版本
dapr upgrade -k --runtime-version 1.2

# 在 Kubernetes 中升级或降级到指定的 Dapr 运行时版本并设置值
dapr upgrade -k --runtime-version 1.2 --set global.logAsJson=true
# 使用私有仓库升级或降级,如果您使用私有仓库托管 dapr 镜像并在执行 `dapr init -k` 时使用了它
# 场景 1:dapr 镜像直接托管在私有仓库的根目录下 - 
dapr init -k --image-registry docker.io/username
# 场景 2:dapr 镜像托管在私有仓库的新/不同目录下 - 
dapr init -k --image-registry docker.io/username/<directory-name>

警告消息

此命令可能会发出警告消息。

根证书续订警告

如果部署到 Kubernetes 集群的 mtls 根证书将在 30 天内过期,将显示以下警告消息:

Dapr root certificate of your Kubernetes cluster expires in <n> days. Expiry date: <date:time> UTC. 
Please see docs.dapr.io for certificate renewal instructions to avoid service interruptions.

相关链接

21 - version CLI 命令参考

打印 Dapr 运行时和 CLI 版本。

描述

以普通或 JSON 格式打印 dapr CLI 和 daprd 可执行文件的版本。

支持的平台

用法

dapr version [flags]

标志

名称环境变量默认值描述
--help, -h打印此帮助信息
--output, -o输出格式(选项:json)

示例

# Dapr CLI 和运行时的版本
dapr version --output json

相关信息

你可以直接通过运行 daprd --version 命令获取 daprd 版本。

你也可以通过运行 dapr --version 标志获取常规版本输出。

22 - workflow CLI 命令

workflow CLI 命令的详细信息

管理 Dapr 工作流实例。

命令

命令描述
dapr workflow run启动新的工作流实例
dapr workflow list列出工作流实例
dapr workflow history获取工作流执行历史
dapr workflow purge清除工作流实例
dapr workflow suspend暂停工作流
dapr workflow resume恢复工作流
dapr workflow terminate终止工作流
dapr workflow raise-event触发外部事件
dapr workflow rerun重新运行工作流

标志

  -a, --app-id string      工作流实例所属的应用 ID
  -h, --help               workflow 的帮助信息
  -k, --kubernetes         以 Kubernetes Dapr 安装为目标
  -n, --namespace string   执行工作流操作的命名空间(默认为 "default")

示例

列出工作流

dapr workflow list --app-id myapp

启动工作流

dapr workflow run MyWorkflow --app-id myapp --input '{"key": "value"}'

Kubernetes 模式

dapr workflow list -k -n production --app-id myapp

列出指定应用程序的工作流实例。

用法

dapr workflow list [flags]

标志

名称类型描述
--app-id, -astring(必需)工作流实例所属的应用 ID
--filter-name, -wstring按名称过滤工作流
--filter-status, -sstring按状态过滤:RUNNING、COMPLETED、FAILED、CANCELED、TERMINATED、PENDING、SUSPENDED
--filter-max-age, -mstring过滤在指定时间段或时间戳内启动的工作流(例如:“300ms”、“1.5h”、“2023-01-02T15:04:05”)
--output, -ostring输出格式:short、wide、yaml、json(默认为 “short”)
--kubernetes, -kbool以 Kubernetes Dapr 安装为目标
--namespace, -nstringKubernetes 命名空间(默认为 “default”)

示例

基本用法

dapr workflow list --app-id myapp

按状态过滤

dapr workflow list --app-id myapp --filter-status RUNNING

按工作流名称过滤

dapr workflow list --app-id myapp --filter-name OrderProcessing

按时间过滤

# 最近 24 小时的工作流
dapr workflow list --app-id myapp --filter-max-age 24h

# 指定日期之后的工作流
dapr workflow list --app-id myapp --filter-max-age 2024-01-01T00:00:00Z

JSON 输出

dapr workflow list --app-id myapp --output json

清除处于终止状态(COMPLETED、FAILED、TERMINATED)的工作流实例。

用法

dapr workflow purge [instance-id] [flags]

标志

名称类型描述
--app-id, -astring(必需)工作流实例所属的应用 ID
--allbool清除所有处于终止状态的工作流实例(请谨慎使用)
--all-older-thanstring清除早于指定时间段或时间戳的实例(例如:“24h”、“2023-01-02T15:04:05Z”)
--kubernetes, -kbool以 Kubernetes Dapr 安装为目标
--namespace, -nstringKubernetes 命名空间(默认为 “default”)

示例

清除特定实例

dapr workflow purge wf-12345 --app-id myapp

清除早于 30 天的实例

dapr workflow purge --app-id myapp --all-older-than 720h

清除早于指定日期的实例

dapr workflow purge --app-id myapp --all-older-than 2023-12-01T00:00:00Z

清除所有终止状态的实例(危险!)

dapr workflow purge --app-id myapp --all

强制清除(无工作流运行时,危险!)

dapr workflow purge wf-12345 --app-id myapp --force