问题描述
我想使用 serverless-offline 在本地测试 aws lambda 限制。当我运行此代码时,我希望看到一个错误 (TooManyRequestsException),但所有请求都已成功发送。我是否遗漏了什么,或者是否无法通过无服务器离线测试 aws 限制?
const lambda = new Lambda({
apiVersion: '2031',region: 'us-east-1',endpoint: 'http://localhost:3002',})
async function runMultipleLamdas() {
const params = {
// FunctionName is composed of: service name - stage - function name,e.g.
FunctionName: 'simple-http-endpoint-dev-currentTime',InvocationType: 'RequestResponse',Payload: JSON.stringify({ data: 'foo' }),}
Promise.all(Array(10000).fill(lambda.invoke(params).promise())).then(
(values) => {
console.log(values)
}
)
}
runMultipleLamdas()
解决方法
serverless-offline 不会模拟并发 Lambda 函数执行的 AWS 服务配额。每个区域 1,000 个并发执行的 AWS 默认配额值无论如何是一个软限制,可以通过 AWS Service Quotas console 提高。