UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

45 lines (44 loc) 2.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const base_1 = require("../../base"); class LambdaDeadLetterQueueAnalyzer extends base_1.BaseAnalyzer { analyze(params, fullReport) { const allFunctions = params.functions; if (!allFunctions) { return undefined; } const dead_letter_queue_configured = { type: types_1.CheckAnalysisType.Reliability }; dead_letter_queue_configured.what = "Is dead letter queue (DLQ) configured for Lambda functions?"; dead_letter_queue_configured.why = `When we configure DLQ then Lambda function will pushes all the failure events into the queue for further investigation.`; dead_letter_queue_configured.recommendation = "Recommended to configure DLQ for all the Lambda functions"; dead_letter_queue_configured.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.DeadLetterConfig && fn.DeadLetterConfig.TargetArn) { functionAnalysis.severity = types_1.SeverityStatus.Good; functionAnalysis.message = "Dead Letter Queue is configured"; } else { functionAnalysis.severity = types_1.SeverityStatus.Warning; functionAnalysis.message = "Dead Letter Queue is not configured"; functionAnalysis.action = "Configure DLQ"; } allRegionsAnalysis[region].push(functionAnalysis); } } dead_letter_queue_configured.regions = allRegionsAnalysis; return { dead_letter_queue_configured }; } } exports.LambdaDeadLetterQueueAnalyzer = LambdaDeadLetterQueueAnalyzer;