Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Beim serverlosen Computing geht es um die Fähigkeit, sich auf einzelne logische Komponenten zu konzentrieren, die wiederholbar und zustandslos sind. Diese Teile erfordern keine Infrastrukturverwaltung, und sie verbrauchen Ressourcen nur für die Sekunden oder Millisekunden, für die sie ausgeführt werden. Kern der serverlosen Computerbewegung sind Funktionen, die im Azure-Ökosystem von Azure Functions zur Verfügung gestellt werden. Informationen zu anderen serverlosen Ausführungsumgebungen in Azure finden Sie auf der Azure-Seite ohne Server .
Mit der nativen Integration zwischen Azure Cosmos DB und Azure Functions können Sie Datenbanktrigger, Eingabebindungen und Ausgabebindungen direkt aus Ihrem Azure Cosmos DB-Konto erstellen. Mit Azure Functions und Azure Cosmos DB können Sie serverlose, ereignisgesteuerte Apps erstellen und bereitstellen, die einen schnellen Zugriff auf umfangreiche Datensätze für eine globale Benutzerbasis ermöglichen.
Azure Functions kann isolierte Datenbankverbindungen pro Aufruf erstellen, wenn der Datenbankclient nicht ordnungsgemäß verwaltet wird, was sich auf die Verbindungsleistung unter hoher Parallelität auswirken kann, insbesondere im Verbrauchsplan. Bei Verwendung von Cosmos DB-Bindungen oder Triggern verwendet Azure Functions jedoch intern einen freigegebenen Cosmos DB SDK-Client und stellt eine effiziente Verbindungspoolung über mehrere Aufrufe hinweg sicher. Azure Cosmos DB unterstützt sowohl einen HTTP-basierten als auch einen TCP-basierten Verbindungsmodus. Diese Architektur unterstützt skalierbare und hochleistungsfähige Workloads, die dynamischen Datenzugriff erfordern.
Überblick
Mit Azure Cosmos DB und Azure Functions können Sie Ihre Datenbanken und serverlosen Apps wie folgt integrieren:
- Erstellen Sie einen ereignisgesteuerten Azure Functions-Trigger für Azure Cosmos DB. Dieser Trigger basiert auf Änderungsfeedstreams , um Ihren Azure Cosmos DB-Container auf Änderungen zu überwachen. Wenn Änderungen an einem Container vorgenommen werden, wird der Änderungsfeedstream an den Trigger gesendet, der die Azure-Funktion aufruft.
- Binden Sie alternativ eine Azure-Funktion mithilfe einer Eingabebindung an einen Azure Cosmos DB-Container. Eingabebindungen lesen Daten aus einem Container, wenn eine Funktion ausgeführt wird.
- Binden Einer Funktion an einen Azure Cosmos DB-Container mithilfe einer Ausgabebindung. Ausgabebindungen schreiben Daten in einen Container, wenn eine Funktion abgeschlossen ist.
Hinweis
Derzeit werden Azure Functions-Trigger, Eingabebindungen und Ausgabebindungen für Azure Cosmos DB nur für die Verwendung mit der API für NoSQL unterstützt. Für alle anderen Azure Cosmos DB-APIs sollten Sie mithilfe des statischen Clients für Ihre API über Ihre Funktion auf die Datenbank zugreifen.
Das folgende Diagramm veranschaulicht jede dieser drei Integrationen:
Der Azure Functions-Trigger, die Eingabebindung und die Ausgabebindung für Azure Cosmos DB können in den folgenden Kombinationen verwendet werden:
- Ein Azure Functions-Trigger für Azure Cosmos DB kann mit einer Ausgabebindung an einen anderen Azure Cosmos DB-Container verwendet werden. Nachdem eine Funktion eine Aktion für ein Element im Änderungsfeed ausgeführt hat, können Sie sie in einen anderen Container schreiben (das Schreiben in denselben Container, aus dem sie stammt, würde effektiv eine rekursive Schleife erstellen). Sie können auch einen Azure Functions-Trigger für Azure Cosmos DB verwenden, um alle geänderten Elemente effektiv von einem Container zu einem anderen Container zu migrieren, wobei eine Ausgabebindung verwendet wird.
- Eingabebindungen und Ausgabebindungen für Azure Cosmos DB können in derselben Azure-Funktion verwendet werden. Dies funktioniert gut, wenn Sie bestimmte Daten mit der Eingabebindung finden möchten, sie in der Azure-Funktion ändern und dann nach der Änderung im selben Container oder einem anderen Container speichern möchten.
- Eine Eingabebindung an einen Azure Cosmos DB-Container kann in derselben Funktion wie ein Azure Functions-Trigger für Azure Cosmos DB verwendet werden und kann auch mit oder ohne Ausgabebindung verwendet werden. Sie können diese Kombination verwenden, um aktuelle Wechselkursinformationen (abgerufen mit einer Inputbindung an einen Wechselcontainer) auf den Änderungsfeed von neuen Bestellungen in Ihrem Einkaufswagendienst anzuwenden. Die aktualisierte Einkaufswagensumme, wobei die aktuelle Währungsumrechnung angewendet wird, kann mithilfe einer Ausgabebindung in einen dritten Container geschrieben werden.
Anwendungsfälle
In den folgenden Anwendungsfällen werden einige Möglichkeiten veranschaulicht, wie Sie Ihre Azure Cosmos DB-Daten optimal nutzen können, indem Sie Ihre Daten mit ereignisgesteuerten Azure-Funktionen verbinden.
IoT-Anwendungsfall – Azure Functions Trigger und Ausgabe-Bindung für Azure Cosmos DB
In IoT-Implementierungen können Sie eine Funktion aufrufen, wenn die Motorkontrollleuchte in einem verbundenen Auto angezeigt wird.
Umsetzung: Verwenden eines Azure Functions-Triggers und einer Ausgabebindung für Azure Cosmos DB
- Ein Azure Functions-Trigger für Azure Cosmos DB wird verwendet, um Ereignisse im Zusammenhang mit Autowarnungen auszulösen, z. B. wenn die Motorkontrollleuchte in einem vernetzten Fahrzeug aufleuchtet.
- Wenn die Motorkontrollleuchte aufleuchtet, werden die Sensordaten an Azure Cosmos DB gesendet.
- Azure Cosmos DB erstellt oder aktualisiert neue Sensordatendokumente, dann werden diese Änderungen an den Azure Functions-Trigger für Azure Cosmos DB gestreamt.
- Der Trigger wird für jede Datenänderung an der Sensordatensammlung aufgerufen, da alle Änderungen über den Änderungsfeed gestreamt werden.
- Eine Schwellenwertbedingung wird in der Funktion verwendet, um die Sensordaten an die Garantieabteilung zu senden.
- Wenn die Temperatur auch über einem bestimmten Wert liegt, wird auch eine Warnung an den Besitzer gesendet.
- Die Ausgabebindung für die Funktion aktualisiert den Autodatensatz in einem anderen Azure Cosmos DB-Container, um Informationen zum Check Engine-Ereignis zu speichern.
Die folgende Abbildung zeigt den Code, der im Azure-Portal für diesen Trigger geschrieben wurde.
Finanzanwendungsfall – Timertrigger und Eingabebindung
In Finanzimplementierungen können Sie eine Funktion aufrufen, wenn ein Bankkontostand unter einen bestimmten Betrag fällt.
Umsetzung: Ein Timertrigger mit einer Azure Cosmos DB-Eingabebindung
- Mithilfe eines Timertriggers können Sie die Kontostandsinformationen abrufen, die in einem Azure Cosmos DB-Container in zeitgesteuerten Intervallen mithilfe einer Eingabebindung gespeichert sind.
- Wenn der Saldo unter dem vom Benutzer festgelegten schwellenwert für den niedrigen Saldo liegt, folgen Sie dann einer Aktion aus der Azure-Funktion.
- Die Ausgabebindung kann eine SendGrid-Integration sein, die eine E-Mail von einem Dienstkonto an die E-Mail-Adressen sendet, die für jedes der Konten mit geringem Saldo identifiziert wurden.
Die folgenden Bilder zeigen den Code im Azure-Portal für dieses Szenario.
Anwendungsfall im Gaming – Auslöser und Ausgabebindung von Azure Functions für Azure Cosmos DB
Beim Spielen, wenn ein neuer Benutzer erstellt wird, können Sie nach anderen Benutzern suchen, die sie möglicherweise kennen, indem Sie azure Cosmos DB für Gremlin verwenden. Anschließend können Sie die Ergebnisse für einen einfachen Abruf in eine Azure Cosmos DB- oder SQL-Datenbank schreiben.
Umsetzung: Verwenden eines Azure Functions-Triggers und einer Ausgabebindung für Azure Cosmos DB
- Mithilfe einer Azure Cosmos DB-Graph-Datenbank zum Speichern aller Benutzer können Sie eine neue Funktion mit einem Azure Functions-Trigger für Azure Cosmos DB erstellen.
- Wenn ein neuer Benutzer eingefügt wird, wird die Funktion aufgerufen, und das Ergebnis wird mithilfe einer Ausgabebindung gespeichert.
- Die Funktion fragt die Graphdatenbank ab, um nach allen Benutzern zu suchen, die direkt mit dem neuen Benutzer verknüpft sind, und gibt dieses Dataset an die Funktion zurück.
- Diese Daten werden dann in Azure Cosmos DB gespeichert, die dann problemlos von jeder Front-End-Anwendung abgerufen werden können, die dem neuen Benutzer seine verbundenen Freunde anzeigt.
Verkaufsanwendungsfall – Mehrere Funktionen
Wenn ein Benutzer in Einzelhandelsimplementierungen dem Korb ein Element hinzufügt, haben Sie jetzt die Flexibilität, Funktionen für optionale Geschäftspipelinekomponenten zu erstellen und aufzurufen.
Umsetzung: Mehrere Azure Functions-Trigger für Azure Cosmos DB, die auf einen Container lauschen
- Sie können mehrere Azure Functions erstellen, indem Sie Azure Functions-Trigger für Azure Cosmos DB zu jeweils einer Funktion hinzufügen – wobei alle denselben Änderungsfeed der Einkaufswagendaten abhören. Wenn mehrere Funktionen auf denselben Änderungsfeed lauschen, ist für jede Funktion eine neue Leasesammlung erforderlich. Weitere Informationen zu Sammlungen von Leases finden Sie unter Verstehen der Change Feed Processor-Bibliothek.
- Wenn ein neuer Artikel einem Einkaufswagen hinzugefügt wird, wird jede Funktion unabhängig vom Änderungsfeed aus dem Einkaufswagencontainer aufgerufen.
Eine Funktion kann den Inhalt des aktuellen Korbs verwenden, um die Anzeige anderer Elemente zu ändern, an denen der Benutzer möglicherweise interessiert ist.
Eine andere Funktion kann Bestandssummen aktualisieren.
Eine andere Funktion kann Kundeninformationen für bestimmte Produkte an die Marketingabteilung senden, die ihnen einen Werbemailer sendet.
Jede Abteilung kann eine Azure Functions für Azure Cosmos DB erstellen, indem sie auf den Änderungsfeed lauschen und sicherstellen, dass sie kritische Auftragsverarbeitungsereignisse im Prozess nicht verzögern.
In all diesen Anwendungsfällen müssen Sie, da die Funktion die App selbst entkoppelt hat, nicht ständig neue App-Instanzen starten. Stattdessen startet Azure Functions individuelle Funktionen, um diskrete Prozesse bei Bedarf auszuführen.
Tooling
Die native Integration zwischen Azure Cosmos DB und Azure Functions ist im Azure-Portal und in Visual Studio verfügbar.
Im Azure Functions-Portal können Sie einen Trigger erstellen. Anweisungen zur Schnellstartanleitung finden Sie unter Erstellen eines Azure Functions-Triggers für Azure Cosmos DB im Azure-Portal.
Im Azure Cosmos DB-Portal können Sie einer vorhandenen Azure Function-App in derselben Ressourcengruppe einen Azure Functions-Trigger für Azure Cosmos DB hinzufügen.
In Visual Studio können Sie den Trigger mithilfe der Azure Functions Tools erstellen:
Warum wählen Sie die Azure Functions-Integration für serverloses Computing aus?
Azure Functions bietet die Möglichkeit, skalierbare Arbeitseinheiten oder präzise Logikeinheiten zu erstellen, die bei Bedarf ausgeführt werden können, ohne Infrastruktur bereitzustellen oder zu verwalten. Mithilfe von Azure Functions müssen Sie keine vollgeblasene App erstellen, um auf Änderungen in Ihrer Azure Cosmos DB-Datenbank zu reagieren, sie können kleine wiederverwendbare Funktionen für bestimmte Aufgaben erstellen. Darüber hinaus können Sie Azure Cosmos DB-Daten auch als Eingabe oder Ausgabe für eine Azure-Funktion als Reaktion auf Ereignisse wie HTTP-Anforderungen oder einen zeitlimitierten Trigger verwenden.
Azure Cosmos DB ist die empfohlene Datenbank für Ihre serverlose Computerarchitektur aus den folgenden Gründen:
Sofortiger Zugriff auf alle Ihre Daten: Sie haben granularen Zugriff auf jeden gespeicherten Wert, da Azure Cosmos DB standardmäßig automatisch alle Daten indiziert und diese Indizes sofort verfügbar macht. Dies bedeutet, dass Sie ihre Datenbank ständig abfragen, aktualisieren und neue Elemente hinzufügen und sofortigen Zugriff über Azure Functions haben können.
Schemalos. Azure Cosmos DB ist schemalos – daher ist es einzigartig in der Lage, jede Datenausgabe aus einer Azure-Funktion zu verarbeiten. Dieser Ansatz "handle anything" macht es einfach, verschiedene Funktionen zu erstellen, die alle in Azure Cosmos DB ausgegeben werden.
Skalierbarer Durchsatz. Der Durchsatz kann in Azure Cosmos DB sofort nach oben und unten skaliert werden. Wenn Sie Hunderte oder Tausende von Funktionen abfragen und in denselben Container schreiben, können Sie Ihre RU/s skalieren, um die Last zu verarbeiten. Alle Funktionen können parallel mit ihren zugeordneten RU/s funktionieren, und Ihre Daten sind garantiert konsistent.
Globale Replikation. Sie können Azure Cosmos DB-Daten auf der ganzen Welt replizieren, um die Latenz zu reduzieren und Ihre Daten am nächstgelegenen Ort ihrer Benutzer zu lokalisieren. Wie bei allen Azure Cosmos DB-Abfragen werden Daten aus ereignisgesteuerten Triggern aus dem Azure Cosmos DB-Element gelesen, das dem Benutzer am nächsten kommt.
Wenn Sie Azure Functions integrieren möchten, um Daten zu speichern und keine umfassende Indizierung benötigen, oder wenn Sie Anhänge und Mediendateien speichern müssen, ist der Azure Blob Storage-Trigger möglicherweise eine bessere Option.
Vorteile von Azure-Funktionen:
Ereignisgesteuert. Azure Functions ist ereignisgesteuert und kann auf einen Änderungsfeed von Azure Cosmos DB lauschen. Dies bedeutet, dass Sie keine Hörlogik erstellen müssen, sondern nur die Änderungen überwachen, auf die Sie achten.
Keine Grenzen. Funktionen werden parallel ausgeführt, und der Dienst startet so viele Instanzen, wie benötigt werden. Sie legen die Parameter fest.
Gut für schnelle Aufgaben. Der Dienst startet neue Funktionsinstanzen, wann immer ein Ereignis ausgelöst wird, und schließt sie, sobald die Funktion abgeschlossen ist. Sie zahlen nur für die Zeit, zu der Ihre Funktionen ausgeführt werden.
Wenn Sie nicht sicher sind, ob Microsoft Flow, Logic Apps, Azure Functions oder WebJobs für Ihre Implementierung am besten geeignet sind, lesen Sie „Auswahl zwischen Flow, Logic Apps, Functions und WebJobs“.
Nächste Schritte
Lassen Sie uns jetzt Azure Cosmos DB und Azure-Funktionen wirklich verbinden.