Ano, existuje velmi těsná ekvivalence mezi C#/SQL uložením jedné instance SqlConnection do statické proměnné a JS/MongoDB uložením jedné instance Db do globální proměnné. Základní vzor pro JS/MongoDB v Azure Functions je (za předpokladu, že máte aktuální informace o async/wait – případně můžete použít zpětná volání podle vašeho odkazovaného článku):
// 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 ..
};
To bude znamenat, že vytvoříte pouze jeden objekt Db na instanci hostitele. Všimněte si, že toto není jedna pro každou aplikaci Function App – pokud používáte vyhrazený plán služeb aplikací, pak bude počet instancí, které jste zadali v plánu, a pokud používáte plán spotřeby, bude se lišit podle toho, jak je vaše aplikace vytížená.