Erstellen einer durch Azure Cosmos DB ausgelösten Funktion

Informationen zum Erstellen einer Funktion im Azure-Portal, die ausgelöst wird, wenn in Azure Cosmos DB Daten hinzugefügt oder Daten darin geändert werden. Weitere Informationen zu Azure Cosmos DB finden Sie unter Azure Cosmos DB: Serverloses Datenbank-Computing mithilfe von Azure Functions.

Hinweis

Die Bearbeitung im Portal wird nur für JavaScript-, PowerShell- und C#-Skriptfunktionen unterstützt. Die Bearbeitung von Python im Portal wird nur unterstützt, wenn sie im Rahmen des Verbrauchsplans ausgeführt wird. Um eine C#-Skript-App zu erstellen, die die Bearbeitung im Portal unterstützt, müssen Sie eine Runtimeversion auswählen, die das In-Process-Modell unterstützt.

Entwickeln Sie Ihre Funktionen nach Möglichkeit lokal.

Weitere Informationen zu den Einschränkungen beim Bearbeiten von Funktionscode im Azure-Portal finden Sie unter Entwicklungseinschränkungen im Azure-Portal.

Voraussetzungen

Für dieses Tutorial benötigen Sie Folgendes:

  • Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Hinweis

Azure Cosmos DB-Bindungen werden nur in Kombination mit Azure Cosmos DB for NoSQL unterstützt. Unterstützung für Azure Cosmos DB for Table wird durch das Verwenden der Tabellenspeicherbindungen ab Erweiterung 5.x bereitgestellt. Für alle anderen Azure Cosmos DB-APIs sollten Sie von Ihrer Funktion aus auf die Datenbank zugreifen, indem Sie den statischen Client für Ihre API verwenden, einschließlich Azure Cosmos DB for MongoDB, Azure Cosmos DB for Cassandra und Azure Cosmos DB for Apache Gremlin.

Anmelden bei Azure

Melden Sie sich mit Ihrem Azure-Konto beim Azure-Portal an.

Erstellen eines Azure Cosmos DB-Kontos

