Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 AWS Step函数中的负载控制函数_Amazon S3_Architecture_Aws Lambda_Aws Step Functions - Fatal编程技术网

Amazon s3 AWS Step函数中的负载控制函数

Amazon s3 AWS Step函数中的负载控制函数,amazon-s3,architecture,aws-lambda,aws-step-functions,Amazon S3,Architecture,Aws Lambda,Aws Step Functions,AWS步进函数状态机的核心是Lambda函数,它对S3存储桶进行大量写入。当状态机出现使用高峰时,由于S3阻止了进一步的请求,函数开始失败(com.amazonaws.services.S3.model.AmazonS3Exception:请降低请求速率。)。这显然会导致整个状态机执行失败,整个系统需要几分钟才能完全恢复 我查看了并发现,当我们减少保留并发标志时,一旦无法处理新事件,函数将开始返回429状态代码 因此,我对加载控制函数执行的想法可以总结如下: 将保留并发设置为较低的值 捕捉ste

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

我查看了并发现,当我们减少保留并发标志时,一旦无法处理新事件,函数将开始返回
429
状态代码

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

  • 将保留并发设置为较低的值
  • 捕捉step函数和中的
    429
    错误
  • 我想听听你们在以下方面的反馈:

    a。我的方法有意义吗?还是我遗漏了一些明显更好的方法?我第一次考虑使用AWS SQS或一些执行范围的锁定/信号量来管理负载,但实际上没有看到更多。
    B是否有其他方法可以从S3方面解决这个问题?

    这种方法对我很有效:

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

    这种方法对我很有效:

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