function buildDeliveryMap()

in index.js [350:389]


function buildDeliveryMap(streamName, serviceName, context, event, callback) {
    if (debug) {
        console.log('Building delivery stream mapping');
    }
    if (deliveryStreamMapping[streamName]) {
        // A delivery stream has already been specified in configuration
        // This could be indicative of debug usage.
        exports.verifyDeliveryStreamMapping(streamName, false, context, event, callback);
    } else if (serviceName === DDB_SERVICE_NAME) {
        // dynamodb streams need the firehose delivery stream to match
        // the table name
        deliveryStreamMapping[streamName] = streamName;
        exports.verifyDeliveryStreamMapping(streamName, USE_DEFAULT_DELIVERY_STREAMS, context, event, callback);
    } else {
        // get the delivery stream name from Kinesis tag
        exports.kinesis.listTagsForStream({
            StreamName: streamName
        }, function (err, data) {
            shouldFailbackToDefaultDeliveryStream = USE_DEFAULT_DELIVERY_STREAMS;
            if (err) {
                exports.onCompletion(context, event, err, ERROR, "Unable to List Tags for Stream");
            } else {
                // grab the tag value if it's the foreward_to_firehose
                // name item
                data.Tags.map(function (item) {
                    if (item.Key === FORWARD_TO_FIREHOSE_STREAM) {
                        /*
                         * Disable fallback to a default delivery stream as a
                         * FORWARD_TO_FIREHOSE_STREAM has been specifically set.
                         */
                        shouldFailbackToDefaultDeliveryStream = false;
                        deliveryStreamMapping[streamName] = item.Value;
                    }
                });

                exports.verifyDeliveryStreamMapping(streamName, shouldFailbackToDefaultDeliveryStream, context, event, callback);
            }
        });
    }
}