地图状态如何在 AWS Step Functions 中定价?

How are Map states priced in AWS Step Functions?

我发现关于基于输入数组扇出的地图状态的定价文档含糊不清。有谁知道每次扇出是否最终被算作“状态转换”而产生 0.025 美元的成本?这是一个示例输入和状态机定义以供参考。

输入:

{ "data": [
        // Is each of these going to be a "state transition"?
        { "name": "a" },
        { "name": "b" },
    ] }

定义:

{
  "StartAt": "Start",
  "States": {
    "Start": {
      "Type": "Map",
      "ItemsPath": "$.data",
      "End": true,
      "Iterator": {
        "StartAt": "Monitor",
        "States": {
          "Monitor": {
            "Type": "Task",
            "Resource": "some-lambda",
            "End": true
          }
        }
      }
    }
  }
}

Step Functions 状态转换的成本是:

[=11=].000025 PER STATE TRANSITION THEREAFTER

[=11=].025 per 1,000 state transitions

使用 AWS Step Functions,您需要为数字状态转换付费。 那么让我们看看 Map State 会创建多少个状态转换。

AWS Step Functions 仅对以 Entered

结尾的事件向客户收费

对于每个地图状态,我们至少有这 4 个状态转换:

  • MapStateEntered(计为状态转换)
  • MapStateStarted(未计算在内)
  • MapStateSucceeded(未计算在内)
  • MapStateExited(未计算在内)

对于地图状态的每次迭代,我们都有这两个状态转换:

  • MapIterationStarted(未计算在内)
  • MapIterationSucceeded(未计数)

因此对于地图状态,我们可以假设成本定义为:

cost = (1 + iterations * (steps inside iteration) ) * $0.000025

因此对于您的示例(具有 2 次迭代的 Map 状态的执行),Map 状态的开销是:

转换:1+2*1 = 3

费用:3 * 0.000025 = 0.000075 美元