Sie müssen über ein Azure Cosmos DB-Konto verfügen, für das die SQL-API verwendet wird, um den Trigger erstellen zu können.

  1. Wählen Sie im Menü des Azure-Portals oder auf der Startseite die Option Ressource erstellen aus.

  2. Suche Sie nach Azure Cosmos DB. Wählen Sie Erstellen>Azure Cosmos DB aus.

  3. Wählen Sie auf der Seite Erstellen eines Azure Cosmos DB-Kontos im Abschnitt Azure Cosmos DB for NoSQL die Option Erstellen aus.

    Azure Cosmos DB bietet mehrere APIs:

    • NoSQL, für Dokumentdaten
    • PostgreSQL
    • MongoDB, für Dokumentdaten
    • Apache Cassandra
    • Tabelle
    • Apache Gremlin, für Graphdaten

    Weitere Informationen zur API für NoSQL finden Sie unter Willkommen bei Azure Cosmos DB.

  4. Geben Sie auf der Seite Azure Cosmos DB-Konto erstellen die grundlegenden Einstellungen für das neue Azure Cosmos DB-Konto ein.

    Einstellung Wert BESCHREIBUNG
    Subscription Abonnementname Wählen Sie das Azure-Abonnement aus, das Sie für dieses Azure Cosmos DB-Konto verwenden möchten.
    Ressourcengruppe Ressourcengruppenname Wählen Sie eine Ressourcengruppe aus, oder wählen Sie Neu erstellen aus, und geben Sie einen eindeutigen Namen für die Ressourcengruppe ein.
    Kontoname Ein eindeutiger Name Geben Sie einen Namen zur Identifizierung Ihres Azure Cosmos DB-Kontos ein. Da documents.azure.com an den Namen angefügt wird, die Sie für die URI-Erstellung angeben, muss der Name eindeutig sein. Der Name darf nur Kleinbuchstaben, Zahlen und den Bindestrich (-) enthalten. Er muss 3–44 Zeichen umfassen.
    Standort Die Region, die Ihren Benutzern am nächsten liegt Wählen Sie einen geografischen Standort aus, an dem Ihr Azure Cosmos DB-Konto gehostet werden soll. Verwenden Sie den Standort, der Ihren Benutzern am nächsten ist, damit sie möglichst schnell auf die Daten zugreifen können.
    Kapazitätsmodus Bereitgestellter Durchsatz oder Serverlos Wählen Sie Bereitgestellter Durchsatz aus, um ein Konto im Modus Bereitgestellter Durchsatz zu erstellen. Wählen Sie Serverlos aus, um ein Konto im Modus Serverlos zu erstellen.
    Anwenden des Rabatts für den Free-Tarif von Azure Cosmos DB Anwenden oder Nicht anwenden Mit dem Azure Cosmos DB-Tarif „Free“ erhalten Sie die ersten 1.000 RUs/Sek. sowie 25 GB Speicher kostenlos in einem Konto. Weitere Informationen zum Tarif „Free“
    Beschränken des gesamten Kontodurchsatzes Ausgewählt sein oder nicht Begrenzen Sie den Gesamtdurchsatz, der für dieses Konto bereitgestellt werden kann. Dieser Grenzwert verhindert unerwartete Gebühren im Zusammenhang mit bereitgestelltem Durchsatz. Sie können diesen Grenzwert anpassen oder entfernen, nachdem Ihr Konto erstellt wurde.

    Sie können pro Azure-Abonnement maximal ein Azure Cosmos DB-Konto im Free-Tarif einrichten und müssen sich beim Erstellen des Kontos registrieren. Wird die Option zum Anwenden des tarifspezifischen Rabatts für den Free-Tarif nicht angezeigt, bedeutet dies, dass bereits ein anderes Konto im Abonnement mit dem Free-Tarif aktiviert wurde.

    Screenshot zeigt die Seite „Azure Cosmos DB-Konto erstellen“

    Hinweis

    Die folgenden Optionen sind nicht verfügbar, wenn Sie als Kapazitätsmodus die Option Serverlos auswählen:

    • Tarifspezifischen Rabatt für den Free-Tarif anwenden
    • Beschränken des gesamten Kontodurchsatzes
  5. Konfigurieren Sie auf der Registerkarte Globale Verteilung die folgenden Details. Für diesen Schnellstart können Sie die Standardwerte beibehalten:

    Einstellung Wert Beschreibung
    Georedundanz Deaktivieren Aktivieren oder deaktivieren Sie die globale Verteilung für Ihr Konto, indem Sie Ihre Region mit einer Region koppeln. Sie können später weitere Regionen zu Ihrem Konto hinzufügen.
    Schreibvorgänge in mehreren Regionen Deaktivieren Mit der Funktion zum Schreiben in mehreren Regionen können Sie den bereitgestellten Durchsatz für Ihre Datenbanken und Container in der ganzen Welt nutzen.
    Verfügbarkeitszonen Deaktivieren Verfügbarkeitszonen helfen Ihnen, die Verfügbarkeit und Resilienz Ihrer Anwendung weiter zu verbessern.

    Hinweis

    Die folgenden Optionen sind nicht verfügbar, wenn Sie als Kapazitätsmodus auf der vorigen Seite Grundlagen die Option Serverlos auswählen:

    • Georedundanz
    • Schreibvorgänge in mehreren Regionen
  6. Optional können Sie auf den folgenden Registerkarten weitere Details konfigurieren:

    • Netzwerke. Konfigurieren des Zugriffs über virtuelle Netzwerke.
    • Sicherungsrichtlinie. Konfigurieren Sie eine Richtlinie für regelmäßige oder fortlaufende Sicherungen.
    • Verschlüsselung. Verwenden Sie entweder einen vom Dienst verwalteten Schlüssel oder einen kundenseitig verwalteten Schlüssel.
    • Tags. Tags sind Name/Wert-Paare, die Ihnen das Kategorisieren von Ressourcen und die Anzeige einer konsolidierten Abrechnung ermöglichen, indem Sie dasselbe Tag auf mehrere Ressourcen und Ressourcengruppen anwenden.
  7. Klicken Sie auf Überprüfen + erstellen.

  8. Überprüfen Sie die Kontoeinstellungen, und wählen Sie anschließend Erstellen aus. Die Erstellung des Kontos dauert einige Minuten. Warten Sie, bis auf der Portalseite Ihre Bereitstellung wurde abgeschlossen. angezeigt wird.

    Screenshot zeigt, dass Ihre Bereitstellung abgeschlossen wurde.

  9. Wählen Sie Zu Ressource wechseln aus, um zur Seite des Azure Cosmos DB-Kontos zu wechseln.

    Screenshot zeigt die Seite „Azure Cosmos DB-Konto“.

