cloud-report
Version:
Collects and analyzes cloud resources
46 lines (45 loc) • 2.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = require("../../../types");
const base_1 = require("../../base");
class DefaultFunctionTimeoutAnalyzer extends base_1.BaseAnalyzer {
analyze(params, fullReport) {
const allFunctions = params.functions;
if (!allFunctions) {
return undefined;
}
const default_timeout_used_for_functions = { type: types_1.CheckAnalysisType.PerformanceEfficiency };
default_timeout_used_for_functions.what = "Is default timeout is used for Lambda functions?";
default_timeout_used_for_functions.why = `We need to set proper timeout for Lambda
functions in order achieve desire performance.`;
default_timeout_used_for_functions.recommendation = `Recommended to set proper
timeout as per your requirements`;
default_timeout_used_for_functions.benchmark = ['all'];
const allRegionsAnalysis = {};
for (const region in allFunctions) {
const regionFunctions = allFunctions[region];
allRegionsAnalysis[region] = [];
for (const fn of regionFunctions) {
const functionAnalysis = {};
functionAnalysis.resource = fn;
functionAnalysis.resourceSummary = {
name: "Function",
value: fn.FunctionName,
};
if (fn.Timeout !== 3) {
functionAnalysis.severity = types_1.SeverityStatus.Good;
functionAnalysis.message = "Default timeout is not used";
}
else {
functionAnalysis.severity = types_1.SeverityStatus.Warning;
functionAnalysis.message = "Set a proper timeout as per your needs";
functionAnalysis.action = "Analyze what function is doing and set a proper timeout";
}
allRegionsAnalysis[region].push(functionAnalysis);
}
}
default_timeout_used_for_functions.regions = allRegionsAnalysis;
return { default_timeout_used_for_functions };
}
}
exports.DefaultFunctionTimeoutAnalyzer = DefaultFunctionTimeoutAnalyzer;