Udostępnij za pośrednictwem


Przechowywanie danych niestrukturalnych przy użyciu usług Azure Functions i Azure Cosmos DB

Usługa Azure Cosmos DB to doskonały sposób przechowywania danych bez struktury i danych JSON. W połączeniu z usługą Azure Functions usługa Azure Cosmos DB umożliwia szybkie i łatwe przechowywanie danych przy użyciu znacznie mniejszego kodu niż jest to wymagane do przechowywania danych w relacyjnej bazie danych.

Uwaga

W tej chwili wyzwalacz usługi Azure Cosmos DB, powiązania danych wejściowych i powiązania danych wyjściowych współpracują tylko z kontami interfejsu API SQL i interfejsu API programu Graph.

W usłudze Azure Functions powiązania danych wejściowych i wyjściowych zapewniają deklaratywną metodę łączenia z danymi usług zewnętrznych z funkcji. W tym artykule opisano, jak zaktualizować istniejącą funkcję w celu dodania powiązania danych wyjściowych, które zapisuje dane bez struktury w dokumencie usługi Azure Cosmos DB.

Wymagania wstępne

W celu ukończenia tego samouczka:

W tym artykule użyto jako punktu początkowego zasobów utworzonych w sekcji Tworzenie pierwszej funkcji w witrynie Azure Portal. Jeśli jeszcze tego nie zrobiono, wykonaj teraz te kroki, aby utworzyć aplikację funkcji.

Tworzenie konta usługi Azure Cosmos DB

