From 5a23931734ee80b80182008197c92985975f1646 Mon Sep 17 00:00:00 2001 From: Mariusz Nowak Date: Tue, 18 May 2021 14:29:12 +0200 Subject: [PATCH] refactor(Telemetry): Normalize AWS request error codes --- lib/aws/request.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/aws/request.js b/lib/aws/request.js index b45d1fb7f66..e13bfdf833a 100644 --- a/lib/aws/request.js +++ b/lib/aws/request.js @@ -115,6 +115,11 @@ const getServiceInstance = memoize( } ); +const normalizerPattern = /(? { + return name.replace(normalizerPattern, '_$1').toUpperCase(); +}; + /** Execute request to AWS service * @param {Object|string} [service] - Description of the service to call * @prop [service.name] - Name of the service to call, support subclasses @@ -198,13 +203,17 @@ async function awsRequest(service, method, ...args) { providerError: Object.assign({}, err, { retryable: false }), }); } + const providerErrorCodeExtension = err.code ? normalizeErrorCodePostfix(err.code) : 'ERROR'; throw Object.assign( new ServerlessError( process.env.SLS_DEBUG && err.stack ? `${err.stack}\n${'-'.repeat(100)}` : message, - err.code + `AWS_${normalizeErrorCodePostfix(service.name)}_${normalizeErrorCodePostfix( + method + )}_${providerErrorCodeExtension}` ), { providerError: err, + providerErrorCodeExtension, } ); }