MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wiederverwendung von Datenbankverbindungen mit Azure Functions unter Verwendung von Javascript

Ja, es gibt eine sehr enge Äquivalenz zwischen C#/SQL, das eine einzelne SqlConnection-Instanz in einer statischen Variablen speichert, und JS/MongoDB, das eine einzelne Db-Instanz in einer globalen Variablen speichert. Das grundlegende Muster für JS/MongoDB in Azure Functions ist (vorausgesetzt, Sie sind auf dem neuesten Stand für async/await – alternativ können Sie Rückrufe gemäß Ihrem verlinkten Artikel verwenden):

// getDb.js

let dbInstance;

module.exports = async function() {
    if (!dbInstance) {
        dbInstance = await MongoClient.connect(uri);
    }
    return dbInstance;
};

// function.js

const getDb = require('./getDb.js');

module.exports = async function(context, trigger) {
    let db = await getDb();
    // ... do stuff with db ..
};

Dies bedeutet, dass Sie nur ein Db-Objekt pro Hostinstanz instanziieren. Beachten Sie, dass dies nicht eine pro Funktions-App ist. Wenn Sie einen dedizierten App Service-Plan verwenden, gibt es die Anzahl der Instanzen, die Sie im Plan angegeben haben, und wenn Sie einen Verbrauchsplan verwenden, variiert sie je nachdem, wie ausgelastet Ihre App ist.