Azure Blob Storage

关于Azure Blob Store状态存储组件的详细信息

配置

要设置 Azure Blobstorage状态存储,请创建一个类型为state.azure.blobstorage的组件。 请参阅本指南,了解如何创建和应用状态存储配置。

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: <NAME>
  5. namespace: <NAMESPACE>
  6. spec:
  7. type: state.azure.blobstorage
  8. version: v1
  9. metadata:
  10. - name: accountName
  11. value: <REPLACE-WITH-ACCOUNT-NAME>
  12. - name: accountKey
  13. value: <REPLACE-WITH-ACCOUNT-KEY>
  14. - name: containerName
  15. value: <REPLACE-WITH-CONTAINER-NAME>

Warning

以上示例将密钥明文存储, It is recommended to use a secret store for the secrets as described here.

元数据字段规范

字段必填详情Example
accountNameY存储帐户名称“mystorageaccount”.
accountKeyY主要或次要存储密钥“key”
containerNameYDapr 状态的容器名称, 如果容器不存在,将会自动创建.“container”
ContentTypeNThe blob’s content type“text/plain”
ContentMD5NThe blob’s MD5 hash“vZGKbMRDAnMs4BIwlXaRvQ==”
ContentEncodingNThe blob’s content encoding“UTF-8”
ContentLanguageNThe blob’s content language“en-us”
ContentDispositionNThe blob’s content disposition. Conveys additional information about how to process the response payload“attachment”
CacheControlNThe blob’s cache control“no-cache”

安装Azure Blobstorage

请遵循 Azure 文档中关于如何创建 Azure Storage Account的说明

如果你想创建一个容器供Dapr使用,你可以事先这样做。 但是,当 Blob Storage状态提供者会在其不存在时为你自动创建。

要将 Azure Blob Storage配置为状态存储,你需要如下属性:

  • AccountName:存储账户名称 举例:mystorageaccount 举例:mystorageaccount
  • AccountKey:主要或次要存储密钥。
  • ContainerName:用于Dapr状态的容器名称。 如果容器不存在,将会自动创建.

应用配置

在Kubernetes中

要将 Azure Blob Storage状态存储应用到Kubernetes,请执行如下kubectl CLI:

  1. kubectl apply -f azureblob.yaml

本地运行

要在本地运行,创建一个包含YAML文件的components目录,并提供dapr run命令的路径,标志为--components-path

这个状态存储在容器中创建一个blob文件,并将原始状态放在里面。

例如,以下操作来自于名为myservice的服务

  1. curl -X POST http://localhost:3500/v1.0/state \
  2. -H "Content-Type: application/json"
  3. -d '[
  4. {
  5. "key": "nihilus",
  6. "value": "darth"
  7. }
  8. ]'

在容器中创建blob文件,文件名为key,文件内容为value

并发(Concurrency)

根据Azure Blob Storage文档,通过使用ETag实现Azure Blob Storage状态并发。

相关链接