DocumentDB - Połącz konto

Kiedy zaczynasz programować w DocumentDB, pierwszym krokiem jest połączenie. Aby połączyć się z kontem DocumentDB, będziesz potrzebować dwóch rzeczy;

  • Endpoint
  • Klucz autoryzacyjny

Punkt końcowy

Punkt końcowy to adres URL do Twojego konta DocumentDB i jest on tworzony przez połączenie nazwy konta DocumentDB z .documents.azure.com. Przejdźmy do pulpitu nawigacyjnego.

Teraz kliknij utworzone konto DocumentDB. Zobaczysz szczegóły, jak pokazano na poniższym obrazku.

Po wybraniu opcji „Klucze” wyświetlą się dodatkowe informacje, jak pokazano na poniższym obrazku. Zobaczysz również adres URL do konta DocumentDB, którego możesz użyć jako punktu końcowego.

Klucz autoryzacyjny

Klucz autoryzacyjny zawiera Twoje poświadczenia i są dwa rodzaje kluczy. Klucz główny umożliwia pełny dostęp do wszystkich zasobów na koncie, a tokeny zasobów umożliwiają ograniczony dostęp do określonych zasobów.

Klucze główne

  • Nie ma nic, czego nie można zrobić za pomocą klucza głównego. Jeśli chcesz, możesz zdmuchnąć całą bazę danych, używając klucza głównego.

  • Z tego powodu zdecydowanie nie chcesz udostępniać klucza głównego ani dystrybuować go do środowisk klienckich. Jako dodatkowy środek bezpieczeństwa warto często go zmieniać.

  • W rzeczywistości istnieją dwa klucze główne dla każdego konta bazy danych, podstawowy i pomocniczy, jak zaznaczono na powyższym zrzucie ekranu.

Żetony zasobów

  • Możesz również użyć tokenów zasobów zamiast klucza głównego.

  • Połączenia oparte na tokenach zasobów mogą uzyskiwać dostęp tylko do zasobów określonych przez tokeny, a nie do innych zasobów.

  • Tokeny zasobów są oparte na uprawnieniach użytkownika, więc najpierw należy utworzyć co najmniej jednego użytkownika, który jest definiowany na poziomie bazy danych.

  • Tworzysz jedno lub więcej uprawnień dla każdego użytkownika na podstawie zasobów, do których chcesz zezwolić każdemu użytkownikowi.

  • Każde uprawnienie generuje token zasobu, który umożliwia dostęp tylko do odczytu lub pełny dostęp do danego zasobu i może to być dowolny zasób użytkownika w bazie danych.

Przejdźmy do aplikacji konsolowej stworzonej w rozdziale 3.

Step 1 - Dodaj następujące odniesienia w pliku Program.cs.

using Microsoft.Azure.Documents; 
using Microsoft.Azure.Documents.Client; 
using Microsoft.Azure.Documents.Linq; 
using Newtonsoft.Json;

Step 2- Teraz dodaj adres URL punktu końcowego i klucz autoryzacji. W tym przykładzie będziemy używać klucza podstawowego jako klucza autoryzacyjnego.

Zwróć uwagę, że w Twoim przypadku adres URL punktu końcowego i klucz autoryzacji powinny być różne.

private const string EndpointUrl = "https://azuredocdbdemo.documents.azure.com:443/"; 
private const string AuthorizationKey = 
   "BBhjI0gxdVPdDbS4diTjdloJq7Fp4L5RO/StTt6UtEufDM78qM2CtBZWbyVwFPSJIm8AcfDu2O+AfV T+TYUnBQ==";

Step 3 - Utwórz nowe wystąpienie DocumentClient w zadaniu asynchronicznym o nazwie CreateDocumentClient i utwórz wystąpienie nowego DocumentClient.

Step 4 - Wywołaj zadanie asynchroniczne z metody Main.

Poniżej znajduje się jak dotąd kompletny plik Program.cs.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 
using System.Threading.Tasks;

using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq;
using Newtonsoft.Json;

namespace DocumentDBDemo { 

   class Program {
      private const string EndpointUrl = "https://azuredocdbdemo.documents.azure.com:443/";
		
      private const string AuthorizationKey = "BBhjI0gxdVPdDbS4diTjdloJq7Fp4L5RO/
         StTt6UtEufDM78qM2CtBZWbyVwFPSJIm8AcfDu2O+AfV T+TYUnBQ==";
			
      static void Main(string[] args) {
         try {
            CreateDocumentClient().Wait();
         } catch (Exception e) {
            Exception baseException = e.GetBaseException();
            Console.WriteLine("Error: {0}, Message: {1}", e.Message, baseException.Message);
         }
			
         Console.ReadKey();
      }
		
      private static async Task CreateDocumentClient() {
         // Create a new instance of the DocumentClient
         var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey);
      }
		
   }
}

W tym rozdziale nauczyliśmy się, jak połączyć się z kontem DocumentDB i utworzyć instancję klasy DocumentClient.