Tworzenie funkcji wyzwalanej przez usługę Azure Cosmos DB

Dowiedz się, jak utworzyć funkcję w witrynie Azure Portal, która jest wyzwalana po dodaniu lub zmianie danych w usłudze Azure Cosmos DB. Aby uzyskać więcej informacji o usłudze Azure Cosmos DB, zobacz Azure Cosmos DB: Serverless database computing using Azure Functions (Azure Cosmos DB: przetwarzanie danych w bazie danych bez użycia serwera dzięki usłudze Azure Functions).

Uwaga

Edytowanie w portalu jest obsługiwane tylko w przypadku funkcji JavaScript, PowerShell i C# Script. Edytowanie w portalu języka Python jest obsługiwane tylko w przypadku uruchamiania w planie Zużycie. Jeśli to możliwe, należy opracowywać funkcje lokalnie.

Aby dowiedzieć się więcej na temat ograniczeń dotyczących edytowania kodu funkcji w witrynie Azure Portal, zobacz Ograniczenia programistyczne w witrynie Azure Portal.

Wymagania wstępne

W celu ukończenia tego samouczka:

  • Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Uwaga

Powiązania usługi Azure Cosmos DB są obsługiwane tylko do użycia z usługą Azure Cosmos DB for NoSQL. Obsługa usługi Azure Cosmos DB dla tabel jest zapewniana przy użyciu powiązań usługi Table Storage, począwszy od rozszerzenia 5.x. W przypadku wszystkich innych interfejsów API usługi Azure Cosmos DB należy uzyskać dostęp do bazy danych z funkcji przy użyciu klienta statycznego dla interfejsu API, w tym usługi Azure Cosmos DB dla bazy danych MongoDB, usługi Azure Cosmos DB dla bazy danych Cassandra i usługi Azure Cosmos DB dla języka Apache Gremlin.

Logowanie się do platformy Azure

Zaloguj się w witrynie Azure Portal przy użyciu danych konta Azure.

Tworzenie konta usługi Azure Cosmos DB

Do utworzenia wyzwalacza 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.

    Screenshot shows the Create Azure Cosmos DB Account page.

    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.

    Screenshot shows that your deployment is complete.

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

    Screenshot shows the Azure Cosmos DB account page.

Tworzenie aplikacji funkcji na platformie Azure

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

  2. Na stronie Nowy wybierz pozycję Aplikacja funkcji obliczeniowej>.

  3. Na stronie Podstawowe użyj ustawień aplikacji funkcji, jak określono w poniższej tabeli:

    Ustawienie Sugerowana wartość opis
    Subskrypcja Twoja subskrypcja Subskrypcja, w ramach której tworzysz nową aplikację funkcji.
    Grupa zasobów myResourceGroup Nazwa nowej grupy zasobów, w której tworzysz aplikację funkcji. Należy utworzyć nową grupę zasobów, ponieważ istnieją znane ograniczenia podczas tworzenia nowych aplikacji funkcji w istniejącej grupie zasobów.
    Nazwa aplikacji funkcji Nazwa unikatowa w skali globalnej Nazwa identyfikująca nową aplikację funkcji. Prawidłowe znaki to a-z (bez uwzględniania wielkości liter), 0-9i -.
    Czy chcesz wdrożyć kod lub obraz kontenera? Kod Opcja publikowania plików kodu lub kontenera platformy Docker.
    Stos środowiska uruchomieniowego Preferowany język Wybierz środowisko uruchomieniowe, które obsługuje ulubiony język programowania funkcji. Edytowanie w portalu jest dostępne tylko dla skryptów JavaScript, PowerShell, Python, TypeScript i C#. Biblioteka klas języka C# i funkcje języka Java muszą być opracowywane lokalnie.
    Wersja Numer wersji Wybierz wersję zainstalowanego środowiska uruchomieniowego.
    Region Preferowany region Wybierz region, który znajduje się blisko Ciebie lub w pobliżu innych usług, do których mogą uzyskiwać dostęp funkcje.
    System operacyjny Windows System operacyjny jest wstępnie wybierany na podstawie wyboru stosu środowiska uruchomieniowego, ale w razie potrzeby możesz zmienić ustawienie. Edytowanie w portalu jest obsługiwane tylko w systemie Windows. Publikowanie kontenerów jest obsługiwane tylko w systemie Linux.
    Opcje hostingu i plany Zużycie (bezserwerowe) Plan hostingu określający sposób przydzielania zasobów do aplikacji funkcji. W domyślnym planie Zużycie zasoby są dodawane dynamicznie zgodnie z wymaganiami funkcji. W tym hostingu bezserwerowym płacisz tylko za czas działania funkcji. Plan Premium oferuje również dynamiczne skalowanie. W przypadku uruchomienia w ramach planu usługi App Service musisz zarządzać skalowaniem aplikacji funkcji.
  4. Zaakceptuj domyślne opcje tworzenia nowego konta magazynu na karcie Magazyn i nowe wystąpienie usługi Application Insight na karcie Monitorowanie. Możesz również użyć istniejącego konta magazynu lub wystąpienia aplikacji Szczegółowe informacje.

  5. Wybierz pozycję Przejrzyj i utwórz , aby przejrzeć wybraną konfigurację aplikacji, a następnie wybierz pozycję Utwórz , aby aprowizować i wdrożyć aplikację funkcji.

  6. Wybierz ikonę Powiadomienia w prawym górnym rogu portalu i poszukaj komunikatu Wdrożenie zakończyło się pomyślnie .

  7. Wybierz pozycję Przejdź do zasobu, aby wyświetlić swoją nową aplikację funkcji. Możesz również wybrać pozycję Przypnij do pulpitu nawigacyjnego. Przypinanie ułatwia powrót do tego zasobu aplikacji funkcji z poziomu pulpitu nawigacyjnego.

    Screenshot of deployment notification.

