使用 AWS Step Functions,您只需按使用量付费。Step Functions 有两种工作流类型:标准工作流和快速工作流。 若要了解哪一工作流类型适合您的工作流需求,请参阅标准工作流与快速工作流比较。
AWS Step Functions 标准工作流定价详情
您需要根据执行应用程序所需的状态转换次数付费。
您的工作流程每执行一个步骤,Step Functions 就将状态转换计为一次。 您需要为所有状态机的状态转换总数(包括重试次数)支付费用。
Step Functions 免费套餐包含每月 4000 次免费状态转换。所有费用按天计费,按月收费。
Step Functions 免费套餐在 AWS 免费套餐的 12 个月期限到期后不会自动过期,而是无期限地提供给现有和新的 AWS 客户。
使用 AWS Step Functions 时,您需要按照每月使用的状态转换次数付费。您需要根据超出免费套餐的状态转换次数付费。有关详情,请查看“状态转换定价表”。
如果您工作流程的任何步骤中包含重试错误处理,则每次重试将作为一次额外的状态转换收费。
AWS Step Functions 标准工作流状态转换定价
AWS Step Functions 快速工作流定价详情
使用 Step Functions 快速工作流,您只需按使用量付费。计费将依据您工作流的请求总数和持续时间。
Step Functions 快速工作流在每当其开始执行工作流就计为一次请求,您的费用将会根据所有工作流上的请求总数来向您收取。其中包括来自控制台的测试。
持续时间从您的工作流开始执行时算起,直到其完成或终止,四舍五入到最近的 100ms,执行工作流时所用的内存量以 64-MB 区块为单位计费。
内存消耗基于工作流定义的大小、映射或并行状态的使用情况以及执行(有效负载)数据大小。定价示例 3 和 4 所示为估计内存使用情况的示例。
额外费用
如果您应用程序工作流程的操作使用了其他 AWS 服务或进行了数据传输,那么您可能需要支付额外费用。例如,您的应用程序工作流程调用了 AWS Lambda 函数,那么您需要按请求和每个 Lambda 函数的持续时间付费。有关 AWS 服务定价的详情,请参阅相关 AWS 服务详情页面的定价部分。以下列出了一些常用服务的定价信息链接。
传入/传出 Amazon EC2 的外部数据
请求和持续时间
按需、预留和 Spot 实例
Fargate 和 EC2 启动类型
Step Functions 定价示例
-
示例 1
包含顺序步骤的 AWS Step Functions 标准应用程序工作流应用程序工作流通过对图形上的节点进行计数来确定其需要的四次状态转换:
- 开始
- 上传 RAW 文件
- 删除 RAW 文件
- 结束
在美国东部(弗吉尼亚北部),每次状态转换的价格为 0.000025 USD,免费套餐包含每月 4000 次状态转换。如果您在一个月内执行该状态机 100000 次,且未出现任何因错误导致的重试,您需要支付:
工作流程中的状态转换次数 * 工作流程执行数 = 状态转换总次数
4 * 100,000 = 400,000
状态转换总次数 – 免费套餐状态转换次数 = 应计费的状态转换次数
400,000 – 4,000 = 396,000
月度费用 = 396,000 * 0.000025 USD = 9.90 USD
- 开始
-
示例 2
包含分支条件的 AWS Step Functions 标准应用程序工作流本例中使用的状态机可在 GitHub 中找到。
包含分支条件的应用程序工作流程具有多条路径。本示例中的步骤由 10 个箭头(或弧线)连接。从“开始”到“结束”的理想路径包含通过对图形上的节点进行计数确定的 9 次状态转换。从“开始”到“NotSupportedImageType”的路径将累计 3 到 4 次状态转换。如果任何状态中包含因处理错误导致的重试,则需要额外支付状态转换费用。
在美国东部(弗吉尼亚北部),每次状态转换的价格为 0.000025 USD,免费套餐包含每月 4000 次状态转换。如果您在一个月内执行此应用程序工作流程 100000 次,理想路径每次都成功,且没有任何因错误导致的重试,您将支付的费用如下:
每次执行中的状态转换次数 * 工作流程执行数 = 状态转换总次数
9 * 100,000 = 900,000
状态转换总次数 – 免费套餐状态转换次数 = 应计费的状态转换次数
900,000 – 4,000 = 896,000
月度费用 = 896,000 * 0.000025 USD = 22.40 USD
本示例中五个 AWS Lambda 函数的总费用为 97.62 USD。在成功处理一个 4.7MB JPEG 图像的理想路径中,Lambda 函数的大小和持续时间如下:
函数 内存 (MB) 持续时间(毫秒) ExtractImageMetadata 1024 3200 TransformMetadata 256 100 Rekognition 256 1200 Thumbnail 1536 1500 StoreImageMetadata 256 300 -
示例 3
AWS Step Functions 快速工作流您可以根据状态机定义的大小、执行(有效负载)数据大小和映射或并行状态的使用情况来估计 AWS Step Functions Express 工作流的内存使用情况。
使用的工作流内存 = 50 MB + 状态机定义大小 + 执行数据大小 x 并行或映射步骤数量
示例:
如果您的工作流拥有 10 KB 状态机定义大小,且无并行或映射步骤:
使用的工作流内存 = 50 MB + 10 KB使用的工作流内存 = 50.01 MB已计费内存(位于 64 MB 区块中)= 64 MBCloudWatch 指标包含与 ExpressExecutionMemory 下的内存消耗和 ExpressExecutionBilledMemory 下的已计费内存相关的详细信息。 您可以在“监控”选项卡中转至“Step Functions > 状态机 > 状态机名称”,在 AWS Step Functions 控制台中查看每个工作流的执行开始时间、执行持续时间、计费持续时间和计费内存等指标。
如果您每个月运行 100 万个工作流,且这些工作流的平均持续时间为 30 秒:
月度请求费用
价格为每百万次请求 1.00 USD月度请求费用 = 100 万个请求 * 1.00 USD = 1.00 USD月度持续时间费用
价格为每 GB-秒持续时间 0.00001667 USD100 万个工作流 x 30 秒持续时间 = 30000000 秒30,000,000 x 64 MB(已计费内存)/1024 MB = 1,875,000 GB-s月度持续时间费用 = 1875000 GB-s x 0.00001667 USD = 31.26 USD月度总费用
月度总费用 = 请求费用 + 持续时间费用月度总费用 = 1.00 USD + 31.26 USD = 32.26 USD
-
示例 4
AWS Step Functions 快速工作流您可以根据状态机定义的大小、执行(有效负载)数据大小和映射或并行状态的使用情况来估计 AWS Step Functions Express 工作流的内存使用情况。
使用的工作流内存 = 50 MB + 状态机定义大小 + 执行数据大小 x 并行或映射步骤数量
如果您的工作流拥有 50 KB 状态机定义大小,400 个映射步骤且每个步骤的有效工作负载为 32 KB:
使用的工作流内存 = 50 MB + 50 KB +(32 KB x 400 步)
使用的工作流内存 = 50 MB + 50 KB + 12,800 KB
使用的工作流内存 = 62.85 MB
已计费内存(位于 64 MB 区块中)= 64 MBCloudWatch 指标包含与 ExpressExecutionMemory 下的内存消耗和 ExpressExecutionBilledMemory 下的已计费内存相关的详细信息。 您可以在“监控”选项卡中转至“Step Functions > 状态机 > 状态机名称”,在 AWS Step Functions 控制台中查看每个工作流的执行开始时间、执行持续时间、计费持续时间和计费内存等指标。
如果您每个月运行 1 亿个工作流,且这些工作流的平均持续时间为 10 秒:
月度请求费用
价格为每百万次请求 1.00 USD
月度请求费用 = 1 亿个请求 x 1.00 USD = 100.00 USD月度持续时间费用
1 亿个工作流 x 10 秒持续时间 = 1000000000 秒
1,000,000,000 x 64 MB(已计费内存)/1024 MB = 62,500,000 GB-s
62500000 GB-s / 60 / 60 = 17361.11 GB-小时
每 GB-小时 0.06000 USD x 1000 GB-小时 = 60.00 USD
每 GB-小时 0.03000 USD x 4000 GB-小时 = 120.00 USD每 GB-小时 0.01642 USD x 12361.11 GB-小时 = 202.97 USD
月度持续时间费用 = 60.00 USD + 120.00 USD + 202.97 USD = 382.97 USD月度总费用
月度总费用 = 请求费用 + 持续时间费用
月度总费用 = 100.00 USD + 382.97 USD = 482.97 USD
-
示例 5
AWS Step Functions 地图状态地图状态可用于进行不断迭代和处理大型数据集。此示例包含处理前和处理后步骤,并对 Amazon Simple Storage Service (S3) 存储桶中的超过 100 万个对象进行迭代。
地图状态具有两种模式:内联和分布式。此示例使用分布式模式下的地图状态来实现每次迭代时,每个状态的高并发和分布式地图成本。此外,借助分布式模式下的地图状态,您可以为数据处理工作流指定执行类型。在此示例中,使用的是“表达式”执行类型。分布式地图内的“表达式”工作流使用的内存不到 64MB,一次执行的平均持续时间为 30 秒。
此工作流中的一次执行包含 1,000,005 次状态转换、1,000,000 次表达式请求,以及 520.33 GB-小时的持续时间:
- 1 次“启动”执行状态转换
- 1 次“进入处理前”状态转换
- 1 次“进入地图”状态转换
- 1,000,000 次“启动地图”迭代状态转换
- 1,000,000 次表达式请求
- 520.83 GB-小时 表达式持续时间
-
- 100 万次迭代 x 30 秒持续时间 = 30,000,000 秒
- 30,000,000 秒 x 64 MB(已计费内存)/1024 MB = 1,875,000 GB-秒
- 1,875,000 GB-秒 / 60 / 60 = 520.83 GB-小时
- 1 次“进入处理后”状态转换
- 1 次“结束执行”状态转换
状态转换费用
在美国东部(弗吉尼亚州北部),每次发生状态转换的价格是 0.000025 USD。免费套餐每月提供 4000 次免费状态转换。
状态转换总次数 – 免费套餐状态转换次数 = 应计费的状态转换次数
1,000,005 - 4000 = 996,005
状态转换费用 = 996,005 * 0.000025 USD = 24.90 USD
表达式请求费用
在美国东部(弗吉尼亚州北部),每 100 万次请求的价格是 1.00 USD。
请求费用 = 100 万次请求 * 1.00 USD = 1.00 USD表达式持续时间费用
在美国东部(弗吉尼亚州北部),第一个 1,000 GB-小时的价格是 0.0600 USD。持续时间费用 = 520.83 GB-小时 x 0.0600 USD = 31.25 USD
总费用 = 17.50 USD + 7.36 USD = 24.86 USD
总费用 = 24.90 USD + 1.00 USD + 31.25 USD = 57.15 USD
AWS Step Functions 入门