Do utworzenia powiązania danych wyjściowych konieczne jest posiadanie konta usługi Azure Cosmos DB, które używa interfejsu API SQL.

  1. W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Utwórz zasób.

  2. Wyszukaj usługę Azure Cosmos DB. Wybierz pozycję Utwórz usługę>Azure Cosmos DB.

  3. Na stronie Tworzenie konta usługi Azure Cosmos DB wybierz opcję Utwórz w sekcji Azure Cosmos DB for NoSQL.

    Usługa Azure Cosmos DB udostępnia kilka interfejsów API:

    • NoSQL — dane dokumentu
    • PostgreSQL
    • MongoDB dla danych dokumentu
    • Apache Cassandra
    • Table
    • Apache Gremlin — dla danych grafu

    Aby dowiedzieć się więcej na temat interfejsu API dla NoSQL, zobacz Witamy w usłudze Azure Cosmos DB.

  4. Na stronie Tworzenie konta usługi Azure Cosmos DB wprowadź podstawowe ustawienia nowego konta usługi Azure Cosmos DB.

    Ustawienie Wartość Opis
    Subskrypcja Nazwa subskrypcji Wybierz subskrypcję platformy Azure, która ma być używana dla tego konta usługi Azure Cosmos DB.
    Grupa zasobów Nazwa grupy zasobów Wybierz grupę zasobów lub wybierz pozycję Utwórz nową, a następnie wprowadź unikatową nazwę nowej grupy zasobów.
    Nazwa konta Unikatowa nazwa Wprowadź nazwę, aby zidentyfikować konto usługi Azure Cosmos DB. Ponieważ adres documents.azure.com jest dołączany do podanej nazwy w celu utworzenia identyfikatora URI, użyj unikatowej nazwy. Nazwa może zawierać tylko małe litery, cyfry i znak łącznika (-). Musi mieć od 3 do 44 znaków.
    Lokalizacja Region najbliżej Twoich użytkowników Wybierz lokalizację geograficzną, w której będzie hostowane konto usługi Azure Cosmos DB. Użyj lokalizacji znajdującej się najbliżej Twoich użytkowników, aby zapewnić im najszybszy dostęp do danych.
    Tryb wydajności Aprowizowana przepływność lub bezserwerowa Wybierz pozycję Aprowizowana przepływność , aby utworzyć konto w trybie aprowizowanej przepływności . Wybierz pozycję Bezserwerowe , aby utworzyć konto w trybie bezserwerowym .
    Stosowanie rabatu za bezpłatną warstwę usługi Azure Cosmos DB Zastosuj lub nie zastosuj W warstwie Bezpłatna usługi Azure Cosmos DB uzyskasz pierwsze 1000 RU/s i 25 GB miejsca do magazynowania bezpłatnie na koncie. Dowiedz się więcej o warstwie Bezpłatna.
    Ograniczanie całkowitej przepływności konta Wybrane lub nie Ogranicz łączną ilość przepływności, którą można aprowizować na tym koncie. Ten limit uniemożliwia nieoczekiwane opłaty związane z aprowizowaną przepływnością. Możesz zaktualizować lub usunąć ten limit po utworzeniu konta.

    Możesz mieć maksymalnie jedno konto usługi Azure Cosmos DB w warstwie Bezpłatna na subskrypcję platformy Azure i musi wyrazić zgodę podczas tworzenia konta. Jeśli nie widzisz opcji zastosowania rabatu na warstwę Bezpłatna, inne konto w subskrypcji zostało już włączone z warstwą Bezpłatna.

    Zrzut ekranu przedstawiający stronę Tworzenie konta usługi Azure Cosmos DB.

    Uwaga

    Następujące opcje nie są dostępne w przypadku wybrania opcji Bezserwerowa jako tryb pojemności:

    • Zastosuj rabat w warstwie Bezpłatna
    • Ograniczanie całkowitej przepływności konta
  5. Na karcie Dystrybucja globalna skonfiguruj następujące szczegóły. Możesz pozostawić wartości domyślne dla tego przewodnika Szybki start:

    Ustawienie Wartość Opis
    Nadmiarowość geograficzna Wyłącz Włącz lub wyłącz dystrybucję globalną na koncie, łącząc region z regionem pary. Później możesz dodać więcej regionów do swojego konta.
    Zapis w wielu regionach Wyłącz Funkcja zapisu w wielu regionach umożliwia korzystanie z aprowizowanej przepływności dla baz danych i kontenerów na całym świecie.
    Strefy dostępności Wyłącz Strefy dostępności pomóc w dalszym ulepszaniu dostępności i odporności aplikacji.

    Uwaga

    Następujące opcje nie są dostępne, jeśli wybierzesz pozycję Bezserwerowa jako tryb pojemności na poprzedniej stronie Podstawowe :

    • Nadmiarowość geograficzna
    • Zapis w wielu regionach
  6. Opcjonalnie możesz skonfigurować więcej szczegółów na następujących kartach:

    • Sieć. Konfigurowanie dostępu z sieci wirtualnej.
    • Zasady tworzenia kopii zapasowych. Skonfiguruj zasady okresowych lub ciągłych kopii zapasowych.
    • Szyfrowanie. Użyj klucza zarządzanego przez usługę lub klucza zarządzanego przez klienta.
    • Tagi. Tagi to pary nazw i wartości umożliwiające kategoryzowanie zasobów oraz wyświetlanie skonsolidowanych informacji na temat rozliczeń przez zastosowanie tego samego tagu względem wielu zasobów i grup zasobów.
  7. Wybierz pozycję Przejrzyj i utwórz.

  8. Przejrzyj ustawienia konta, a następnie wybierz pozycję Utwórz. Utworzenie konta trwa kilka minut. Poczekaj na wyświetlenie komunikatu Wdrożenie zostało ukończone na stronie portalu.

    Zrzut ekranu pokazuje, że wdrożenie zostało ukończone.

  9. Wybierz pozycję Przejdź do zasobu, aby przejść do strony konta usługi Azure Cosmos DB.

    Zrzut ekranu przedstawia stronę konta usługi Azure Cosmos DB.

