2016-12-31

Azure DocumentDB - Part 10 (使用 Azure DocumentDB Emulator 開發)

經過幾天的介紹,對於 DocumentDB 有基本的認識,也使用過 DocumentDB SQL 語法、LINQ to DocumentDB SQL 跟 .NET SDK 的用法,對於基本使用有一定程度的掌握度了。

只是大家不知道有沒有留意到,DocumentDB 並沒有免費額度,都是用多少付多少的計算模式,計價單位是 RU/s (每秒要求單位)的傳輸量值,為了把錢花在刀口上,今天就來了解如何使用 Azure DocumentDB Emulator 開發 DocumentDB

Azure DocumentDB Emulator 可以在開發人員電腦上模擬出近乎完整的 Azure DocumentDB 服務,就可以在不需要 Azure 訂閱或是直接使用 Azure DocumentDB 的情況下進行開發。


基本要求

  1. 2 GB 以上的 RAM
  2. 10 GB 以上的硬碟空間
  3. Windows Server 2012 R2, Windwos Server 216 or Windows 10

安裝 Azure DocumentDB Emulator

  1. 下載 Azure DocumentDB Emulator
  2. 直接安裝(需有管理者權限)

開啟 Azure DocumentDB Emulator

  1. 安裝後預設開啟
  • Windows 右下角通知區

    2SERVICE

  • Data Explorer https://localhost:8081/_explorer/index.html

    1localhost

  1. 預設提供五種程式範本
    • .NET
    • .NET Core
    • Java
    • Node.js
    • Python

使用 Azure DocumentDB Emulator 開發

  • 驗證

    • Account name: localhost:8081
    • Account key: C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==
  • 支援

    • .NET SDK

      使用 DocumentDB Emulator,必需設定 EnableEndpointDiscovery = false

      DocumentClient client = new DocumentClient(
          new Uri("https://localhost:8081"), 
          "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==",
          new ConnectionPolicy { EnableEndpointDiscovery = false });
      
    • REST API

  • Data Explorer

    • 官網提到可以新建 collection , 檢視跟編輯 document,但我看不出怎麼用,沒有編輯區域也沒有 button

      3dataexplorer

  • 其他工具

    • DocumentDB Studio
      • Microsoft.Azure.DicumentDB SDK 不要升級至 1.11.0 (2016/12/13 會出現存取權限錯誤)
      • 設定

        4addaccount

      1. AccountEndpoint:https://localhost:8081
      2. AccountSecret:C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==
      3. Use local emulator:不要勾選,會使用內建的 Emulator,不是剛建立的 Azure DocumentDB Emulator ,port 會變443

        5setting

    • 結果 >6RESULT
    • DocumentDB Data Migration Tool

命令列指令

DocumentDB.LocalEmulator.exe [/shutdown] [/datapath] [/port] [/mongoport] [/directports] [/key] [/?] 
指令 說明 命令 參數說明
- 使用預設設定啟動 DocumentDB Emulator DocumentDB.LocalEmulator.exe -
Shutdown 關閉 DocumentDB Emulator DocumentDB.LocalEmulator.exe /Shutdown -
Help 顯示命令最參數清單 DocumentDB.LocalEmulator.exe /? -
Datapath 指定資料儲存路徑 DocumentDB.LocalEmulator.exe /datapath= : 可存取路徑
Port 指定模擬器使用的 port,預設是 8081 DocumentDB.LocalEmulator.exe /port= : port
MongoPort 指定相容 MongoDB API 的 port. 預設是 10250 DocumentDB.LocalEmulator.exe /mongoport= : port
DirectPorts 指定直接連線的 port . 預設是 10251,10252,10253,10254 DocumentDB.LocalEmulator.exe /directports: : 4 個 port(以,分隔)
Key 授權金鑰.必需是 64 byte 向量經過 base-64 加密 DocumentDB.LocalEmulator.exe /key: : 64 byte 向量經過 base-64 加密
EnableThrottling 啟用 request 限流 DocumentDB.LocalEmulator.exe /enablethrottling -
DisableThrottling 停用 request 限流 DocumentDB.LocalEmulator.exe /disablethrottling -

Azure DocumentDB Emulator 與 Azure DocumentDB 的差異

  1. Azure DocumentDB Emulator 只有一組固定的帳號跟 key
  2. Azure DocumentDB Emulator 不具有擴展性,不支援大量的 collection
  3. Azure DocumentDB Emulator 不支援一致性層級設定
  4. Azure DocumentDB Emulator 不支援多區域複寫功能
  5. Azure DocumentDB Emulator 不支援服務配額調整(e.g. 集合的傳輸量、文件儲存體大小 )

DocumentDB 開發相關語法、工具都有基本概念後,進階實務應用就待往後有使用機會再來分享;DocumentDB 介紹到這,又該是轉換主題的時間。

參考資料

  1. Use the Azure DocumentDB Emulator for development and testing
  2. 下載 Azure DocumentDB Emulator
  3. DocumentDB Studio
  4. DocumentDB Data Migration Tool

沒有留言:

張貼留言