UNPKG

faastjs

Version:

Serverless batch computing made simple.

51 lines 8.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAWSResources = exports.quietly = void 0; function quietly(p) { return p .then(x => { // Occassionally AWS will return an invalid response with a // ResponseMetadata field when an object is recently destroyed. We // check for this case and return undefined as if the object were // not there. This fixes occassional testsuite failures. const { ResponseMetadata, $metadata, ...rest } = x; if (Object.keys(rest).length === 0) { return; } return x; }) .catch(_ => { }); } exports.quietly = quietly; async function getAWSResources(mod, includeLogGroup = false) { const { lambda, sns, sqs, s3, cloudwatch } = mod.state.services; const { FunctionName, RoleName, region, SNSLambdaSubscriptionArn, RequestTopicArn, ResponseQueueUrl, ResponseQueueArn, logGroupName, layer, Bucket, ...rest } = mod.state.resources; const _exhaustiveCheck = {}; const functionResult = await quietly(lambda.getFunctionConfiguration({ FunctionName })); const layerResult = layer && (await quietly(lambda.getLayerVersion({ LayerName: layer.LayerName, VersionNumber: layer.Version }))); const snsResult = await quietly(sns.getTopicAttributes({ TopicArn: RequestTopicArn })); const sqsResult = await quietly(sqs.getQueueAttributes({ QueueUrl: ResponseQueueUrl })); const subscriptionResult = await quietly(sns.listSubscriptionsByTopic({ TopicArn: RequestTopicArn })); const s3Result = Bucket && (await quietly(s3.listObjectsV2({ Bucket }))); const logGroupResult = includeLogGroup && logGroupName && (await quietly(cloudwatch.describeLogGroups({ logGroupNamePrefix: logGroupName }))); if (RoleName || SNSLambdaSubscriptionArn || region || ResponseQueueArn) { // ignore } return { logGroupResult: (logGroupResult && logGroupResult.logGroups[0]) || undefined, functionResult, snsResult, sqsResult, subscriptionResult, layerResult, s3Result }; } exports.getAWSResources = getAWSResources; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC1hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L2ZpeHR1cmVzL3V0aWwtYXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLFNBQWdCLE9BQU8sQ0FBSSxDQUFhO0lBQ3BDLE9BQU8sQ0FBQztTQUNILElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNOLDJEQUEyRDtRQUMzRCxrRUFBa0U7UUFDbEUsaUVBQWlFO1FBQ2pFLHdEQUF3RDtRQUN4RCxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBUSxDQUFDO1FBQzFELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakMsT0FBTztRQUNYLENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUMsQ0FBQztTQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFkRCwwQkFjQztBQUVNLEtBQUssVUFBVSxlQUFlLENBQUMsR0FBbUIsRUFBRSxlQUFlLEdBQUcsS0FBSztJQUM5RSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2hFLE1BQU0sRUFDRixZQUFZLEVBQ1osUUFBUSxFQUNSLE1BQU0sRUFDTix3QkFBd0IsRUFDeEIsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sR0FBRyxJQUFJLEVBQ1YsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUV4QixNQUFNLGdCQUFnQixHQUEwQixFQUFFLENBQUM7SUFFbkQsTUFBTSxjQUFjLEdBQUcsTUFBTSxPQUFPLENBQ2hDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQ3BELENBQUM7SUFFRixNQUFNLFdBQVcsR0FDYixLQUFLO1FBQ0wsQ0FBQyxNQUFNLE9BQU8sQ0FDVixNQUFNLENBQUMsZUFBZSxDQUFDO1lBQ25CLFNBQVMsRUFBRSxLQUFNLENBQUMsU0FBUztZQUMzQixhQUFhLEVBQUUsS0FBTSxDQUFDLE9BQU87U0FDaEMsQ0FBQyxDQUNMLENBQUMsQ0FBQztJQUVQLE1BQU0sU0FBUyxHQUFHLE1BQU0sT0FBTyxDQUMzQixHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZ0IsRUFBRSxDQUFDLENBQ3pELENBQUM7SUFDRixNQUFNLFNBQVMsR0FBRyxNQUFNLE9BQU8sQ0FDM0IsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsUUFBUSxFQUFFLGdCQUFpQixFQUFFLENBQUMsQ0FDMUQsQ0FBQztJQUVGLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxPQUFPLENBQ3BDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxlQUFnQixFQUFFLENBQUMsQ0FDL0QsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6RSxNQUFNLGNBQWMsR0FDaEIsZUFBZTtRQUNmLFlBQVk7UUFDWixDQUFDLE1BQU0sT0FBTyxDQUNWLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxDQUFDLENBQ3JFLENBQUMsQ0FBQztJQUVQLElBQUksUUFBUSxJQUFJLHdCQUF3QixJQUFJLE1BQU0sSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JFLFNBQVM7SUFDYixDQUFDO0lBRUQsT0FBTztRQUNILGNBQWMsRUFBRSxDQUFDLGNBQWMsSUFBSSxjQUFjLENBQUMsU0FBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUztRQUM3RSxjQUFjO1FBQ2QsU0FBUztRQUNULFNBQVM7UUFDVCxrQkFBa0I7UUFDbEIsV0FBVztRQUNYLFFBQVE7S0FDWCxDQUFDO0FBQ04sQ0FBQztBQWhFRCwwQ0FnRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NGYWFzdE1vZHVsZSB9IGZyb20gXCIuLi8uLi9pbmRleFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gcXVpZXRseTxUPihwOiBQcm9taXNlPFQ+KSB7XG4gICAgcmV0dXJuIHBcbiAgICAgICAgLnRoZW4oeCA9PiB7XG4gICAgICAgICAgICAvLyBPY2Nhc3Npb25hbGx5IEFXUyB3aWxsIHJldHVybiBhbiBpbnZhbGlkIHJlc3BvbnNlIHdpdGggYVxuICAgICAgICAgICAgLy8gUmVzcG9uc2VNZXRhZGF0YSBmaWVsZCB3aGVuIGFuIG9iamVjdCBpcyByZWNlbnRseSBkZXN0cm95ZWQuIFdlXG4gICAgICAgICAgICAvLyBjaGVjayBmb3IgdGhpcyBjYXNlIGFuZCByZXR1cm4gdW5kZWZpbmVkIGFzIGlmIHRoZSBvYmplY3Qgd2VyZVxuICAgICAgICAgICAgLy8gbm90IHRoZXJlLiBUaGlzIGZpeGVzIG9jY2Fzc2lvbmFsIHRlc3RzdWl0ZSBmYWlsdXJlcy5cbiAgICAgICAgICAgIGNvbnN0IHsgUmVzcG9uc2VNZXRhZGF0YSwgJG1ldGFkYXRhLCAuLi5yZXN0IH0gPSB4IGFzIGFueTtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhyZXN0KS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKF8gPT4ge30pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QVdTUmVzb3VyY2VzKG1vZDogQXdzRmFhc3RNb2R1bGUsIGluY2x1ZGVMb2dHcm91cCA9IGZhbHNlKSB7XG4gICAgY29uc3QgeyBsYW1iZGEsIHNucywgc3FzLCBzMywgY2xvdWR3YXRjaCB9ID0gbW9kLnN0YXRlLnNlcnZpY2VzO1xuICAgIGNvbnN0IHtcbiAgICAgICAgRnVuY3Rpb25OYW1lLFxuICAgICAgICBSb2xlTmFtZSxcbiAgICAgICAgcmVnaW9uLFxuICAgICAgICBTTlNMYW1iZGFTdWJzY3JpcHRpb25Bcm4sXG4gICAgICAgIFJlcXVlc3RUb3BpY0FybixcbiAgICAgICAgUmVzcG9uc2VRdWV1ZVVybCxcbiAgICAgICAgUmVzcG9uc2VRdWV1ZUFybixcbiAgICAgICAgbG9nR3JvdXBOYW1lLFxuICAgICAgICBsYXllcixcbiAgICAgICAgQnVja2V0LFxuICAgICAgICAuLi5yZXN0XG4gICAgfSA9IG1vZC5zdGF0ZS5yZXNvdXJjZXM7XG5cbiAgICBjb25zdCBfZXhoYXVzdGl2ZUNoZWNrOiBSZXF1aXJlZDx0eXBlb2YgcmVzdD4gPSB7fTtcblxuICAgIGNvbnN0IGZ1bmN0aW9uUmVzdWx0ID0gYXdhaXQgcXVpZXRseShcbiAgICAgICAgbGFtYmRhLmdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbih7IEZ1bmN0aW9uTmFtZSB9KVxuICAgICk7XG5cbiAgICBjb25zdCBsYXllclJlc3VsdCA9XG4gICAgICAgIGxheWVyICYmXG4gICAgICAgIChhd2FpdCBxdWlldGx5KFxuICAgICAgICAgICAgbGFtYmRhLmdldExheWVyVmVyc2lvbih7XG4gICAgICAgICAgICAgICAgTGF5ZXJOYW1lOiBsYXllciEuTGF5ZXJOYW1lLFxuICAgICAgICAgICAgICAgIFZlcnNpb25OdW1iZXI6IGxheWVyIS5WZXJzaW9uXG4gICAgICAgICAgICB9KVxuICAgICAgICApKTtcblxuICAgIGNvbnN0IHNuc1Jlc3VsdCA9IGF3YWl0IHF1aWV0bHkoXG4gICAgICAgIHNucy5nZXRUb3BpY0F0dHJpYnV0ZXMoeyBUb3BpY0FybjogUmVxdWVzdFRvcGljQXJuISB9KVxuICAgICk7XG4gICAgY29uc3Qgc3FzUmVzdWx0ID0gYXdhaXQgcXVpZXRseShcbiAgICAgICAgc3FzLmdldFF1ZXVlQXR0cmlidXRlcyh7IFF1ZXVlVXJsOiBSZXNwb25zZVF1ZXVlVXJsISB9KVxuICAgICk7XG5cbiAgICBjb25zdCBzdWJzY3JpcHRpb25SZXN1bHQgPSBhd2FpdCBxdWlldGx5KFxuICAgICAgICBzbnMubGlzdFN1YnNjcmlwdGlvbnNCeVRvcGljKHsgVG9waWNBcm46IFJlcXVlc3RUb3BpY0FybiEgfSlcbiAgICApO1xuXG4gICAgY29uc3QgczNSZXN1bHQgPSBCdWNrZXQgJiYgKGF3YWl0IHF1aWV0bHkoczMubGlzdE9iamVjdHNWMih7IEJ1Y2tldCB9KSkpO1xuXG4gICAgY29uc3QgbG9nR3JvdXBSZXN1bHQgPVxuICAgICAgICBpbmNsdWRlTG9nR3JvdXAgJiZcbiAgICAgICAgbG9nR3JvdXBOYW1lICYmXG4gICAgICAgIChhd2FpdCBxdWlldGx5KFxuICAgICAgICAgICAgY2xvdWR3YXRjaC5kZXNjcmliZUxvZ0dyb3Vwcyh7IGxvZ0dyb3VwTmFtZVByZWZpeDogbG9nR3JvdXBOYW1lIH0pXG4gICAgICAgICkpO1xuXG4gICAgaWYgKFJvbGVOYW1lIHx8IFNOU0xhbWJkYVN1YnNjcmlwdGlvbkFybiB8fCByZWdpb24gfHwgUmVzcG9uc2VRdWV1ZUFybikge1xuICAgICAgICAvLyBpZ25vcmVcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBsb2dHcm91cFJlc3VsdDogKGxvZ0dyb3VwUmVzdWx0ICYmIGxvZ0dyb3VwUmVzdWx0LmxvZ0dyb3VwcyFbMF0pIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgZnVuY3Rpb25SZXN1bHQsXG4gICAgICAgIHNuc1Jlc3VsdCxcbiAgICAgICAgc3FzUmVzdWx0LFxuICAgICAgICBzdWJzY3JpcHRpb25SZXN1bHQsXG4gICAgICAgIGxheWVyUmVzdWx0LFxuICAgICAgICBzM1Jlc3VsdFxuICAgIH07XG59XG4iXX0=