Erstellen einer Funktions-App in Azure

  1. Klicken Sie im Menü des Azure-Portals oder auf der Startseite auf Ressource erstellen.

  2. Wählen Sie auf der Seite Neu die Option Compute>Funktions-App aus.

  3. Wählen Sie unter Hostingoption auswählen die Optionen Verbrauch>Auswählen aus, um Ihre App im Standardplan Verbrauch zu erstellen. Bei dieser serverlosen Hostingoption bezahlen Sie nur für die Zeit, in der Ihre Funktionen ausgeführt werden. Der Premium-Plan bietet auch eine dynamische Skalierung. Bei der Ausführung in einem App Service-Plan müssen Sie die Skalierung Ihrer Funktions-App verwalten.

  4. Verwenden Sie auf der Seite Grundlagen die Funktions-App-Einstellungen, die in der folgenden Tabelle angegeben sind:

    Einstellung Vorgeschlagener Wert BESCHREIBUNG
    Abonnement Ihr Abonnement Das Abonnement, unter dem Sie Ihre neue Funktions-App erstellen.
    Ressourcengruppe myResourceGroup Der Name der neuen Ressourcengruppe, in der Sie Ihre Funktions-App erstellen. Sie sollten eine neue Ressourcengruppe erstellen, da beim Erstellen neuer Funktions-Apps in einer vorhandenen Ressourcengruppe bekannte Einschränkungen gelten.
    Name der Funktions-App Global eindeutiger Name Der Name, der Ihre neue Funktionen-App bezeichnet Gültige Zeichen sind a-z (Groß-/Kleinschreibung nicht beachtet), 0-9 und -.
    Laufzeitstapel Bevorzugte Sprache Wählen Sie eine Runtime aus, die Ihre bevorzugte Programmiersprache für Funktionen unterstützt. Die Bearbeitung im Portal ist nur für JavaScript-, PowerShell-, Python-, TypeScript- und C#-Skripts verfügbar.
    Um eine C#-Skript-App zu erstellen, die die Bearbeitung im Portal unterstützt, müssen Sie eine Runtimeversion auswählen, die das In-Process-Modell unterstützt.
    C#-Klassenbibliotheksfunktionen und Java-Funktionen müssen lokal entwickelt werden.
    Version Versionsnummer Wählen Sie die Version der installierten Runtime aus.
    Region Bevorzugte Region Wählen Sie eine Region in Ihrer Nähe oder in der Nähe anderer Dienste aus, auf die Ihre Funktionen zugreifen können.
    Betriebssystem Windows Ein Betriebssystem ist für Sie basierend auf Ihrer Runtimestapelauswahl vorab ausgewählt, aber Sie können die Einstellung ggf. ändern. Die portalinterne Bearbeitung wird nur unter Windows unterstützt.
  5. Übernehmen Sie auf den übrigen Registerkarten die Standardoptionen – einschließlich der standardmäßigen Erstellung eines neuen Speicherkontos auf der Registerkarte Speicher und einer neuen Application Insight-Instanz auf der Registerkarte Überwachung. Sie können auch ein bereits vorhandenes Speicherkonto oder eine bereits vorhandene Application Insights-Instanz verwenden.

  6. Klicken Sie auf Überprüfen + erstellen, um die ausgewählte App-Konfiguration zu überprüfen, und dann auf Erstellen, um die Funktions-App bereitzustellen.

  7. Wählen Sie oben rechts im Portal das Benachrichtigungssymbol aus, und achten Sie auf die Meldung Bereitstellung erfolgreich.

  8. Wählen Sie Zu Ressource wechseln, um Ihre neue Funktionen-App anzuzeigen. Sie können auch die Option An Dashboard anheften auswählen. Wenn Sie die Funktions-App anheften, können Sie einfacher über das Dashboard auf sie zugreifen.

    Screenshot: Bereitstellungsbenachrichtigung

