function verifyDeliveryStreamMapping()

in index.js [300:342]


function verifyDeliveryStreamMapping(streamName, shouldFailbackToDefaultDeliveryStream, context, event, callback) {
    if (debug) {
        console.log('Verifying delivery stream');
    }
    if (!deliveryStreamMapping[streamName]) {
        if (shouldFailbackToDefaultDeliveryStream) {
            /*
             * No delivery stream has been specified, probably as it's not
             * configured in stream tags. Using default delivery stream. To
             * prevent accidental forwarding of streams to a firehose set
             * USE_DEFAULT_DELIVERY_STREAMS = false.
             */
            deliveryStreamMapping[streamName] = deliveryStreamMapping['DEFAULT'];
        } else {
            /*
             * Fail as no delivery stream mapping has been specified and we have
             * not configured to use a default. Kinesis Streams should be tagged
             * with ForwardToFirehoseStream = <DeliveryStreamName>
             */
            exports.onCompletion(context, event, undefined, ERROR, "Warning: Kinesis Stream " + streamName + " not tagged for Firehose delivery with Tag name " + FORWARD_TO_FIREHOSE_STREAM);
        }
    }
    // validate the delivery stream name provided
    var params = {
        DeliveryStreamName: deliveryStreamMapping[streamName]
    };
    exports.firehose.describeDeliveryStream(params, function (err, data) {
        if (err) {
            if (shouldFailbackToDefaultDeliveryStream) {
                deliveryStreamMapping[streamName] = deliveryStreamMapping['DEFAULT'];
                exports.verifyDeliveryStreamMapping(streamName, false, context, event, callback);
            } else {
                exports.onCompletion(context, event, undefined, ERROR, "Could not find suitable delivery stream for " + streamName + " and the " + "default delivery stream ("
                    + deliveryStreamMapping['DEFAULT'] + ") either doesn't exist or is disabled.");
            }
        } else {
            // call the specified callback - should have
            // already
            // been prepared by the calling function
            callback();
        }
    });
}