Następnie należy utworzyć funkcję w nowej aplikacji funkcji.

Tworzenie wyzwalacza usługi Azure Cosmos DB

  1. W aplikacji funkcji wybierz pozycję Przegląd, a następnie wybierz pozycję + Utwórz w obszarze Funkcje.

  2. W obszarze Wybierz szablon przewiń w dół i wybierz szablon wyzwalacza usługi Azure Cosmos DB.

  3. W obszarze Szczegóły szablonu skonfiguruj nowy wyzwalacz przy użyciu ustawień określonych w tej tabeli, a następnie wybierz pozycję Utwórz:

    Ustawienie Sugerowana wartość opis
    Nowa funkcja Zaakceptuj nazwę domyślną Nazwa funkcji.
    Połączenie konta usługi Azure Cosmos DB Zaakceptuj domyślną nową nazwę Wybierz pozycję Nowy, utworzone wcześniej konto bazy danych, a następnie przycisk OK. Ta akcja powoduje utworzenie ustawienia aplikacji dla połączenia konta. To ustawienie jest używane przez powiązanie do nawiązywania połączenia z bazą danych.
    Nazwa bazy danych Zadania Nazwa bazy danych, która zawiera kolekcję do monitorowania.
    Nazwa kolekcji Elementy Nazwa kolekcji, która ma być monitorowana.
    Nazwa kolekcji dzierżaw leases Nazwa kolekcji do przechowywania dzierżaw.
    Utwórz kolekcję dzierżaw, jeśli nie istnieje Tak Sprawdza istnienie kolekcji dzierżaw i automatycznie ją tworzy.

    Platforma Azure tworzy funkcję wyzwalaną przez usługę Azure Cosmos DB na podstawie podanych wartości.

  4. Aby wyświetlić kod funkcji oparty na szablonie, wybierz pozycję Kod i testowanie.

    Azure Cosmos DB function template in C#

    Ten szablon funkcji zapisuje w dziennikach liczbę dokumentów oraz identyfikator pierwszego dokumentu.

Następnie połączysz się z kontem usługi Azure Cosmos DB i utworzysz Items kontener w Tasks bazie danych.

