UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

49 lines (48 loc) 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("../../../utils"); const aws_1 = require("../../../utils/aws"); const base_1 = require("../../base"); const functions_1 = require("./functions"); class LambdaFunctionAliasesCollector extends base_1.BaseCollector { collect() { return this.getAllFunctionAliases(); } async getAllFunctionAliases() { const self = this; const serviceName = "Lambda"; const lambdaRegions = self.getRegions(serviceName); const lambdaFunctionsCollector = new functions_1.LambdaFunctionsCollector(); lambdaFunctionsCollector.setSession(this.getSession()); const function_aliases = {}; try { const functionsData = await utils_1.CollectorUtil.cachedCollect(lambdaFunctionsCollector); const functions = functionsData.functions; for (const region of lambdaRegions) { function_aliases[region] = {}; try { const lambda = self.getClient(serviceName, region); for (const fn of functions[region]) { const functionAliasesResponse = await lambda.listAliases({ FunctionName: fn.FunctionName, MaxItems: 5 }).promise(); if (functionAliasesResponse.Aliases) { function_aliases[region][fn.FunctionName] = functionAliasesResponse.Aliases; } else { function_aliases[region][fn.FunctionName] = []; } await utils_1.CommonUtil.wait(200); } } catch (error) { aws_1.AWSErrorHandler.handle(error); continue; } } } catch (error) { aws_1.AWSErrorHandler.handle(error); } return { function_aliases }; } } exports.LambdaFunctionAliasesCollector = LambdaFunctionAliasesCollector;