Source: Dev.to
请提供您希望翻译的正文内容,我将为您翻译成简体中文并保留原有的格式、Markdown 语法以及技术术语。
概述
Azure Logic Apps Standard 使用 Azure Table Storage 作为其主要持久层,用于:
表类别
Logic Apps Standard 将数据组织为两个不同的表类别:
| 类别 | 范围 | 目的 |
|---|
| Base Tables | Logic App Resource | 跨所有工作流共享的运行时元数据 |
| Flow Tables | Individual Workflow | 每个工作流的隔离执行数据 |
此分离实现了 工作流隔离、水平扩展 和 独立的生命周期管理。
Source: …
基础表(应用级)
基础表存储适用于整个 Logic App 资源的元数据。Logic App 中的所有工作流共享这些表。
表命名模式
flow{LAIdentifier}{suffix}
| 组件 | 描述 |
|---|
| LAIdentifier | LogicAppName 的 MurmurHash64 前 15 个字符 |
| suffix | 表类型标识符(见下表) |
基础表类型
| 表后缀 | 用途 | 关键数据 |
|---|
flows | 主工作流注册表 | 工作流定义、状态、CU 分配 |
flowruntimecontext | 运行时执行上下文 | 流状态、执行集群类型、运行时配置 |
flowaccesskeys | 工作流访问密钥 | 工作流 API 访问的主/次密钥 |
flowsubscriptions | 订阅注册 | 租户注册、订阅状态 |
flowsubscriptionsummary | 工作流计数与摘要 | 按状态(已启用/已禁用)的流计数 |
jobdefinitions | 作业调度器元数据 | 执行状态、重试配置、重复计划 |
示例
对于名为 OrderProcessing 的 Logic App:
LAIdentifier = flow7365adc025615f3
生成的基础表:
flow7365adc025615f3flows
flow7365adc025615f3flowruntimecontext
flow7365adc025615f3flowaccesskeys
flow7365adc025615f3flowsubscriptions
flow7365adc025615f3flowsubscriptionsummary
flow7365adc025615f3jobdefinitions
Source: …
流表(工作流级)
流表存储每个工作流特有的执行数据。每个工作流都有自己独立的一组表。
表命名模式
flow{LAIdentifier}{WFIdentifier}{suffix}
| 占位符 | 描述 |
|---|
| LAIdentifier | MurmurHash64(LogicAppName) 的前 15 个字符 |
| WFIdentifier | MurmurHash64(WorkflowId) 的前 15 个字符 |
| suffix | 表类型标识(例如 flows、runs 等) |
流表类型
| 表后缀 | 用途 | 存储的关键数据 |
|---|
flows | 工作流定义缓存 | 最新定义、参数、运行时上下文、CU |
runs | 运行元数据 | 运行状态、时间信息、触发器信息、关联 ID |
histories | 触发历史 | 触发次数、评估结果、输入/输出链接 |
actions | 操作执行 | 操作状态、时间信息、输入/输出 Blob 链接 |
variables | 工作流变量 | 变量名、数据类型、值链接 |
concurrentruns | 并发跟踪 | 活动运行协调(当启用并发时) |
带日期戳的表
与操作相关的表按日期分区,以提升可扩展性:
{WFIdentifier}yyyyMMddT000000Z{suffix}
示例: 1c859134ef297b720250114T000000Zactions
示例
对于 OrderProcessing 逻辑应用中的工作流 ProcessOrder:
LAIdentifier = flow7365adc025615f3
WFIdentifier = 1c859134ef297b7
生成的表:
flow7365adc025615f31c859134ef297b7flows
flow7365adc025615f31c859134ef297b7runs
flow7365adc025615f31c859134ef297b7histories
flow7365adc025615f31c859134ef297b720250114T000000Zactions
flow7365adc025615f31c859134ef297b720250114T000000Zvariables
表关键字段
基础 Flows 表(主注册表)
| 字段 | 描述 |
|---|
FlowId | 唯一工作流标识符(GUID) |
FlowName | 工作流名称 |
Kind | 工作流类型(Stateful / Stateless) |
State | Enabled 或 Disabled |
ScaleUnit | CU 分配(CU00、CU01、…) |
DefinitionCompressed | 压缩的工作流 JSON 定义 |
ParametersCompressed | 压缩的工作流参数 |
RuntimeConfiguration | 保留设置、操作选项 |
CreatedTime / ChangedTime | 生命周期时间戳 |
FlowRuntimeContext 表
| 字段 | 描述 |
|---|
FlowId | 工作流标识符 |
FlowState | 当前工作流状态 |
FlowExecutionClusterType | 执行集群(Classic 等) |
Kind | 工作流类型 |
RuntimeConfiguration | 运行时设置 JSON |
FlowSequenceId | 序列标识符 |
FlowAccessKeys 表
| 字段 | 描述 |
|---|
FlowId | 工作流标识符 |
FlowAccessKeyName | 密钥名称(例如 default) |
PrimaryKey | 主访问密钥 |
SecondaryKey | 次访问密钥 |
FlowSubscriptions 表
| 字段 | 描述 |
|---|
SubscriptionId | Azure 订阅标识符 |
State | 注册状态(Registered 等) |
Properties | 租户 ID 和已注册功能的 JSON |
RegistrationDate | 订阅注册时间戳 |
FlowSubscriptionSummary 表
| 字段 | 描述 |
|---|
FlowCountsByState | 包含已启用/已禁用工作流计数的 JSON |
FlowId / FlowName | 工作流引用(用于每个工作流的条目) |
State | 工作流状态 |
ScaleUnit | CU 分配 |
DefinitionCompressed | 缓存的压缩定义 |
JobDefinitions 表
| 字段 | 描述 |
|---|
JobId | 唯一作业标识符 |
JobPartition | 作业分区键 |
Callback | 作业回调类型(例如 LinearSequencerJob) |
State | 作业状态(Completed、Waiting …) |
ExecutionState | 当前执行状态 |
StartTime / EndTime | 作业调度窗口 |
NextExecutionTime | 下次计划执行时间 |
此参考面向需要了解或排查 Azure Logic Apps Standard 持久化层的开发人员、架构师和运维工程师。
递归与重试配置
| 设置 | 描述 |
|---|
| RepeatMode / RepeatUnit / RepeatInterval | 重复配置 |
| RetryMode / RetryCount / RetryInterval | 重试配置 |
| CurrentExecutionCount | 总执行次数 |
| LastExecutionStatus / LastExecutionTime | 最近一次执行信息 |
| BinaryMetadata00‑15 | 压缩的作业元数据块 |
运行表
| 字段 | 描述 |
|---|
| FlowId / FlowName | 工作流的引用 |
| Status | Succeeded、Failed、Running、Cancelled |
| CreatedTime / EndTime | 运行的时间戳 |
| TriggerName | 启动运行的触发器名称 |
| CorrelationId | 请求关联标识符 |
| ClientTrackingId | 客户端提供的跟踪标识符 |
| TriggerCompressed | 触发器的压缩负载 |
| OutputsCompressed | 运行输出的压缩负载 |
历史表(触发器历史)
| 字段 | 描述 |
|---|
HistoryName | 历史条目标识符 |
TriggerName | 触发器引用 |
Fired | 布尔值 – 触发器是否实际触发 |
Status | 触发器评估结果 |
InputsLinkCompressed | 触发器输入链接(压缩) |
OutputsLinkCompressed | 触发器输出链接(压缩) |
TrackingId | 关联跟踪标识符 |
操作表
| Field | Description |
|---|
| ActionName | 操作的标识符 |
| ActionRepetitionName | 循环迭代索引(例如 000000) |
| Status | Succeeded、Skipped、Failed |
| Code | 结果代码(OK、ActionSkipped 等) |
| CreatedTime / CompletedTime | 操作开始和完成的时间戳 |
| InputsLinkCompressed | 指向压缩输入 Blob 的链接 |
| OutputsLinkCompressed | 指向压缩输出 Blob 的链接 |
| RepeatItemIndex | 循环迭代的索引 |
| RepeatItemScopeName | 父循环操作的名称 |
| Error | 错误详情(如果操作失败) |
变量表
| Field | Description |
|---|
| VariableName | 变量标识符 |
| DataType | 变量类型(Integer、String、Boolean 等) |
| FlowId / FlowName | 工作流引用 |
| FlowRunSequenceId | 运行序列标识符 |
| OperationId | 修改变量的操作 |
| OperationSequenceId | 操作序列 |
| InputsLinkCompressed | 变量输入的链接 |
| ValueLinkCompressed | 当前变量值的链接 |
| CreatedTime / ChangedTime | 变量生命周期时间戳 |
工作流 Flows 表(每‑工作流缓存)
| Field | Description |
|---|
| FlowId / FlowName | 工作流标识符 |
| Kind | 工作流类型(Stateful) |
| State | Enabled 或 Disabled |
| ScaleUnit | CU 分配 |
| DefinitionCompressed | 压缩的最新工作流定义 |
| ParametersCompressed | 压缩的参数 |
| RuntimeConfiguration | 运行时设置 JSON |
| RuntimeContext | 压缩的运行时上下文 |
| FlowSequenceId | 定义序列 ID |
| FlowUpdatedTime | 最近的定义更新时间 |
标识符生成
Logic Apps 使用 MurmurHash64 进行确定性、抗冲突的标识符生成。
算法
// Generate Logic App identifier (LAIdentifier)
string laIdentifier = "flow" + MurmurHash64(logicAppName).Substring(0, 15);
// Generate Workflow identifier (WFIdentifier)
string wfIdentifier = MurmurHash64(workflowId).Substring(0, 15);
// Build the complete table name
string tableName = laIdentifier + wfIdentifier + suffix;
约束
- 表名: 最多 63 个字符(Azure Table Storage 限制)
- 字符: 仅限小写字母和数字
- 哈希截断: 15 个字符即可提供足够的唯一性
快速参考
表名格式
Base: flow{LAIdentifier}{suffix}
Flow: flow{LAIdentifier}{WFIdentifier}{suffix}
Dated: flow{LAIdentifier}{WFIdentifier}{yyyyMMddT000000Z}{suffix}
常用后缀
| 后缀 | 级别 | 用途 |
|---|
flows | 两者 | 定义 |
runs | 流程 | 运行历史 |
actions | 流程 | 操作执行 |
flowsubscriptions | 基础 | 触发器订阅 |
jobdefinitions | 基础 | 计划作业 |