使用 Visual Studio 連線服務將 Azure Cosmos DB 新增至您的應用程式
使用 Visual Studio,您可以使用 連線服務 功能,將下列任一項連線至 Azure Cosmos DB:
- .NET Framework 控制台應用程式
- ASP.NET 模型-View-Controller (MVC) (.NET Framework)
- ASP.NET Core
- .NET Core (包括控制台應用程式、WPF、Windows Forms、類別庫)
- .NET Core 工作者角色
- Azure Functions(Azure 功能)
- 通用 Windows 平台應用程式
- Xamarin
- 科爾多瓦
線上的服務功能會將所有必要的參考和連線程式代碼新增至專案,並適當地修改組態檔。
先決條件
- 已安裝 Azure 工作負載的 Visual Studio。
- 受支援類型之一的專案
- Azure 帳戶。 如果您沒有 Azure 帳戶,請為 Visual Studio 訂閱者啟用 Azure 權益, 或 註冊免費試用。
使用已連線的服務連線到 Azure Cosmos DB
在 Visual Studio 中開啟您的專案。
在 [方案總管]中,以滑鼠右鍵按兩下 [連線服務] 節點,然後從操作功能表中選取 [[新增已連線的服務]。
如果您沒有看到 [連線服務] 節點,請選擇 [專案>連線服務]>[新增]。
在 [連線服務] 索引標籤中,選取 [服務相依性的 + 圖示。
在 [新增相依性] 頁面中,選取 [Azure Cosmos DB]。
如果您尚未登入,請登入您的 Azure 帳戶。 如果您沒有 Azure 帳戶,您可以註冊 免費試用。
在 [Azure Cosmos DB] 畫面中,選取現有的 Azure Cosmos DB,然後選取 [下一步] 。
如果您需要建立資料庫,請移至下一個步驟。 否則,請跳至步驟 7。
若要建立 Azure Cosmos DB:
選取 [在畫面底部建立新的 Azure Cosmos DB。
填寫 [Azure Cosmos DB:建立新的 畫面],然後選取 [建立 ] [建立]。
當 [設定 Azure Cosmos DB] 對話框顯示時,新的資料庫會出現在清單中。 選取清單中的新資料庫,然後選取 [下一步]。
輸入連接字串名稱,然後選擇您要將連接字串儲存在本機秘密檔案中,還是 Azure Key Vault。
變更摘要 畫面顯示,如果您完成此過程,將對您的專案進行的所有修改。 如果變更看起來正常,請選擇 完成。
連線會出現在 [連線服務] 標籤的 [服務相依性] 區段底下。
注意
對於 .NET Framework 專案,連線服務 UI 稍有不同。 若要查看差異,請與此頁面的 Visual Studio 2019 版本進行比較。
在 Visual Studio 中開啟您的專案。
在 [方案總管]中,以滑鼠右鍵按兩下 [連線服務] 節點,然後從操作功能表中選取 [新增],以開啟可用服務的功能表。
如果您沒有看到 [連線服務] 節點,請選擇 [專案>連線服務]>[新增]。
選擇 Azure Cosmos DB。 [連線到相依性] 頁面隨即出現。 您應該會看到兩個選項:一個用於本機模擬器,容器上的 Azure Cosmos DB 模擬器,另一個用於連線到即時 Azure Cosmos DB 服務。 您可以從本機模擬器開始降低成本並簡化早期開發。 您可以稍後重複這些步驟並選擇另一個選項,以移轉至實時服務。
如果您選擇使用 Azure Cosmos DB 模擬器,請點擊 下一步 來查看 變更摘要 畫面,其中顯示您專案的修改方式。 NuGet 套件參考會新增至您的專案,而本機模擬器的連線程式代碼會新增至您的專案。 一旦您在最後一個畫面上按兩下 [完成],就會建立模擬器的容器;您會在輸出視窗中看到映像下載狀態。
如果您想要連線到 Azure 服務,請繼續進行下一個步驟,或如果您尚未登入,請先登入您的 Azure 帳戶,再繼續進行。 如果您沒有 Azure 帳戶,您可以註冊 免費試用。
在 [Azure Cosmos DB] 畫面中,先選取現有的 Azure Cosmos DB,然後選取 [下一步] 。
如果您需要建立資料庫,請移至下一個步驟。 否則,請跳至步驟 7。
若要建立 Azure Cosmos DB:
選取 [在畫面底部建立新的 Azure Cosmos DB。
填寫 Azure Cosmos DB:建立新的 畫面,然後選取 [建立 ] [建立]。
當 [設定 Azure Cosmos DB] 對話框顯示時,新的資料庫會出現在清單中。 選取清單中的新資料庫,然後選取 [下一步]。
輸入連接字串名稱,然後選擇您要將連接字串儲存在本機秘密檔案中,還是 Azure Key Vault。
連接字串會新增為秘密,並在應用程式組態中提供。 在 ASP.NET Core 應用程式中,您可以在
WebApplicationBuild
物件上使用Configuration
屬性來存取此連接字串。變更摘要 畫面會顯示您完成此流程後將對專案進行的所有修改。 如果變更看起來正常,請選擇 完成。
在 [方案總管] 中,按兩下 [已連線的服務] 節點,以開啟 [已連線的服務] 索引標籤。連線會出現在 [服務相依性] 區段中:
如果您按下所新增相依性旁的三個點,您可以看到各種選項,例如 Connect 重新開啟精靈並變更連線。 您也可以按下視窗右上方的三個點,以查看啟動本機相依性、變更設定等選項。
根據預設,容器中的記憶體限制會設定為 2G,但通常需要更多記憶體才能執行 Azure Cosmos DB。 若要修正此問題,請流覽至方案資料夾底下的
.vs/sd/<GUID>/local
資料夾。 在 Windows 檔案總管中,您可能必須啟用隱藏的檔案,才能看到.vs
資料夾。 尋找並開啟檔案 cosmosdb1.docker-compose.yml。 設定 4G 或更高的記憶體限制。mem_limit = 4G
若要使用新的設定重新啟動容器,請在 [連線服務] 索引卷標的 [服務相依性] 區段中,按兩下三個點,然後選擇 [啟動本機相依性]。
注意
Azure Cosmos DB 的本機模擬器可能會參考使用 Azure Cosmos DB 暫存授權的基底映像。 如果 Azure Cosmos DB 容器未啟動,請檢查 [容器]* 窗格中的 [記錄] 標籤頁。 如果提到 PAL 到期問題,您需要取得本地容器的最新基礎映像檔。 從主控台提示字元執行下列命令:docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
。 授權會定期更新,而且當授權到期時,重新整理至最新的容器應該能解決問題。 您可以在 Azure Cosmos DB 模擬器 GitHub 存放庫檢視和報告 Azure Cosmos DB 模擬器的問題。
後續步驟
瞭解如何遵循 ASP.NET Core中開發的應用程式機密安全儲存策略,安全地儲存機密。 特別是,若要從機密儲存庫讀取連接字串,您可以將代碼新增為 使用配置 API 讀取機密。 程序代碼看起來可能像這樣,其中 builder
是出現在 ASP.NET Core 專案範本中 Program.csWebApplicationBuild
的實例:
// New instance of CosmosClient class using a connection string
using CosmosClient client = new(
connectionString: builder.Configuration["CosmosDBConnectionString"]
);
CosmosClient
可透過各種方法存取 Azure Cosmos DB 功能。 一旦有 CosmosClient
實例,您可以依照本指南建立 NoSQL 資料庫:使用 .NET在適用於 NoSQL 的 Azure Cosmos DB 中建立資料庫。
相關內容
- Azure Cosmos DB 產品頁面
- Azure Cosmos DB 文件
- ASP.NET Core 中的 相依性注入