【问题标题】:Load Control Function in AWS Step FunctionAWS Step Function 中的负载控制函数
【发布时间】:2019-08-28 19:23:44
【问题描述】:

AWS Step Function 状态机的核心是一个 Lambda 函数,它对 S3 存储桶进行大量写入。当状态机出现使用高峰时,由于 S3 阻止进一步的请求,函数开始失败 (com.amazonaws.services.s3.model.AmazonS3Exception: Please reduce your request rate.)。这显然会导致整个状态机执行失败,整个系统需要几分钟才能完全恢复。

我查看了AWS Lambda Function Scaling Documentation 发现,当我们减少保留并发 标志时,该函数将开始返回429 状态码,一旦它无法处理新活动。

所以我对加载控制函数执行的想法可以总结如下:

  1. 保留并发设置为某个较低的值。
  2. 在 step 函数和 retrying with a backoff rate 中捕获 429 错误。

我想从以下几个方面得到你们的反馈:

一个。我的方法有意义还是我错过了一些明显更好的方法?我首先想到的是使用 AWS SQS 或一些执行范围的锁定/信号量来管理负载,但实际上并没有进一步了解。 湾。是否有其他方法可以从 S3 方面解决问题?

【问题讨论】:

    标签: amazon-s3 architecture aws-lambda aws-step-functions


    【解决方案1】:

    这种方法对我很有效:

    States:
     MyFunction:
      Type: Task
      End: true
      Resource: "..."
      Retry:
       - ErrorEquals:
          - TooManyRequestsException
         IntervalSeconds: 30
         MaxAttemtps: 5
         BackoffRate: 2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多