iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 30
0
Cloud

認識 Microsoft Azure 三十天系列 第 31

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

  • 分享至 

  • xImage
  •  

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

上一篇
Azure DocumentDB - Part 9 (使用 .NET SDK 查詢 DocumentDB)
系列文
認識 Microsoft Azure 三十天31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言