Amazon Simple Workflow Service
开发人员指南 (API 版本 2012-01-25)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Amazon Simple Workflow Service 限制

Amazon SWF 对特定工作流程参数的大小进行了限制,如每个账户的域数和工作流程执行历史记录的大小。这些限制旨在防止错误的工作流程消耗系统的所有资源,但并不是硬性限制。如果发现应用程序频繁超出这些限制,您可以申请提高服务限制

Amazon SWF 的常规账户限制

  • 最大注册域数 – 100

    此限制包括注册和弃用的域。

  • 最大工作流程和活动类型数 – 每个域 10000 个

    此限制包括注册和弃用的类型。

  • API 调用限制 – 除了少见的峰值以外,如果应用程序在很短时间内调用大量 API,则可能会受到限制。

  • 最大请求大小 – 每个请求 1 MB

    这是每个 Amazon SWF API 请求的总计 数据大小,包括请求标头以及所有其他关联请求数据。

对工作流程执行的限制

  • 最大已开启工作流程执行数 – 每个域 100000 个

    此计数包括子工作流程执行。

  • 最大工作流程执行时间 – 1 年

  • 最大工作流程执行历史记录数 – 25000 个事件

  • 最大子工作流程执行数 – 每个工作流程执行 1000 个。

  • 工作流程执行空闲时间限制 – 1 年(受工作流程执行时间限制约束)

    您可以配置工作流程超时,以便在工作流程特定阶段耗时太长时引发超时事件。

  • 工作流程保留时间限制 – 90 天

    此时间过后,无法再检索或查看工作流程历史。对 Amazon SWF 保留的已关闭工作流程执行数没有进一步的限制。

如果您的使用案例需要超过以上限制,可以使用 Amazon SWF 提供的功能继续执行并使用子工作流程执行构建应用程序。如果您发现仍需要提高限制,请参阅如何请求提高 Amazon SWF 服务限制

对任务执行的限制

  • 每个任务列表最大轮询数 – 每个任务列表中每个主机 100 个

    有 10 个可用主机,因此,每个任务列表的轮询总数限制为 1000。但是,如果单个主机在特定任务列表中收到 101 条轮询,将导致 LimitExceededException 异常。

  • 最大任务执行时间 - 1 年(受工作流程执行时间限制约束)

    可以配置活动超时,以便在活动任务执行的特定阶段耗时太长时引发超时事件。

  • SWF 在队列中保留任务的最长时间 – 1 年(受工作流程执行时间限制约束)

    可以配置活动注册过程中的默认活动超时,以便在活动任务执行的特定阶段耗时太长时引发超时事件。还可以在决策程序代码中排定活动任务时,覆盖默认活动超时。

  • 最大已开启活动任务数 – 每个工作流程执行 1000 个。

    此限制包括已排定的活动任务和正在由工作程序处理的活动任务。

  • 最大已开启定时器数 – 每个工作流程执行 1000 个

  • 最大输入/结果数据大小 – 32000 个字符

    此限制影响活动或工作流程执行结果数据、输入数据(排定活动任务或工作流程执行时)以及使用工作流程执行信号发送的输入。

  • 决策任务响应中的最大决策数 - 变化

    由于对最大 API 请求大小有 1 MB 的限制,因此在单个 RespondDecisionTaskCompleted 调用中返回的决策数将根据每个决策使用的数据大小(包括提供给已排定活动任务或工作流程执行的任何输入数据的大小)受到限制。

Amazon SWF 限制

除了前面所述的服务限制之外,某些使用令牌桶方案的 Amazon SWF API 调用和决策事件还受维护服务带宽的限制。如果请求速率持续超出此处列出的速率,您可以请求提高限制

限制针对每个账户/区域。us-east-1 的限制与其他区域略有不同;请参阅适用于所在区域的部分:

us-east-1 的限制

API 限制

API 名称 存储桶大小 重填速率 / s
CountClosedWorkflowExecutions 1000 1
CountOpenWorkflowExecutions 1000 1
CountPendingActivityTasks 100 1
CountPendingDecisionTasks 100 1
DeprecateActivityType 100 1
DeprecateDomain 50 1
DeprecateWorkflowType 100 1
DescribeActivityType 1000 1
DescribeDomain 100 1
DescribeWorkflowExecution 1000 1
DescribeWorkflowType 1000 1
GetWorkflowExecutionHistory 1000 5
ListActivityTypes 100 1
ListClosedWorkflowExecutions 100 1
ListDomains 50 1
ListOpenWorkflowExecutions 100 1
ListWorkflowTypes 100 1
PollForActivityTask 1000 100
PollForDecisionTask 1000 142
RecordActivityTaskHeartbeat 1000 1
RegisterActivityType 100 1
RegisterDomain 50 1
RegisterWorkflowType 100 1
RequestCancelWorkflowExecution 1000 5
RespondActivityTaskCanceled 1000 100
RespondActivityTaskCompleted 1000 100
RespondActivityTaskFailed 1000 100
RespondDecisionTaskCompleted 1000 142
SignalWorkflowExecution 1000 5
StartWorkflowExecution 1000 25
TerminateWorkflowExecution 1000 10

决策限制

决策 存储桶大小 重填速率 / s
RequestCancelExternalWorkflowExecution 100 10
ScheduleActivityTask 500 100
SignalExternalWorkflowExecution 100 10
StartChildWorkflowExecution 500 2
StartTimer 1000 142

其他区域的限制

API 限制

API 名称 存储桶大小 重填速率 / s
CountClosedWorkflowExecutions 1000 1
CountOpenWorkflowExecutions 1000 1
CountPendingActivityTasks 100 1
CountPendingDecisionTasks 100 1
DeprecateActivityType 100 1
DeprecateDomain 50 1
DeprecateWorkflowType 100 1
DescribeActivityType 1000 1
DescribeDomain 100 1
DescribeWorkflowExecution 1000 1
DescribeWorkflowType 1000 1
GetWorkflowExecutionHistory 1000 5
ListActivityTypes 100 1
ListClosedWorkflowExecutions 100 1
ListDomains 50 1
ListOpenWorkflowExecutions 100 1
ListWorkflowTypes 100 1
PollForActivityTask 1000 10
PollForDecisionTask 1000 12
RecordActivityTaskHeartbeat 1000 1
RegisterActivityType 100 1
RegisterDomain 50 1
RegisterWorkflowType 100 1
RequestCancelWorkflowExecution 1000 5
RespondActivityTaskCanceled 1000 10
RespondActivityTaskCompleted 1000 10
RespondActivityTaskFailed 1000 10
RespondDecisionTaskCompleted 1000 12
SignalWorkflowExecution 1000 5
StartWorkflowExecution 1000 2
TerminateWorkflowExecution 1000 10

决策限制

决策 存储桶大小 重填速率 / s
RequestCancelExternalWorkflowExecution 100 10
ScheduleActivityTask 100 10
SignalExternalWorkflowExecution 100 10
StartChildWorkflowExecution 100 2
StartTimer 500 25

如何请求提高 Amazon SWF 服务限制

如果您认为将超过以上任何限制,请使用 Amazon SWF 限制提高表单联系 Amazon SWF 团队,讨论您的案例并请求提高限制。