Erstellen Sie als Nächstes eine Funktion in der neuen Funktions-App.

Erstellen eines Azure Cosmos DB-Triggers

  1. Wählen Sie in Ihrer Funktions-App Übersicht und dann unter Funktionen die Option + Erstellen aus.

  2. Scrollen Sie unter Vorlage auswählen nach unten, und wählen Sie die Vorlage Azure Cosmos DB-Trigger aus.

  3. Konfigurieren Sie unter Vorlagendetails den neuen Trigger mit den Einstellungen aus der folgenden Tabelle, und wählen Sie anschließend Erstellen aus:

    Einstellung Vorgeschlagener Wert BESCHREIBUNG
    Neue Funktion Übernehmen Sie den Standardnamen. Der Name der Funktion.
    Azure Cosmos DB-Kontoverbindung Übernehmen Sie den neuen Standardnamen. Wählen Sie Neu, das zuvor von Ihnen erstellte Datenbankkonto und dann OK aus. Durch diese Aktion wird eine Anwendungseinstellung für Ihre Kontoverbindung erstellt. Diese Einstellung wird von der Bindung verwendet, um die Verbindung mit der Datenbank herzustellen.
    Datenbankname Aufgaben Name der Datenbank, die die zu überwachende Sammlung enthält.
    Sammlungsname Items Name der zu überwachenden Sammlung.
    Sammlungsname für Leases Leases Name der Sammlung zum Speichern der Leases.
    Leasesammlung erstellen, sofern nicht vorhanden Ja Überprüft das Vorhandensein der Leasesammlung und erstellt sie automatisch.

    Azure erstellt die durch Azure Cosmos DB ausgelöste Funktion basierend auf den bereitgestellten Werten.

  4. Um den vorlagenbasierten Funktionscode anzuzeigen, wählen Sie Code + testen aus.

    Azure Cosmos DB-Funktionsvorlage in C#

    Diese Funktionsvorlage schreibt die Anzahl von Dokumenten und die erste Dokument-ID in die Protokolle.

Als Nächstes stellen Sie eine Verbindung mit Ihrem Azure Cosmos DB-Konto her und erstellen den Container Items in der Datenbank Tasks.

Erstellen des Containers „Items“

  1. Öffnen Sie im Browser in einer neuen Registerkarte eine zweite Instanz des Azure-Portals.

  2. Erweitern Sie links im Portal die Symbolleiste, geben Sie cosmos in das Suchfeld ein, und wählen Sie Azure Cosmos DB aus.

    Suchen nach dem Azure Cosmos DB-Dienst

  3. Wählen Sie Ihr Azure Cosmos DB-Konto aus, und wählen Sie dann den Daten-Explorer.

  4. Wählen Sie unter SQL-API die Datenbank Aufgaben und dann Neuer Container aus.

    Erstellen eines Containers

  5. Verwenden Sie in Container hinzufügen die Einstellungen, die in der Tabelle unten in der Abbildung gezeigt werden.

    Definieren des Containers „Aufgaben“

    Einstellung Vorgeschlagener Wert BESCHREIBUNG
    Datenbank-ID Aufgaben Der Name Ihrer neuen Datenbank. Dieser muss mit dem in der Funktionsbindung definierten Namen übereinstimmen.
    Container-ID Items Der Name für den neuen Container. Dieser muss mit dem in der Funktionsbindung definierten Namen übereinstimmen.
    Partitionsschlüssel /category Ein Partitionsschlüssel, der Daten gleichmäßig auf alle Partitionen verteilt. Die Auswahl des richtigen Partitionsschlüssels ist wichtig für die Erstellung eines leistungsfähigen Containers.
    Durchsatz 400 RU Verwenden Sie den Standardwert. Sie können den Durchsatz später hochskalieren, wenn Sie Wartezeiten reduzieren möchten.
  6. Klicken Sie auf OK, um den Container „Items“ zu erstellen. Es dauert möglicherweise kurze Zeit, bis der Container erstellt ist.

