faastjs
Version:
Serverless batch computing made simple.
51 lines • 8.17 kB
JavaScript
;
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