Tak, istnieje bardzo bliska równoważność między przechowywaniem pojedynczego wystąpienia SqlConnection w zmiennej statycznej C#/SQL a przechowywaniem pojedynczej instancji DB w zmiennej globalnej przez JS/MongoDB. Podstawowym wzorcem dla JS/MongoDB w Azure Functions jest (zakładając, że jesteś na bieżąco z async/await - alternatywnie możesz użyć wywołań zwrotnych zgodnie z połączonym artykułem):
// 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 ..
};
Oznacza to, że na instancję hosta można utworzyć tylko jeden obiekt Db. Pamiętaj, że nie jest to jeden na aplikację funkcji — jeśli korzystasz z dedykowanego planu usługi aplikacji, będzie to liczba wystąpień określonych w planie, a jeśli korzystasz z planu zużycia, będzie się on różnić w zależności od tego, jak zajęta jest Twoja aplikacja.