要配置 Azure 表存储状态组件,请创建一个类型为 state.azure.tablestorage
的组件。请参阅本指南了解如何创建和应用状态存储配置。
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: <NAME>
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>
# - name: cosmosDbMode
# value: false
字段 | 必需 | 详情 | 示例 |
---|---|---|---|
accountName | 是 | 存储帐户名称 | "mystorageaccount" |
accountKey | 是 | 主存储或辅助存储密钥 | "key" |
tableName | 是 | 用于 Dapr 状态的表名。如果不存在,将自动创建 | "table" |
cosmosDbMode | 否 | 启用后,将连接到 Cosmos DB 表 API 而非 Azure 表。默认为 false | "false" |
serviceURL | 否 | 完整的存储服务端点 URL,适用于非公共云的 Azure 环境 | "https://mystorageaccount.table.core.windows.net/" |
skipCreateTable | 否 | 跳过检查并在必要时创建指定的存储表,适用于最低权限的活动目录身份验证。默认为 false | "true" |
Azure Cosmos DB 状态组件支持所有 Microsoft Entra ID 认证机制。有关更多信息以及如何选择适合的组件元数据字段,请参阅Azure 认证文档。
您可以在下面的部分了解更多关于使用 Microsoft Entra ID 认证设置 Cosmos DB 的信息。
按照说明从 Azure 文档中了解如何创建 Azure 存储帐户。
如果您希望为 Dapr 创建一个表,可以提前进行。然而,表存储状态组件会自动为您创建一个表(如果它不存在),除非启用了 skipCreateTable
选项。
要将 Azure 表存储设置为状态存储,您需要以下属性:
skipCreateTable
选项。false
以连接到 Azure 表。按照说明从 Azure 文档中了解如何使用表 API 创建 Cosmos DB 帐户。
如果您希望为 Dapr 创建一个表,可以提前进行。然而,表存储状态组件会自动为您创建一个表(如果它不存在),除非启用了 skipCreateTable
选项。
要将 Azure Cosmos DB 表 API 设置为状态存储,您需要以下属性:
skipCreateTable
选项。true
以连接到 Cosmos DB 表 API。Azure 表存储状态组件使用请求中提供的 key
属性来确定 row key
,而服务名称用于 partition key
。这提供了最佳性能,因为每种服务类型在其自己的表分区中存储状态。
此状态存储在表存储中创建一个名为 Value
的列,并将原始状态放入其中。
例如,来自名为 myservice
的服务的以下操作
curl -X POST http://localhost:3500/v1.0/state \
-H "Content-Type: application/json"
-d '[
{
"key": "nihilus",
"value": "darth"
}
]'
将在表中创建以下记录:
PartitionKey | RowKey | Value |
---|---|---|
myservice | nihilus | darth |
Azure 表存储状态的并发通过使用 ETag
实现,具体请参阅官方文档。