Untersuchen der Eingabe- und Ausgabebindungstypen

Abgeschlossen

Das Zugreifen auf und Verarbeiten von Daten sind wichtige Aufgaben in vielen Softwarelösungen. Betrachten Sie einige der folgenden Szenarios:

  • Sie wurden gebeten, eine Lösung zu implementieren, mit der eingehende Daten aus Azure Blob Storage in Azure Cosmos DB verschoben werden.
  • Sie möchten eingehende Nachrichten an eine Warteschlange übermitteln, damit diese von einer anderen Komponente in Ihrem Unternehmen verarbeitet werden kann.
  • Der Dienst muss Spielergebnisse aus einer Warteschlange abrufen und eine Onlineanzeigetafel aktualisieren.

Alle diese Beispiele beschäftigen sich mit dem Verschieben von Daten. Die Datenquelle und die Ziele unterscheiden sich von Szenario zu Szenario, aber das Muster ist ähnlich. Sie stellen eine Verbindung mit einer Datenquelle her und lesen und schreiben Daten. Azure Functions unterstützt Sie durch Bindungen bei der Integration von Daten und Diensten.

Was ist eine Bindung?

In Azure Functions stellen Bindungen eine deklarative Möglichkeit zum Herstellen einer Verbindung mit Daten über Ihren Code dar. Sie erleichtern die konsistente Integration von Datenströmen in eine Funktion. Sie können über mehrere Bindungen verfügen, die Zugriff auf verschiedene Datenelemente bieten. Diese Integration ist effektiv, da Sie eine Verbindung mit Ihren Datenquellen herstellen können, ohne spezifische Verbindungslogik zu codieren (z.B. Datenbankverbindungen oder Web-API-Schnittstellen).

Bindungstypen

Es gibt zwei Arten von Bindungen, die Sie für Ihre Funktionen verwenden können:

  • Eingabebindung: Stellt eine Verbindung mit einer Datenquelle her. Die Funktion kann Daten aus diesen Eingabequellen auslesen.

  • Ausgabebindung: Stellt eine Verbindung mit einem Ziel her. Die Funktion kann Daten in diese Ausgabeziele schreiben.

Es gibt auch Trigger. Hierbei handelt es sich um spezielle Eingabebindungen, die das Ausführen einer Funktion auslösen. Beispielsweise kann eine Azure Event Grid-Benachrichtigung als Trigger konfiguriert werden. Die Funktion wird ausgeführt, wenn ein Ereignis eintritt.

Typen von unterstützten Bindungen

Der Typ der Bindung definiert, wo Daten gelesen oder wohin Daten gesendet werden. Es gibt eine Bindung zur Beantwortung von Webanforderungen sowie eine große Auswahl an Bindungen, die direkt mit verschiedenen Azure-Diensten und Diensten von Drittanbietern interagieren.

Ein Bindungstyp kann als Eingabe, Ausgabe oder beides verwendet werden. Eine Funktion kann beispielsweise in eine Blob Storage-Ausgabebindung schreiben, jedoch könnte ein Update von Blob Storage eine andere Funktion auslösen.

Zu den gängigen Bindungstypen gehören:

  • Blob Storage
  • Azure Service Bus-Warteschlangen
  • Azure Cosmos DB
  • Azure Event Hubs
  • Externe Dateien
  • Externe Tabellen
  • HTTP-Endpunkte

Diese Typen sind lediglich Beispiele. Es gibt weitere, und außerdem verfügen Funktionen über ein Erweiterbarkeitsmodell zum Hinzuzufügen weiterer Bindungen.

Bindungseigenschaften

Drei Eigenschaften sind in allen Bindungen erforderlich,obwohl Sie je nach Art der Bindung und des Speichers, den Sie verwenden, möglicherweise mehr Eigenschaften angeben müssen.

  • Name: Definiert den Funktionsparameter, über den Sie auf die Daten zugreifen. In einer Warteschlangeneingabebindung ist diese Eigenschaft z. B. der Name des Funktionsparameters, der den Inhalt der Warteschlangennachricht empfängt.

  • Typ: Identifiziert den Typ der Bindung. Der Typ von Daten oder Diensten, mit dem Sie interagieren möchten.

  • Richtung: Gibt die Richtung an, in die Daten fließen. Handelt es sich beispielsweise um eine Eingabe- oder Ausgabebindung?

Darüber hinaus ist für die meisten Bindungstypen eine vierte Eigenschaft erforderlich:

  • Verbindung: Gibt den Namen eines App-Einstellungsschlüssels an, der die Verbindungszeichenfolge enthält. Bindungen greifen auf Verbindungszeichenfolgen zurück, die in App-Einstellungen gespeichert sind, damit Geheimnisse nicht im Funktionscode hinterlegt werden müssen. Durch Verbindungszeichenfolgen wird Ihr Code konfigurierbarer und sicherer.

Erstellen einer Bindung

Bindungen werden in JSON definiert. Eine Bindung wird in der Konfigurationsdatei function.json Ihrer Funktion konfiguriert. Diese Datei befindet sich im selben Ordner wie Ihr Funktionscode.

Sehen wir uns ein Beispiel für eine Eingabebindung an:

    ...
    {
      "name": "headshotBlob",
      "type": "blob",
      "path": "thumbnail-images/{filename}",
      "connection": "HeadshotStorageConnection",
      "direction": "in"
    },
    ...

Zum Erstellen dieser Bindung gehen Sie folgendermaßen vor:

  1. Erstellen Sie eine Bindung in der Datei function.json.

  2. Geben Sie den Wert für die Variable name an. In diesem Beispiel enthält die Variable die Blobdaten.

  3. Geben Sie für den Speicher die type-Eigenschaft an. Im Beispiel oben wird Blob Storage verwendet.

  4. Geben Sie die path-Eigenschaft an. Mit dieser werden der Container und der darin gespeicherte Elementname festgelegt. Die path-Eigenschaft ist erforderlich, wenn der Blobtrigger verwendet wird. Sie sollte im hier gezeigten Stil mit geschweiften Klammern um den Dateinamenteil des Pfads angegeben werden. Mit dieser Syntax wird ein Bindungsausdruck erstellt, der es Ihnen ermöglicht, in anderen Bindungen und im Code der Funktion auf den Namen des Blobs zu verweisen. In diesem Beispiel wird ein Parameter für die Funktion namens filename (Dateiname) mit dem Dateinamen des Blob aufgefüllt, das die Funktion ausgelöst hat.

  5. Geben Sie den Einstellungsnamen für die connection-Zeichenfolge an, der in der Datei der Anwendungseinstellung definiert wurde. Er wird als Schlüssel verwendet, um die Verbindungszeichenfolge für die Verbindung mit Ihrem Speicherkonto zu ermitteln.

  6. Legen Sie direction auf in fest. Dadurch werden Daten aus dem Blob gelesen.

Bindungen werden verwendet, um eine Verbindung mit Daten in Ihrer Funktion herzustellen. In diesem Beispiel haben wir eine Eingabebindung verwendet, um eine Verbindung mit Benutzerbildern herzustellen, die von unserer Funktion als Miniaturansichten verarbeitet werden sollen.