Azure Table Storage

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

配置

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

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: <NAME>
  5. namespace: <NAMESPACE>
  6. spec:
  7. type: state.azure.tablestorage
  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: tableName
  15. value: <REPLACE-WITH-TABLE-NAME>

Warning

以上示例将 Secret 明文存储。 更推荐的方式是使用 Secret 组件, 这里

元数据字段规范

字段必填详情示例
accountNameY存储帐户名称“mystorageaccount”.
accountKeyY主要或次要存储密钥“key”
tableNameYThe 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状态的表名称。 如果表不存在,将会自动创建.

分区

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

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

例如,以下操作来自于名为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. ]'

将在表中创建以下记录:

PartitionKeyRowKey
myservicenihilusdarth

并发(Concurrency)

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

相关链接