Sobald der in der Funktionsbindung angegebene Container vorhanden ist, können Sie die Funktion durch Hinzufügen von Elementen zu diesem neuen Container testen.

Testen der Funktion

  1. Erweitern Sie in Data Explorer den neuen Container Items, und wählen Sie Elemente und dann Neues Element aus.

    Erstellen eines Elements im Container „Items“

  2. Ersetzen Sie den Inhalt des neuen Elements durch den folgenden Inhalt, und wählen Sie dann Speichern aus.

    {
        "id": "task1",
        "category": "general",
        "description": "some task"
    }
    
  3. Wechseln Sie zur ersten Browserregisterkarte, die die Funktion im Portal enthält. Erweitern Sie die Funktionsprotokolle, und stellen Sie sicher, dass das neue Dokument die Funktion ausgelöst hat. Vergewissern Sie sich, dass der task1-Dokument-ID-Wert in die Protokolle geschrieben wurde.

    Zeigen Sie die Meldung in den Protokollen an.

  4. (Optional) Wechseln Sie zurück zu Ihrem Dokument, nehmen Sie eine Änderung vor, und klicken Sie auf Aktualisieren. Wechseln Sie anschließend zurück zu den Funktionsprotokollen, und stellen Sie sicher, dass die Aktualisierung auch die Funktion ausgelöst hat.

Bereinigen von Ressourcen

Andere Schnellstarts in dieser Sammlung bauen auf diesem Schnellstart auf. Überspringen Sie die Bereinigung der Ressourcen, falls Sie mit nachfolgenden Schnellstartanleitungen, Tutorials oder einem der Dienste, die Sie im Rahmen dieser Schnellstartanleitung erstellt haben, weiterarbeiten möchten.

Ressourcen bezieht sich bei Azure auf Funktions-Apps, Funktionen, Speicherkonten und Ähnliches. Sie werden in Ressourcengruppen zusammengefasst, und sämtliche Inhalte einer Gruppe können durch das Löschen der Gruppe gelöscht werden.

Im Rahmen dieser Schnellstarts haben Sie Ressourcen erstellt. Für diese Ressourcen fallen je nach Kontostatus und Dienstpreisen ggf. Kosten an. Nicht mehr benötigte Ressourcen können wie folgt gelöscht werden:

  1. Navigieren Sie im Azure-Portal zur Seite Ressourcengruppe.

    Von der Seite „Funktions-App“ aus gelangen Sie zu dieser Seite, indem Sie die Registerkarte Übersicht und anschließend unter Ressourcengruppe den Link auswählen.

    Screenshot: Auswahl der zu löschenden Ressourcengruppe von der Funktions-App-Seite

    Vom Dashboard aus gelangen Sie zu dieser Seite, indem Sie Ressourcengruppen und anschließend die Ressourcengruppe auswählen, die Sie für diesen Artikel verwendet haben.

  2. Prüfen Sie auf der Seite Ressourcengruppe die Liste mit den enthaltenen Ressourcen, und vergewissern Sie sich, dass es sich dabei um die Ressourcen handelt, die Sie löschen möchten.

  3. Wählen Sie Ressourcengruppe löschen aus, und folgen Sie den Anweisungen.

    Der Löschvorgang kann einige Minuten in Anspruch nehmen. Nach Abschluss des Vorgangs wird kurz eine Benachrichtigung angezeigt. Sie können auch am oberen Seitenrand auf das Glockensymbol klicken, um die Benachrichtigung anzuzeigen.

Nächste Schritte

Sie haben eine Funktion erstellt, die ausgeführt wird, wenn Ihrer Azure Cosmos DB ein Dokument hinzugefügt oder ein Dokument darin geändert wird. Weitere Informationen zu Azure Cosmos DB-Triggern finden Sie unter Azure Cosmos DB-Bindungen für Azure Functions.

Sie haben Ihre erste Funktion erstellt. Fügen Sie ihr nun eine Ausgabebindung hinzu, die eine Meldung in eine Storage-Warteschlange schreibt.