亚马逊SWF配额 - Amazon Simple Workflow Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊SWF配额

Amazon 对某些工作流程参数的大小设定配SWF额,例如每个账户的域名数量和工作流程执行历史的大小。这些限额旨在防止错误的工作流消耗系统的所有资源,但并不是硬性限制。如果发现自己的应用程序经常超出这些限额,您可以申请提高服务限额。

Amazon 的一般账户配额 SWF

  • 最大注册域数 – 100

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

  • 最大工作流和活动类型数 – 每个域 10,000 个

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

  • API通话配额 — 除了不经常出现的峰值之外,如果应用程序在很短的时间内拨打大量API呼叫,则可能会受到限制。

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

    这是每个 Amazon SWF API 请求的数据大小,包括请求标题和所有其他相关的请求数据。

  • C@@ ount 的响应被截断 APIs — 表示已达到内部配额且响应未达到全部计数

    在返回完整响应之前,某些查询将达到上述 1 MB 的内部限额。以下 API 可以返回截断的响应,而不是完整的计数。

    对于上述每一个 API,如果 truncated 响应设置为 true,计数将小于完整数量。此内部限额无法提高。

  • 最大标签数 – 每个资源 50 个标签。

    尝试添加超过 50 个标签会引发 400 错误 TooManyTagsFault

工作流执行限额

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

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

  • 最长工作流执行时间 – 1 年 这是硬性限额,无法更改。

  • 最大工作流执行历史记录数 – 25000 个事件 这是硬性限额,无法更改。

    最佳实践是使构造的每个工作流的历史记录不会增长到超过 10000 个事件。因为决策程序必须获取工作流历史记录,所以,历史记录较小时,决策程序能够更快地完成决策。如果使用 Flow Fram ework,则可以使用 ContinueAsNew 以全新的历史记录继续工作流程。

  • 开启的子工作流执行的最大数量 – 每个工作流执行 1000 个

如果您的用例要求您超出这些配额,则可以使用 Amazon SWF 提供的功能继续执行并使用子工作流程执行来构建您的应用程序。如果您发现仍需要提高限额,请参阅 请求增加配额

任务执行限额

  • 每个任务列表最大轮询数 – 每个任务列表 1000 个

    同时最多可有 1000 个轮询程序对一个特定任务列表进行轮询。如果超过 1000,会引发 LimitExceededException

    注意

    虽然最大限额是 1000,但您可能会在达到此限额之前就遇到 LimitExceededException 错误。此错误并不意味着任务被延迟。相反,这意味着您在任务列表中拥有最大数量的闲置轮询器。Amazon SWF 设置此限制是为了节省客户端和服务器端的资源。设置限制可以防止过多轮询器进行不必要的等待。您可以使用多个任务列表分配轮询,以减少 LimitExceededException 错误。

  • 每秒安排的最大任务数 – 每个任务列表 2000 个

    在特定任务列表中,您每秒最多可安排 2000 个任务。如果超过 2000,您的 ScheduleActivityTask 决策将因 ACTIVITY_CREATION_RATE_EXCEEDED 错误而失败。

    注意

    虽然最大限额是 2000,但您可能会在达到此限额之前就遇到 ACTIVITY_CREATION_RATE_EXCEEDED 错误。要减少这些错误,您可以使用多个任务列表来分配负载。

  • 最长任务执行时间 – 1 年(受工作流最长执行时间限制)

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

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

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

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

    此限额包括已安排的活动任务和工作线程正在处理的活动任务。

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

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

    此限额会影响活动或工作流执行结果数据、安排活动任务或工作流执行时的输入数据,以及使用工作流执行信号发送的输入。

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

    由于最大API请求大小有 1 MB 的配额,因此单次调用中返回的决策数量RespondDecisionTaskCompleted将受到限制,具体取决于每个决策使用的数据大小,包括提供给计划活动任务或工作流程执行的任何输入数据的大小。

Amazon SWF 限制配额

除了前面描述的服务配额外,还会使用令牌存储桶方案限制某些 Amazon SWF API 调用和决策事件,以保持服务带宽。如果请求速率持续超出此处列出的速率,您可以请求提高节流限额

所有区域的节流和决策限额都是相同的。

所有区域的节流限额

以下限额适用于个人账户。此外,您也不能请求提高以下限额。有关此操作的信息,请参阅 请求增加配额

API 名称 桶大小 每秒的重填速率
CountClosedWorkflowExecutions 2000 6
CountOpenWorkflowExecutions 2000 6
CountPendingActivityTasks 200 6
CountPendingDecisionTasks 200 6
DeleteActivityType 200 6
DeleteWorkflowType 200 6
DeprecateActivityType 200 6
DeprecateDomain 100 6
DeprecateWorkflowType 200 6
DescribeActivityType 2000 6
DescribeDomain 200 6
DescribeWorkflowExecution 2000 6
DescribeWorkflowType 2000 6
GetWorkflowExecutionHistory 2000 60
ListActivityTypes 200 6
ListClosedWorkflowExecutions 200 6
ListDomains 100 6
ListOpenWorkflowExecutions 200 48
ListTagsForResource 50 30
ListWorkflowTypes 200 6
PollForActivityTask 2000 200
PollForDecisionTask 2000 200
RecordActivityTaskHeartbeat 2000 160
RegisterActivityType 200 60
RegisterDomain 100 6
RegisterWorkflowType 200 60
RequestCancelWorkflowExecution 2000 30
RespondActivityTaskCanceled 2000 200
RespondActivityTaskCompleted 2000 200
RespondActivityTaskFailed 2000 200
RespondDecisionTaskCompleted 2000 200
SignalWorkflowExecution 2000 30
StartWorkflowExecution 2000 200
TagResource 50 30
TerminateWorkflowExecution 2000 60
UndeprecateActivityType 200 6
UndeprecateDomain 100 6
UndeprecateWorkflowType 200 6
UntagResource 50 30

所有区域的决策限额

以下限额适用于个人账户。此外,您也不能请求提高以下限额。有关此操作的信息,请参阅 请求增加配额

API 名称 桶大小 每秒的重填速率
RequestCancelExternalWorkflowExecution 1200 120
ScheduleActivityTask 1000 200
SignalExternalWorkflowExecution 1200 120
StartChildWorkflowExecution 500 12
StartTimer 2000 200

工作流级别限额

以下限额适用于工作流级别,不可提高。

API 名称 桶大小 每秒的重填速率
GetWorkflowExecutionHistory 400 200
SignalWorkflowExecution 1000 1000
RecordActivityTaskHeartbeat 1000 1000
RequestCancelWorkflowExecution 200 200

请求增加配额

使用中的 S upport Center 页面申请增加所有区域的节流限额和的配额所有区域的决策限额。 Amazon Web Services Management Console 有关更多信息,请参阅《Amazon Web Services 一般参考》中的 To Request a Quota Increase