Azure JavaScript Приложение функции не отображает логирование контекста при использовании asyn c await - PullRequest
0 голосов
/ 30 апреля 2020

Я создал приложение Javascript Function в Azure. Функция вызывается событием в EventHub и записывает события в MongoDB. Когда я использую asyn c -await, регистрация не показывается с использованием context.log, но событие вставляется / обновляется в MongoDB. Когда я удаляю await, будет отображаться логирование и событие вставляется / обновляется в MongoDB. Я не понимаю этого. Мне нужно написать несколько журналов, чтобы я мог использовать Log Analytics для мониторинга функции.


const MONGODB = require('mongodb');
const URI = process.env.MONGODBCONNECT;
const DBNAME = process.env.DBNAME;
const COLLECTIONNAME = process.env.COLLECTIONNAME;
let client = null;

module.exports = async function (context, eventHubMessages) {
    let hasClient = client != null;

    if (client == null) {
        MONGODB.MongoClient.connect(URI, { useNewUrlParser: true, useUnifiedTopology: true }, function (error, _client) {
            if (error) {
                context.log('Failed to connect');
            }
            client = _client;
            eventHubMessages.forEach((message, index) => {
                process(message);
            });
        });
    } else {
        eventHubMessages.forEach((message, index) => {
            process(message);
        });
    }

    async function process(message) {
        try {
            var payload = JSON.parse(message).payload;
            var collection = client.db(DBNAME).collection(COLLECTIONNAME);
            var update_timestamp_mongodb = new Date().toISOString();
            var event_id = uuid();

            if (payload.OPERATIE == 'DELETE') {
                await collection.deleteOne({ "_id": payload.LZK_ID });
                context.log('Deleted in DB: ' + DBNAME + ', collection: ' + COLLECTIONNAME + ', _ID: ' + payload.LZK_ID);
            } else {
                await collection.updateOne({ "_id": payload.LZK_ID }, {
                    $set: {
                        "LABORATORIUMONDERZOEK": JSON.parse(payload.LABORATORIUMONDERZOEK),
                        "UUID": event_id,
                        "MONGODB_TIMESTAMP": update_timestamp_mongodb
                    }
                }, { upsert: true });
                context.log('Stored in DB: ' + DBNAME + ', collection: ' + COLLECTIONNAME + ', _ID: ' + payload.LZK_ID + ', uuid: ' + event_id);
            }
        } catch (error) {
            context.log.error('[GDDB-LAB-0500] Error: ', error.message, error.name, '\n\n Got message: ' + message);
        };
    };
}; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...