cloud-report
Version:
Collects and analyzes cloud resources
45 lines (44 loc) • 2.26 kB
JavaScript
;
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;