The documentation you are viewing is for Dapr v1.8 which is an older version of Dapr. For up-to-date documentation, see the latest version.

Azure Table Storage

关于Azure Table Storage状态存储组件的详细信息

配置

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

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: <NAME>
  namespace: <NAMESPACE>
spec:
  type: state.azure.tablestorage
  version: v1
  metadata:
  - name: accountName
    value: <REPLACE-WITH-ACCOUNT-NAME>
  - name: accountKey
    value: <REPLACE-WITH-ACCOUNT-KEY>
  - name: tableName
    value: <REPLACE-WITH-TABLE-NAME>

元数据字段规范

字段 必填 详情 Example
accountName Y 存储帐户名称 "mystorageaccount".
accountKey Y 主要或次要存储密钥 "key"
tableName Y The name of the table to be used for Dapr state. 如果表不存在,将会自动创建. "table"

安装Azure Table Storage

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

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

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

  • AccountName:存储账户名称 举例:mystorageaccount 举例:mystorageaccount
  • AccountKey:主要或次要存储密钥。
  • TableName:用于Dapr状态的表名称。 The name of the table to be used for Dapr state. The table will be created for you if it doesn’t exist 如果表不存在,将会自动创建

分区

Azure Table Storage状态存储使用在 Dapr API 请求中提供的 key 属性来确定 行键。 服务名称用于分区键。 这提供了最好的性能,因为每个服务类型将状态存储在它自己的表分区中。

这个状态存储在表存储中创建一个名为Value的列,并将原始状态放在里面。

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

curl -X POST http://localhost:3500/v1.0/state \
  -H "Content-Type: application/json"
  -d '[
        {
          "key": "nihilus",
          "value": "darth"
        }
      ]'

将在表中创建以下记录:

PartitionKey RowKey
myservice nihilus darth

并发(Concurrency)

根据官方文档,Azure表存储状态并发是通过使用ETag实现的。

相关链接