Tworzenie kontenera Items

  1. Otwórz drugie wystąpienie witryny Azure Portal w nowej karcie przeglądarki.

  2. Rozwiń pasek ikon po lewej stronie portalu, wpisz ciąg cosmos w polu wyszukiwania, a następnie wybierz pozycję Azure Cosmos DB.

    Search for the Azure Cosmos DB service

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

  4. W obszarze INTERFEJS API SQL wybierz pozycję Baza danych Zadania i wybierz pozycję Nowy kontener.

    Create a container

  5. W obszarze Dodawanie kontenera użyj ustawień przedstawionych w tabeli poniżej obrazu.

    Define the Tasks container

    Ustawienie Sugerowana wartość opis
    Identyfikator bazy danych Zadania Nazwa nowej bazy danych. Musi być zgodna z nazwą zdefiniowaną w powiązaniu funkcji.
    Identyfikator kontenera Elementy Nazwa nowego kontenera. Musi być zgodna z nazwą zdefiniowaną w powiązaniu funkcji.
    Klucz partycji /category Klucz partycji służący do równomiernego dystrybuowania danych do każdej partycji. Wybranie prawidłowego klucza partycji jest ważne podczas tworzenia wydajnego kontenera.
    Throughput (Przepływność) 400 RU Użyj wartości domyślnej. Jeśli chcesz zmniejszyć opóźnienie, możesz później skalować przepływność w górę.
  6. Kliknij przycisk OK , aby utworzyć kontener Items. Utworzenie kontenera może zająć trochę czasu.

Gdy kontener określony w powiązaniu funkcji istnieje, możesz przetestować funkcję, dodając elementy do tego nowego kontenera.

Testowanie funkcji

  1. Rozwiń nowy kontener Items w Eksploratorze danych, wybierz pozycję Elementy, a następnie wybierz pozycję Nowy element.

    Create an item in Items container

  2. Zastąp zawartość nowego elementu następującą zawartością, a następnie wybierz pozycję Zapisz.

    {
        "id": "task1",
        "category": "general",
        "description": "some task"
    }
    
  3. Przejdź do pierwszej karty przeglądarki, zawierającej funkcję w portalu. Rozwiń dzienniki funkcji i sprawdź, czy nowy dokument spowodował wyzwolenie funkcji. Zobaczysz, że wartość identyfikatora dokumentu task1 jest zapisana w dziennikach.

    View message in the logs.

  4. (Opcjonalnie) Wróć do dokumentu, wprowadź zmianę i kliknij pozycję Aktualizuj. Następnie wróć do dzienników funkcji i sprawdź, czy aktualizacja również spowodowała wyzwolenie funkcji.

Czyszczenie zasobów

Inne przewodniki Szybki start w tej kolekcji bazują na tym przewodniku. Jeśli planujesz pracę z kolejnymi przewodnikami Szybki start, samouczkami lub z dowolną usługą utworzoną w tym przewodniku Szybki start, nie usuwaj zasobów.

Zasoby na platformie Azure dotyczą aplikacji funkcji, funkcji, kont magazynu i tak dalej. Są one grupowane w grupy zasobów i można usunąć wszystkie elementy w grupie, usuwając grupę.

Utworzono zasoby, aby ukończyć te przewodniki Szybki start. Opłaty za te zasoby mogą być naliczane w zależności od stanu konta i cen usług. Jeśli nie potrzebujesz już tych zasobów, oto jak możesz je usunąć:

  1. W witrynie Azure Portal przejdź do strony Grupa zasobów.

    Aby przejść do tej strony ze strony aplikacji funkcji, wybierz kartę Przegląd , a następnie wybierz link w obszarze Grupa zasobów.

    Screenshot that shows select the resource group to delete from the function app page.

    Aby uzyskać dostęp do tej strony z pulpitu nawigacyjnego, wybierz pozycję Grupy zasobów, a następnie wybierz grupę zasobów użytą w tym artykule.

  2. Na stronie Grupa zasobów przejrzyj listę uwzględnionych zasobów i sprawdź, czy są to te, które chcesz usunąć.

  3. Wybierz pozycję Usuń grupę zasobów i postępuj zgodnie z instrukcjami.

    Usunięcie może potrwać kilka minut. Po jego zakończeniu przez kilka sekund będzie widoczne powiadomienie. Możesz również wybrać ikonę dzwonka w górnej części strony, aby wyświetlić powiadomienie.

Następne kroki

Utworzono funkcję uruchamianą w przypadku dodania lub zmodyfikowania dokumentu w usłudze Azure Cosmos DB. Aby uzyskać więcej informacji na temat wyzwalaczy bazy danych Azure Cosmos DB, zobacz Azure Cosmos DB bindings for Azure Functions (Powiązania bazy danych Azure Cosmos DB na potrzeby usługi Azure Functions).

Po utworzeniu pierwszej funkcji dodajmy powiązanie wyjściowe do funkcji, która zapisuje komunikat w kolejce usługi Storage.