UNPKG

faastjs

Version:

Serverless batch computing made simple.

51 lines 8.17 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC1hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L2ZpeHR1cmVzL3V0aWwtYXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLFNBQWdCLE9BQU8sQ0FBSSxDQUFhO0lBQ3BDLE9BQU8sQ0FBQztTQUNILElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNOLDJEQUEyRDtRQUMzRCxrRUFBa0U7UUFDbEUsaUVBQWlFO1FBQ2pFLHdEQUF3RDtRQUN4RCxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBUSxDQUFDO1FBQzFELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLE9BQU87U0FDVjtRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO1NBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQWRELDBCQWNDO0FBRU0sS0FBSyxVQUFVLGVBQWUsQ0FBQyxHQUFtQixFQUFFLGVBQWUsR0FBRyxLQUFLO0lBQzlFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDaEUsTUFBTSxFQUNGLFlBQVksRUFDWixRQUFRLEVBQ1IsTUFBTSxFQUNOLHdCQUF3QixFQUN4QixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixHQUFHLElBQUksRUFDVixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBRXhCLE1BQU0sZ0JBQWdCLEdBQTBCLEVBQUUsQ0FBQztJQUVuRCxNQUFNLGNBQWMsR0FBRyxNQUFNLE9BQU8sQ0FDaEMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FDcEQsQ0FBQztJQUVGLE1BQU0sV0FBVyxHQUNiLEtBQUs7UUFDTCxDQUFDLE1BQU0sT0FBTyxDQUNWLE1BQU0sQ0FBQyxlQUFlLENBQUM7WUFDbkIsU0FBUyxFQUFFLEtBQU0sQ0FBQyxTQUFTO1lBQzNCLGFBQWEsRUFBRSxLQUFNLENBQUMsT0FBTztTQUNoQyxDQUFDLENBQ0wsQ0FBQyxDQUFDO0lBRVAsTUFBTSxTQUFTLEdBQUcsTUFBTSxPQUFPLENBQzNCLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxlQUFnQixFQUFFLENBQUMsQ0FDekQsQ0FBQztJQUNGLE1BQU0sU0FBUyxHQUFHLE1BQU0sT0FBTyxDQUMzQixHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWlCLEVBQUUsQ0FBQyxDQUMxRCxDQUFDO0lBRUYsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLE9BQU8sQ0FDcEMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLEVBQUUsUUFBUSxFQUFFLGVBQWdCLEVBQUUsQ0FBQyxDQUMvRCxDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxPQUFPLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpFLE1BQU0sY0FBYyxHQUNoQixlQUFlO1FBQ2YsWUFBWTtRQUNaLENBQUMsTUFBTSxPQUFPLENBQ1YsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FDckUsQ0FBQyxDQUFDO0lBRVAsSUFBSSxRQUFRLElBQUksd0JBQXdCLElBQUksTUFBTSxJQUFJLGdCQUFnQixFQUFFO1FBQ3BFLFNBQVM7S0FDWjtJQUVELE9BQU87UUFDSCxjQUFjLEVBQUUsQ0FBQyxjQUFjLElBQUksY0FBYyxDQUFDLFNBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVM7UUFDN0UsY0FBYztRQUNkLFNBQVM7UUFDVCxTQUFTO1FBQ1Qsa0JBQWtCO1FBQ2xCLFdBQVc7UUFDWCxRQUFRO0tBQ1gsQ0FBQztBQUNOLENBQUM7QUFoRUQsMENBZ0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXdzRmFhc3RNb2R1bGUgfSBmcm9tIFwiLi4vLi4vaW5kZXhcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHF1aWV0bHk8VD4ocDogUHJvbWlzZTxUPikge1xuICAgIHJldHVybiBwXG4gICAgICAgIC50aGVuKHggPT4ge1xuICAgICAgICAgICAgLy8gT2NjYXNzaW9uYWxseSBBV1Mgd2lsbCByZXR1cm4gYW4gaW52YWxpZCByZXNwb25zZSB3aXRoIGFcbiAgICAgICAgICAgIC8vIFJlc3BvbnNlTWV0YWRhdGEgZmllbGQgd2hlbiBhbiBvYmplY3QgaXMgcmVjZW50bHkgZGVzdHJveWVkLiBXZVxuICAgICAgICAgICAgLy8gY2hlY2sgZm9yIHRoaXMgY2FzZSBhbmQgcmV0dXJuIHVuZGVmaW5lZCBhcyBpZiB0aGUgb2JqZWN0IHdlcmVcbiAgICAgICAgICAgIC8vIG5vdCB0aGVyZS4gVGhpcyBmaXhlcyBvY2Nhc3Npb25hbCB0ZXN0c3VpdGUgZmFpbHVyZXMuXG4gICAgICAgICAgICBjb25zdCB7IFJlc3BvbnNlTWV0YWRhdGEsICRtZXRhZGF0YSwgLi4ucmVzdCB9ID0geCBhcyBhbnk7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMocmVzdCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChfID0+IHt9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFXU1Jlc291cmNlcyhtb2Q6IEF3c0ZhYXN0TW9kdWxlLCBpbmNsdWRlTG9nR3JvdXAgPSBmYWxzZSkge1xuICAgIGNvbnN0IHsgbGFtYmRhLCBzbnMsIHNxcywgczMsIGNsb3Vkd2F0Y2ggfSA9IG1vZC5zdGF0ZS5zZXJ2aWNlcztcbiAgICBjb25zdCB7XG4gICAgICAgIEZ1bmN0aW9uTmFtZSxcbiAgICAgICAgUm9sZU5hbWUsXG4gICAgICAgIHJlZ2lvbixcbiAgICAgICAgU05TTGFtYmRhU3Vic2NyaXB0aW9uQXJuLFxuICAgICAgICBSZXF1ZXN0VG9waWNBcm4sXG4gICAgICAgIFJlc3BvbnNlUXVldWVVcmwsXG4gICAgICAgIFJlc3BvbnNlUXVldWVBcm4sXG4gICAgICAgIGxvZ0dyb3VwTmFtZSxcbiAgICAgICAgbGF5ZXIsXG4gICAgICAgIEJ1Y2tldCxcbiAgICAgICAgLi4ucmVzdFxuICAgIH0gPSBtb2Quc3RhdGUucmVzb3VyY2VzO1xuXG4gICAgY29uc3QgX2V4aGF1c3RpdmVDaGVjazogUmVxdWlyZWQ8dHlwZW9mIHJlc3Q+ID0ge307XG5cbiAgICBjb25zdCBmdW5jdGlvblJlc3VsdCA9IGF3YWl0IHF1aWV0bHkoXG4gICAgICAgIGxhbWJkYS5nZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb24oeyBGdW5jdGlvbk5hbWUgfSlcbiAgICApO1xuXG4gICAgY29uc3QgbGF5ZXJSZXN1bHQgPVxuICAgICAgICBsYXllciAmJlxuICAgICAgICAoYXdhaXQgcXVpZXRseShcbiAgICAgICAgICAgIGxhbWJkYS5nZXRMYXllclZlcnNpb24oe1xuICAgICAgICAgICAgICAgIExheWVyTmFtZTogbGF5ZXIhLkxheWVyTmFtZSxcbiAgICAgICAgICAgICAgICBWZXJzaW9uTnVtYmVyOiBsYXllciEuVmVyc2lvblxuICAgICAgICAgICAgfSlcbiAgICAgICAgKSk7XG5cbiAgICBjb25zdCBzbnNSZXN1bHQgPSBhd2FpdCBxdWlldGx5KFxuICAgICAgICBzbnMuZ2V0VG9waWNBdHRyaWJ1dGVzKHsgVG9waWNBcm46IFJlcXVlc3RUb3BpY0FybiEgfSlcbiAgICApO1xuICAgIGNvbnN0IHNxc1Jlc3VsdCA9IGF3YWl0IHF1aWV0bHkoXG4gICAgICAgIHNxcy5nZXRRdWV1ZUF0dHJpYnV0ZXMoeyBRdWV1ZVVybDogUmVzcG9uc2VRdWV1ZVVybCEgfSlcbiAgICApO1xuXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uUmVzdWx0ID0gYXdhaXQgcXVpZXRseShcbiAgICAgICAgc25zLmxpc3RTdWJzY3JpcHRpb25zQnlUb3BpYyh7IFRvcGljQXJuOiBSZXF1ZXN0VG9waWNBcm4hIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHMzUmVzdWx0ID0gQnVja2V0ICYmIChhd2FpdCBxdWlldGx5KHMzLmxpc3RPYmplY3RzVjIoeyBCdWNrZXQgfSkpKTtcblxuICAgIGNvbnN0IGxvZ0dyb3VwUmVzdWx0ID1cbiAgICAgICAgaW5jbHVkZUxvZ0dyb3VwICYmXG4gICAgICAgIGxvZ0dyb3VwTmFtZSAmJlxuICAgICAgICAoYXdhaXQgcXVpZXRseShcbiAgICAgICAgICAgIGNsb3Vkd2F0Y2guZGVzY3JpYmVMb2dHcm91cHMoeyBsb2dHcm91cE5hbWVQcmVmaXg6IGxvZ0dyb3VwTmFtZSB9KVxuICAgICAgICApKTtcblxuICAgIGlmIChSb2xlTmFtZSB8fCBTTlNMYW1iZGFTdWJzY3JpcHRpb25Bcm4gfHwgcmVnaW9uIHx8IFJlc3BvbnNlUXVldWVBcm4pIHtcbiAgICAgICAgLy8gaWdub3JlXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbG9nR3JvdXBSZXN1bHQ6IChsb2dHcm91cFJlc3VsdCAmJiBsb2dHcm91cFJlc3VsdC5sb2dHcm91cHMhWzBdKSB8fCB1bmRlZmluZWQsXG4gICAgICAgIGZ1bmN0aW9uUmVzdWx0LFxuICAgICAgICBzbnNSZXN1bHQsXG4gICAgICAgIHNxc1Jlc3VsdCxcbiAgICAgICAgc3Vic2NyaXB0aW9uUmVzdWx0LFxuICAgICAgICBsYXllclJlc3VsdCxcbiAgICAgICAgczNSZXN1bHRcbiAgICB9O1xufVxuIl19