Dodawanie powiązania danych wyjściowych

  1. W witrynie Azure Portal przejdź do witryny i wybierz utworzoną wcześniej aplikację funkcji.

  2. Wybierz pozycję Funkcje, a następnie wybierz funkcję HttpTrigger.

    Wybierz funkcję Http w witrynie Azure Portal.

  3. Wybierz pozycję Integracja i + Dodaj dane wyjściowe.

    Dodaj powiązanie wyjściowe usługi Azure Cosmos DB.

  4. Użyj ustawień Tworzenia danych wyjściowych określonych w tabeli:

    Konfigurowanie powiązania wyjściowego usługi Azure Cosmos DB.

    Ustawienie Sugerowana wartość opis
    Typ powiązania Azure Cosmos DB Nazwa typu powiązania, który ma zostać wybrany w celu utworzenia powiązania wyjściowego z usługą Azure Cosmos DB.
    Nazwa parametru dokumentu taskDocument Nazwa, która odwołuje się do obiektu usługi Azure Cosmos DB w kodzie.
    Nazwa bazy danych taskDatabase Nazwa bazy danych do zapisywania dokumentów.
    Nazwa kolekcji TaskCollection Nazwa bazy kolekcji bazy danych.
    Jeśli wartość true, tworzy bazę danych i kolekcję usługi Azure Cosmos DB Tak Kolekcja jeszcze nie istnieje, więc należy ją utworzyć.
    Połączenie konta usługi Azure Cosmos DB Nowe ustawienie Wybierz pozycję Nowy, a następnie wybierz pozycję Konto usługi Azure Cosmos DB i utworzone wcześniej konto bazy danych, a następnie wybierz przycisk OK. Spowoduje to utworzenie ustawienia aplikacji na potrzeby połączenia konta. To ustawienie jest używane przez powiązanie do nawiązywania połączenia z bazą danych.
  5. Wybierz przycisk OK , aby utworzyć powiązanie.

Aktualizacja kodu funkcji

Zastąp istniejący kod funkcji w następującym kodem w wybranym języku:

Zastąp istniejącą funkcję w języku C# następującym kodem:

#r "Newtonsoft.Json"

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;

public static IActionResult Run(HttpRequest req, out object taskDocument, ILogger log)
{
    string name = req.Query["name"];
    string task = req.Query["task"];
    string duedate = req.Query["duedate"];

    // We need both name and task parameters.
    if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(task))
    {
        taskDocument = new
        {
            name,
            duedate,
            task
        };

        return (ActionResult)new OkResult();
    }
    else
    {
        taskDocument = null;
        return (ActionResult)new BadRequestResult();
    }
}

Ten przykładowy kod odczytuje ciągi zapytań żądania HTTP i przypisuje je do pól w obiekcie taskDocument. Powiązanie taskDocument wysyła dane obiektu z tego parametru powiązania do przechowywania w powiązanej bazie danych dokumentów. Baza danych zostanie utworzona przy pierwszym uruchomieniu funkcji.

Testowanie funkcji i bazy danych

  1. Wybierz pozycję Testuj/uruchom. W obszarze Zapytanie wybierz pozycję + Dodaj parametr i dodaj następujące parametry do ciągu zapytania:

    • name
    • task
    • duedate

    Przetestuj funkcję.

  2. Wybierz pozycję Uruchom i sprawdź, czy jest zwracany stan 200.

    Zrzut ekranu przedstawia stan odpowiedzi HTTP 200 wyróżniony po wybraniu pozycji Uruchom.

  3. W witrynie Azure Portal wyszukaj i wybierz pozycję Azure Cosmos DB.

    Wyszukaj usługę Azure Cosmos DB.

  4. Wybierz konto usługi Azure Cosmos DB, a następnie wybierz pozycję Eksplorator danych.

  5. Rozwiń węzły TaskCollection, wybierz nowy dokument i upewnij się, że dokument zawiera wartości ciągu zapytania wraz z dodatkowymi metadanymi.

    Sprawdź wartości ciągów w dokumencie.

Pomyślnie dodano powiązanie do wyzwalacza HTTP w celu przechowywania danych bez struktury w wystąpieniu usługi Azure Cosmos DB.

Czyszczenie zasobów

W poprzednich krokach utworzono zasoby platformy Azure w grupie zasobów. Jeśli nie będziesz już potrzebować tych zasobów w przyszłości, możesz je usunąć przez usunięcie grupy zasobów.

W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Grupy zasobów. Następnie na stronie Grupy zasobów wybierz pozycję myResourceGroup.

Na stronie myResourceGroup upewnij się, że wymienione zasoby są tymi, które chcesz usunąć.

Wybierz pozycję Usuń grupę zasobów, wpisz myResourceGroup w polu tekstowym, aby potwierdzić, a następnie wybierz pozycję Usuń.

Następne kroki

Aby uzyskać więcej informacji na temat powiązania z wystąpieniem usługi Azure Cosmos DB, zobacz Powiązania usługi Azure Functions w usłudze Azure Cosmos DB.