I am new to Artillery. I installed nvs with node version 20.2.0 and artillery latest version. But when I am running with aws-lambda, I get a timeout error in the eu-west-1 region.

I'm getting this error while trying to run aws-lambda command for artillery. But the zip file that is created by artillery is being uploaded to s3 bucket successfully

λ Creating AWS Lambda function...  
- Bundling test data
  - acFamily.yml
- Installing dependencies
- Installing extra engines & plugins: artillery-plugin-http-ssl, artillery-engine-lambda
- Creating zip package
Preparing AWS environment...
- C:\ProgramData\nvs\node_modules\artillery\node_modules\aws-sdk\lib\http\node.js:87
      errCallback(AWS.util.error(new Error(msg), {code: 'TimeoutError'}));
                             ^

Error [TimeoutError]: Connection timed out after 120000ms

at ClientRequest. (C:\ProgramData\nvs\node_modules\artillery\node_modules\aws-sdk\lib\http\node.js:87:34)
at Object.onceWrapper (node:events:625:28)
at ClientRequest.emit (node:events:511:28)
at ClientRequest.emit (node:domain:489:12)
at TLSSocket.emitRequestTimeout (node:_http_client:840:9)
at Object.onceWrapper (node:events:625:28)
at TLSSocket.emit (node:events:523:35)
at TLSSocket.emit (node:domain:489:12)
at Socket._onTimeout (node:net:583:8)
at listOnTimeout (node:internal/timers:573:17) {
code: 'TimeoutError',
time: 2023-12-13T07:15:02.756Z,
region: 'eu-west-1',
hostname: 'artilleryio-test-data-eu-west-1-{IAM}.s3.eu-west-1.amazonaws.com',
retryable: true
}

Node.js v20.2.0

Please help me to solve the timeout issue and to run the performance testing with artillery and aws-lambda

1

There are 1 best solutions below

1
On

Can you please share your test script (YAML) used for this? I can see this is trying to use the artillery-engine-lambda (https://github.com/orchestrated-io/artillery-engine-lambda), which isn't an officially supported engine (and its purpose is to call lambda functions directly, i.e. to test lambda).

This is probably happening due to including an engine: lambda in your scenario. In Artillery, you only need to call the run-lambda command to run it in Lambda. This is different from trying to use a custom engine (which are usually created to test specific protocols or tools).