簡體   English   中英

使用Java使用Azure函數重用數據庫連接

[英]Reusing Database Connections With Azure Functions Using Javascript

我無法通過用Javascript編寫的Azure函數找到有關如何管理數據庫連接(在我的情況下為MongoDB)的明確信息。

下面的Microsoft文檔說,不要通過為SQL Server使用.NET Framework數據提供程序在C#中使用靜態變量來為函數的每次調用創建連接,並且池由客戶端連接處理。 它沒有描述如何使用Javascript執行此操作。

https://docs.microsoft.com/zh-cn/azure/azure-functions/manage-connections

這里描述了創建全局變量以在調用之間保存數據庫客戶端的解決方案,但是作者不確定這是正確的方法。

http://thecodebarbarian.com/getting-started-with-azure-functions-and-mongodb.html

有沒有人在生產中使用過此工具,或者是否了解這是正確的方法?

是的,C#/ SQL在靜態變量中存儲單個SqlConnection實例與在全局變量中存儲單個Db實例之間有非常接近的對等關系。 Azure Functions中JS / MongoDB的基本模式是(假設您是最新的異步/等待-或者您可以根據鏈接的文章使用回調):

// 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 ..
};

這意味着每個主機實例僅實例化一個Db對象。 請注意,這不是每個功能應用程序一個-如果您正在使用專用的應用程序服務計划,則計划中將指定數量的實例;如果您使用的是消費計划,則它會有所不同取決於您的應用程序的繁忙程度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM