【发布时间】: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 状态码,一旦它无法处理新活动。
所以我对加载控制函数执行的想法可以总结如下:
- 将保留并发设置为某个较低的值。
- 在 step 函数和 retrying with a backoff rate 中捕获
429错误。
我想从以下几个方面得到你们的反馈:
一个。我的方法有意义还是我错过了一些明显更好的方法?我首先想到的是使用 AWS SQS 或一些执行范围的锁定/信号量来管理负载,但实际上并没有进一步了解。 湾。是否有其他方法可以从 S3 方面解决问题?
【问题讨论】:
标签: amazon-s3 architecture aws-lambda aws-step-functions