Oui, il existe une équivalence très proche entre C#/SQL stockant une seule instance SqlConnection dans une variable statique et JS/MongoDB stockant une seule instance Db dans une variable globale. Le modèle de base pour JS/MongoDB dans Azure Functions est (en supposant que vous êtes à jour pour async/wait - vous pouvez également utiliser des rappels selon votre article lié) :
// 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 ..
};
Cela signifie que vous n'instanciez qu'un seul objet Db par instance d'hôte. Notez qu'il ne s'agit pas d'une application par fonction - si vous utilisez un plan de service d'application dédié, il y aura le nombre d'instances que vous avez spécifiées dans le plan, et si vous utilisez un plan de consommation, cela variera en fonction de l'occupation de votre application.