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.