Almacenamiento Firebase y funciones en la nube - ECONNRESET

Desarrollé una función Firebase Cloud que procesa varias manipulaciones en las imágenes cargadas. Mi código se basa eneste artículo de documentación yeste ejemplo de función en la nube. Por lo tanto, está utilizandoPaquete de Google Cloud Storage.

Funciona bien casi todo el tiempo, pero a veces recibo este error al cargar o eliminar de Storage:

 Error: read ECONNRESET
    at exports._errnoException (util.js:1026:11)
    at TLSWrap.onread (net.js:569:26)

Estoy usando el depósito predeterminado de mi aplicación, al que hace referenciaevent.data.bucket.

Avíseme si necesita información adicional o fragmentos de código, incluso si mi código está realmente cerca del ejemplo de Función que vinculé antes.

encontréeste problema de GitHub, pero comprobé que siempre estoy devolviendo una promesa. Por ejemplo, aquí está la parte de eliminación que desencadena el error:

index.js

exports.exampleFunction = functions.storage.object().onChange(event => {
    return f_thumbnails.exampleFunction(event);
});

example_function.js

module.exports = exports = function (_admin, _config) {
    admin = _admin;
    config = _config;

    return {
        "exampleFunction": function (event) {
            return exampleFunction(event);
        }
    };
};

const exampleFunction = function (event) {
    const gcsSourceFilePath = event.data.name;
    const gcsSourceFilePathSplit = gcsSourceFilePath.split('/');
    const gcsBaseFolder = gcsSourceFilePathSplit.length > 0 ? gcsSourceFilePathSplit[0] : '';
    const gcsSourceFileName = gcsSourceFilePathSplit.pop();
    const gceSourceFileDir = gcsSourceFilePathSplit.join('/') + (gcsSourceFilePathSplit.length > 0 ? '/' : '');

    // Not an image
    if (!event.data.contentType.startsWith('image/')) {
        console.log('Not an image !');
        return;
    }

    // Thumbnail
    if (gcsSourceFileName.startsWith(config.IMAGES_THUMBNAIL_PREFIX)) {
        console.log('Thumbnail !');
        return;
    }

    const bucket = gcs.bucket(event.data.bucket);
    const gcsThumbnailFilePath = gceSourceFileDir + config.IMAGES_THUMBNAIL_PREFIX + gcsSourceFileName;


    // File deletion
    if (event.data.resourceState === 'not_exists') {
        console.log('Thumbnail deletion : ' + gcsThumbnailFilePath);
        return bucket.file(gcsThumbnailFilePath).delete().then(() => {
            console.log('Deleted thumbnail ' + gcsThumbnailFilePath);
        });
    }
    ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta