共用方式為


使用 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

  1. 在 Visual Studio 中開啟您的專案。

  2. [方案總管]中,以滑鼠右鍵按兩下 [連線服務] 節點,然後從操作功能表中選取 [[新增已連線的服務]

    如果您沒有看到 [連線服務] 節點,請選擇 [專案>連線服務]>[新增]。

  3. 在 [連線服務] 索引標籤中,選取 [服務相依性的 + 圖示。

    顯示如何新增服務相依性的螢幕快照。

  4. 在 [新增相依性] 頁面中,選取 [Azure Cosmos DB]。

    顯示 [新增相依性] 畫面的螢幕快照,選取 [新增 Azure Cosmos DB] 選項。

    如果您尚未登入,請登入您的 Azure 帳戶。 如果您沒有 Azure 帳戶,您可以註冊 免費試用

  5. 在 [Azure Cosmos DB] 畫面中,選取現有的 Azure Cosmos DB,然後選取 [下一步]

    如果您需要建立資料庫,請移至下一個步驟。 否則,請跳至步驟 7。

    顯示如何將現有 Azure Cosmos DB 新增至專案的螢幕快照。

  6. 若要建立 Azure Cosmos DB:

    1. 選取 [在畫面底部建立新的 Azure Cosmos DB

    2. 填寫 [Azure Cosmos DB:建立新的 畫面],然後選取 [建立 ] [建立]。

      顯示 [新增 Azure Cosmos DB] 畫面的螢幕快照。

    3. [設定 Azure Cosmos DB] 對話框顯示時,新的資料庫會出現在清單中。 選取清單中的新資料庫,然後選取 [下一步]

  7. 輸入連接字串名稱,然後選擇您要將連接字串儲存在本機秘密檔案中,還是 Azure Key Vault

    顯示 [指定連接字串] 畫面的螢幕快照。

  8. 變更摘要 畫面顯示,如果您完成此過程,將對您的專案進行的所有修改。 如果變更看起來正常,請選擇 完成

    顯示 [變更摘要] 畫面的螢幕快照。

  9. 連線會出現在 [連線服務] 標籤的 [服務相依性] 區段底下。

    顯示 [服務相依性] 區段的螢幕快照。

注意

對於 .NET Framework 專案,連線服務 UI 稍有不同。 若要查看差異,請與此頁面的 Visual Studio 2019 版本進行比較。

  1. 在 Visual Studio 中開啟您的專案。

  2. [方案總管]中,以滑鼠右鍵按兩下 [連線服務] 節點,然後從操作功能表中選取 [新增],以開啟可用服務的功能表。

    顯示「已連線服務」功能表選項的螢幕擷圖。

    如果您沒有看到 [連線服務] 節點,請選擇 [專案>連線服務]>[新增]。

  3. 選擇 Azure Cosmos DB[連線到相依性] 頁面隨即出現。 您應該會看到兩個選項:一個用於本機模擬器,容器上的 Azure Cosmos DB 模擬器,另一個用於連線到即時 Azure Cosmos DB 服務。 您可以從本機模擬器開始降低成本並簡化早期開發。 您可以稍後重複這些步驟並選擇另一個選項,以移轉至實時服務。

    顯示 Azure Cosmos DB 選項的螢幕快照。

    如果您選擇使用 Azure Cosmos DB 模擬器,請點擊 下一步 來查看 變更摘要 畫面,其中顯示您專案的修改方式。 NuGet 套件參考會新增至您的專案,而本機模擬器的連線程式代碼會新增至您的專案。 一旦您在最後一個畫面上按兩下 [完成],就會建立模擬器的容器;您會在輸出視窗中看到映像下載狀態。

    如果您想要連線到 Azure 服務,請繼續進行下一個步驟,或如果您尚未登入,請先登入您的 Azure 帳戶,再繼續進行。 如果您沒有 Azure 帳戶,您可以註冊 免費試用

  4. 在 [Azure Cosmos DB] 畫面中,先選取現有的 Azure Cosmos DB,然後選取 [下一步]

    如果您需要建立資料庫,請移至下一個步驟。 否則,請跳至步驟 7。

    顯示 [將現有的 Azure Cosmos DB 新增至專案] 畫面的螢幕快照。

  5. 若要建立 Azure Cosmos DB:

    1. 選取 [在畫面底部建立新的 Azure Cosmos DB

    2. 填寫 Azure Cosmos DB:建立新的 畫面,然後選取 [建立 ] [建立]。

      顯示 [新增 Azure Cosmos DB] 畫面的螢幕快照。

    3. [設定 Azure Cosmos DB] 對話框顯示時,新的資料庫會出現在清單中。 選取清單中的新資料庫,然後選取 [下一步]

  6. 輸入連接字串名稱,然後選擇您要將連接字串儲存在本機秘密檔案中,還是 Azure Key Vault

    顯示 [指定連接字串] 畫面的螢幕快照。

    連接字串會新增為秘密,並在應用程式組態中提供。 在 ASP.NET Core 應用程式中,您可以在 WebApplicationBuild 物件上使用 Configuration 屬性來存取此連接字串。

  7. 變更摘要 畫面會顯示您完成此流程後將對專案進行的所有修改。 如果變更看起來正常,請選擇 完成

    顯示 [變更摘要] 畫面的螢幕快照。

  8. 在 [方案總管] 中,按兩下 [已連線的服務] 節點,以開啟 [已連線的服務] 索引標籤。連線會出現在 [服務相依性] 區段中:

    新增連線服務之後顯示「服務相依性」的螢幕快照。

    如果您按下所新增相依性旁的三個點,您可以看到各種選項,例如 Connect 重新開啟精靈並變更連線。 您也可以按下視窗右上方的三個點,以查看啟動本機相依性、變更設定等選項。

  9. 根據預設,容器中的記憶體限制會設定為 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 中建立資料庫。