开始下载并安装 Dapr CLI,使用powershell,输入以下的语句安装:
powershell -Command "iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1 | iex"
但是一般会报错如下,意思就是被墙了,要FQ才行:
iwr : 未能解析此远程名称: 'raw.githubusercontent.com'
所在位置 行:1 字符: 1 + iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/i ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest],WebExce
ption
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
FQ后再次执行,出现以下提示:
PS D:\> powershell -Command "iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1 | iex"PowerShell requires an execution policy of 'RemoteSigned'.
To make this change please run:
'Set-ExecutionPolicy RemoteSigned -scope CurrentUser'
按照提示我们需要执行策略更改,如下,输入Y确认即可:
PS D:\> Set-ExecutionPolicy RemoteSigned -scope CurrentUser
执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): Y
再次执行安装就安装成功了,默认安装在C:\dapr目录下,我们将此目录添加至用户PATH环境变量中。
此处看到已经默认添加了,我们就不用添加了,打开新的powershell后输入dapr命令验证,成功显示如下
用管理员权限运行powershell,输入dapr --version命令查询dapr版本如下:
PS C:\> dapr --version
CLI version: 1.2.0Runtime version: n/a
可以看到Runtime version没有显示,说明dapr运行时没有安装,我们输入dapr init命令,显示如下提示:
PS C:\>dapr init
Making the jump to hyperspace...
could not connect to Docker. Docker may not be installed or running
说明链接不到docker,我们运行docker后再次输入dapr init命令,但是报了403权限问题无法安装,多试几次就成功了(这里打个问号?),也可以查到版本号了:
PS C:\>dapr init
Making the jump to hyperspace...
Downloading binaries and setting up components...
cannot get the latest release version: https://api.github.com/repos/dapr/dapr/releases - 403Forbidden
PS C:\>dapr init
Making the jump to hyperspace...
Downloading binaries and setting up components...
Downloaded binaries and completed components set up.
daprd binary has been installed to C:\Users\Xu\.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
PS C:\> dapr --version
CLI version: 1.2.0Runtime version: 1.2.2
之后通过docker ps命令查看安装的容器,需要确保镜像为daprio/dapr、openzipkin/zipkin和redis的容器都运行
PS C:\>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
26af89c8762c daprio/dapr "./placement" 5 minutes ago Up 5 minutes 0.0.0.0:6050->50005/tcp dapr_placement
df646eb3b33a openzipkin/zipkin "start-zipkin" 5 minutes ago Up 5 minutes (healthy) 9410/tcp, 0.0.0.0:9411->9411/tcp dapr_zipkin
4a28c3982d6b redis "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 0.0.0.0:6379->6379/tcp dapr_redis
在dapr inti时,CLI 还创建了一个默认组件文件夹,其中包括几个 YAML 文件,其中包含state store、elevated 和 zipkin。 Dapr sidecar, 将读取这些文件。 告诉它使用Redis容器进行状态管理和消息传递,以及Zipkin容器来收集跟踪。
可以通过运行cmd,在文件管理器中打开如下:
explorer "%USERPROFILE%\.dapr\"
将会看到Dapr 配置、 Dapr 二进制目录和 Dapr 的默认组件目录
运行以下命令以启动 Dapr sidecar,它将在端口 3500 上监听名为 myapp 的空白应用程序
dapr run --app-id myapp --dapr-http-port 3500
因为使用此命令,没有定义自定义组件文件夹。因此Dapr 使用在 init 流中创建的默认组件定义(在 Windows中启用cmd用语句explorer "%USERPROFILE%.dapr"打开),告诉 Dapr 使用本地的 Redis Docker 容器作为状态存储和消息代理。
接下来我们保存一个键值对到redis docker中,如下
Invoke-RestMethod -Method Post -ContentType 'application/json' -Body '[{ "key": "name", "value": "Bruce Wayne"}]' -Uri 'http://localhost:3500/v1.0/state/statestore'
然后我们可以获取到我们保存的键值
Invoke-RestMethod -Uri 'http://localhost:3500/v1.0/state/statestore/name'
我们可以在redis中看到我们保存的键值对
像是上述的执行的dapr内置api,是启用了我们的默认组件,这里我们自己构造组件进行运行,创建一个名为my-components的文件夹,在此目录内创建一个新文件localSecretStore.yaml和一个名为mysecrets.json的密钥文件,内容分别如下:
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: my-secret-store
namespace: defaultspec:
type: secretstores.local.file
version: v1
metadata:
-name: secretsFile
value: my-components/mysecrets.json
-name: nestedSeparator
value: ":"
{
"my-secret" : "I'm Batman"}
您可以看到上述的文件定义有一个type: secretstores.local.file字段值,其告诉Dapr使用本地文件组件作为密钥存储。 元数据字段提供了使用该组件所需的组件特定信息(在本例中,是密钥存储JSON的路径)。
我们将当前目录跳转到my-components文件夹的上一个目录,运行dapr sidecar,并以我们定义的组件为启动项:
dapr run --app-id myapp --dapr-http-port 3500 --components-path ./my-components
之后我们获取密钥可以看到如下情况获取成功:
PS D:\> Invoke-RestMethod -Uri 'http://localhost:3500/v1.0/secrets/my-secret-store/my-secret'
my-secret
---------I'm Batman
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.cnblogs.com/xwc1996/p/15036959.html
内容来源于网络,如有侵权,请联系作者删除!