UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

46 lines (45 loc) 2.28 kB
"use strict"; 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;