是否可以使用无服务器离线测试 lambda 限制?

问题描述

我想使用 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 提高。