
当某个Lambda的并发执行数达到默认的1000后,不仅会影响自身的执行,同时会影响同一region下的其他函数,因为默认的quota是应用在一个region下所有Lambda的。例如当ALB后面的Lambda并发数超出最大限制后,挂到API Gateway下面的Lambda一起会被Throttle:

S3 Event Notification调用Lambda属于异步的方式。如果某时刻我们向S3中同时上传成千上万个文件,会触发throttle:

当发生throttle时,Lambda将该事件重新放到内部队列里,待下次从队列里取出来继续处理,事件在队列里最大保留时长为6个小时
创建新的Lambda:

在Lambda的Configuration -> Concurrency页面,进行编辑,设置Reserved concurrency:

为了测试Throttle效果,我们把Reserve concurrency设置成0,这样最多同时只有0个函数执行 = 无法执行,永远被throttle:

保存后,创建一个测试事件。再运行测试,提示invoke API Rate Exceeded:

将Reserve concurrency更改为20,可以看到unreserved account concurrency变为980:

注意Unreserved account concurrency值不能低于100:

总结: