Übung: Lesen von Daten mit Eingabebindungen

Abgeschlossen

Angenommen, Sie möchten einen Lesezeichensuchdienst erstellen. Ihr Dienst ist anfänglich schreibgeschützt. Wenn Benutzer*innen nach einem Eintrag suchen möchten, senden diese eine Anforderung mit der ID des Eintrags, und die Funktion gibt die URL zurück. Das folgende Flussdiagramm verdeutlicht den logischen Ablauf.

Fussdiagramm, das den logischen Prozess des Suchens eines Lesezeichens in einer Azure Cosmos DB-Datenbank und das Zurückgeben einer Antwort zeigt.

Wenn ein Benutzer eine Anforderung mit Text sendet, versucht die Funktion „Lesezeichen suchen“, einen Eintrag in Ihrer Datenbank zu finden, der ein Lesezeichen mit dem Text als Schlüssel oder ID enthält. Das System gibt ein Ergebnis zurück, das angibt, ob Sie den Eintrag gefunden haben.

Wenn die Azure-Funktion eine Anforderung mit einer Lesezeichen-ID empfängt, überprüft sie zuerst, ob die Anforderung gültig ist. Wenn dies nicht der Fall ist, wird eine Fehlerantwort generiert. Wenn die Anforderung gültig ist, überprüft die Funktion, ob die Lesezeichen-ID in der Azure Cosmos DB-Datenbank vorhanden ist. Wenn sie nicht vorhanden ist, wird eine Fehlerantwort generiert. Wenn die Lesezeichen-ID gefunden wurde, wird eine erfolgreiche Antwort generiert.

Sie müssen die Daten nun noch speichern. Im Flussdiagramm oben wird als Datenspeicher die Azure Cosmos DB-Instanz verwendet. Aber wie stellen Sie über eine Funktion eine Verbindung mit einer Datenbank her und lesen Daten? In der Welt der Funktionen konfigurieren Sie eine Eingabebindung für diesen Auftrag. Es ist einfach, eine Eingabebindung über das Azure-Portal zu konfigurieren. Wie Sie gleich sehen werden, müssen Sie weder Code schreiben noch eine Speicherverbindung öffnen. Die Azure Functions-Runtime und -Bindungen nehmen Ihnen diese Aufgaben ab.

Erstellen eines Azure Cosmos DB-Kontos

Hinweis

Diese Übung ist nicht als Tutorial zu Azure Cosmos DB gedacht. Wenn Sie mehr erfahren möchten, folgen Sie dem vollständigen Lernpfad zu Azure Cosmos DB am Ende dieses Moduls.

Erstellen eines Datenbankkontos

Ein Datenbankkonto ist ein Container für die Verwaltung mindestens einer Datenbank. Bevor wir eine Datenbank erstellen können, müssen wir ein Datenbankkonto erstellen.

  1. Klicken Sie im Ressourcenmenü des Azure-Portals oder auf der Startseite auf Ressource erstellen. Der Bereich Ressource erstellen wird angezeigt.

  2. Klicken Sie im Menü Ressource erstellen auf Datenbanken, suchen Sie nach Azure Cosmos DB, und wählen Sie diese Option dann aus. Der Bereich Welche API passt am besten zu Ihrer Workload? wird angezeigt.

  3. Wählen Sie in der Option Azure Cosmos DB for NoSQL die Option Erstellen aus, damit Sie einen Cosmos DB-Trigger und Ein-/Ausgabebindungen erstellen können. Der Bereich Azure Cosmos DB-Konto erstellen – Azure Cosmos DB for NoSQL wird angezeigt.

  4. Füllen Sie auf der Registerkarte Grundlagen die folgenden Werte für jede Einstellung aus.

    Einstellung Wert BESCHREIBUNG
    Projektdetails
    Subscription Concierge-Abonnement Das Azure-Abonnement, das mit den Ressourcen in der Sandbox arbeitet.
    Ressourcengruppe Wählen Sie aus der Dropdownliste [Name der Sandboxressourcengruppe] aus. Die Ressourcengruppe für Ihre Sandbox.
    Instanzendetails
    Kontoname globally unique name Geben Sie einen eindeutigen, aber identifizierbaren Namen für Ihr Azure Cosmos DB-Konto ein. documents.azure.com wird an den von Ihnen bereitgestellten Namen angefügt.

    3 - 50 lowercase characters, numbers, or hyphens (-).
    Standort region Wählen Sie die nächstgelegene Region aus.
  5. Übernehmen Sie die Standardwerte für die restlichen Einstellungen, und wählen Sie Überprüfen und erstellen aus, um Ihre Eingabe zu überprüfen. Eine Benachrichtigung Überprüfung erfolgreich wird angezeigt.

  6. Wählen Sie Erstellen aus, um ein Datenbankkonto bereitzustellen.

  7. Die Bereitstellung kann einige Zeit in Anspruch nehmen. Warten Sie auf die Nachricht Bereitstellung erfolgreich im Notification Hub, bevor Sie fortfahren.

    Screenshot: Benachrichtigung, dass die Datenbankkontobereitstellung erfolgreich war

  8. Klicken Sie auf Zu Ressource wechseln, um im Portal zum Datenbankkonto zu navigieren. Der Bereich Schnellstart für Ihr Azure Cosmos DB-Konto wird angezeigt.

Als nächstes fügen wir einen Container und dann eine Datenbank zum Azure Cosmos DB-Konto hinzu.

Hinzufügen eines Containers

In einer Azure Cosmos DB-Instanz wird ein Container verwendet, um eine Vielzahl von benutzergenerierten Entitäten zu speichern, die auch als Elemente bezeichnet werden. Wir erstellen einen Container mit dem Namen „Lesezeichen“.

Wir verwenden den Daten-Explorer, um eine Datenbank und einen Container zu erstellen.

  1. Wählen Sie im Menü des Azure Cosmos DB-Kontos die Option Daten-Explorer aus. Auf der Seite für Ihr Cosmos DB-Konto wird der Bereich Daten-Explorer angezeigt.

  2. Wählen Sie das Feld Neuer Container aus. Der Bereich Neuer Container wird angezeigt. Möglicherweise müssen Sie scrollen.

  3. Füllen Sie die folgenden Werte für jede Einstellung aus.

    Einstellung Wert BESCHREIBUNG
    Datenbank-ID Wählen Sie die Option Neu erstellen aus, und geben Sie für die Datenbank-ID den Text func-io-learn-db ein. Datenbanknamen können zwischen 1 und 255 Zeichen lang sein und dürfen weder /, \, #, ? noch nachgestellte Leerzeichen enthalten.
    Sie können beliebige Namen eingeben, in diesem Modul wird jedoch func-io-learn-db verwendet.
    Max. Datenbankanforderungseinheiten pro Sekunde (RU/s) 4000 Übernehmen Sie den Standarddurchsatz von 4.000 Anforderungseinheiten pro Sekunde (RU/s). Um die Latenz zu reduzieren, können Sie die Leistung später hochskalieren.
    Container-ID Bookmarks Für Container-IDs gelten dieselben Zeichenanforderungen wie für Datenbanknamen. In diesem Modul wird Bookmarks verwendet.
    Partitionsschlüssel /id Der Partitionsschlüssel gibt an, wie die Dokumente in Azure Cosmos DB-Sammlungen auf logische Datenpartitionen verteilt werden. Wir verwenden die Einstellung Partitionsschlüssel hier nur der Einfachheit halber, weil uns in diesem Modul die Leistung der Datenbank nicht interessiert. Weitere Informationen zu Partitionsschlüsselstrategien von Azure Cosmos DB finden Sie in den Azure Cosmos DB-Modulen von Microsoft Learn.

    Übernehmen Sie die Standardwerte für alle anderen Einstellungen.

  4. Scrollen Sie auf der Seite nach unten, und klicken Sie auf OK. Es kann einige Minuten dauern, bis die Datenbank und der Container erstellt werden.

    Wenn Sie fertig sind, zeigt der Daten-Explorer func-io-learn-db in DATA unter NOSQL-API an.

  5. Wählen Sie die Datenbank func-io-learn-db aus, um sie zu erweitern. Beachten Sie, dass Ihre func-io-learn-db-Datenbank mehrere untergeordnete Elemente enthält, einschließlich Skalierung und Lesezeichen.

  6. Wenn Sie den Container Lesezeichen erweitern, werden Sie feststellen, dass dieser bereits mit mehreren untergeordneten Elementen aufgefüllt ist.

In der nächsten Aufgabe fügen Sie Ihrem Lesezeichencontainer einige Daten, die auch als Elemente bezeichnet werden, hinzu.

Hinzufügen von Testdaten

Sie sollten Daten zu Ihrem Container Lesezeichen hinzufügen. Sie verwenden Data Explorer, um eine URL und ID für jedes Element zu speichern.

  1. Erweitern Sie die Datenbank func-io-learn-db und den Container Bookmarks. Wählen Sie dann Elemente aus. Die Registerkarte Elemente wird angezeigt.

  2. Klicken Sie auf der Befehlsleiste auf Neues Element.

  3. Ersetzen Sie den Standardcode des neuen Elements durch den folgenden JSON-Code.

    {
        "id": "docs",
        "url": "https://learn.microsoft.com/azure"
    }
    
  4. Klicken Sie auf der Befehlsleiste auf Speichern.

    Beachten Sie, dass mehr Eigenschaften als die beiden hinzugefügten Zeilen angezeigt werden. Alle beginnen mit einem Unterstrich (_rid, _self, _etag, _attachments, _ts). Diese Eigenschaften, die in der folgenden Tabelle beschrieben werden, werden vom System generiert, um die Elemente zu verwalten, die Sie dem Container hinzufügen.

    Eigenschaft BESCHREIBUNG
    _rid Die Ressourcen-ID ist ein eindeutiger Bezeichner, der auch gemäß dem Ressourcenstapel für das Ressourcenmodell hierarchisch ist. Sie wird intern für die Platzierung und Navigation der Elementressource verwendet.
    _self Eindeutig adressierbarer URI für die Ressource.
    _etag Für die Steuerung der optimistischen Nebenläufigkeit erforderlich.
    _attachments Adressierbarer Pfad für die Anlagenressource.
    _ts Zeitstempel der letzten Aktualisierung dieser Ressource.
  5. Fügen wir nun weitere Elemente zum Container Lesezeichen hinzu. Klicken Sie auf der Befehlsleiste auf Neues Element. Erstellen Sie vier weitere Elemente mit dem folgenden Inhalt. Fügen Sie ein neues Element hinzu, indem Sie Neues Element und dann Speichern auswählen, nachdem Sie die einzelnen Elemente kopiert und eingefügt haben. Beachten Sie, wie jedes Element der Liste der Elemente hinzugefügt wird.

    {
        "id": "portal",
        "url": "https://portal.azure.com"
    }
    
    {
        "id": "learn",
        "url": "https://learn.microsoft.com/training"
    }
    
    {
        "id": "marketplace",
        "url": "https://azuremarketplace.microsoft.com/marketplace/apps"
    }
    
    {
        "id": "blog",
        "url": "https://azure.microsoft.com/blog"
    }
    
  6. Wenn Sie die Eingabe der Textmarkendaten abgeschlossen haben, sollte Ihr Container wie in der folgenden Abbildung gezeigt aussehen.

    Screenshot von SQL API-Daten, die die Sammlung von Elementen im Lesezeichencontainer von „func-io-learn-db“ zeigen

Ihr Lesezeichencontainer besitzt fünf Elemente. Wenn in diesem Szenario eine Anforderung mit „id=docs“ eingeht, wird in Ihrem Lesezeichencontainer nach dieser ID gesucht und die URL https://learn.microsoft.com/azure wird zurückgegeben. Erstellen Sie nun eine Azure-Funktion, die nach Werten im Lesezeichencontainer sucht.

Erstellen Ihrer Funktion

  1. Navigieren Sie zu der Funktions-App, die Sie in der letzten Lerneinheit erstellt haben. Wählen Sie im Ressourcenmenü Home aus. Im Abschnitt Zuletzt verwendete Ressourcen sollte Ihre Funktions-App angezeigt werden (Typ entspricht Funktions-App). Wählen Sie Ihre Funktions-App aus. Der Bereich Funktions-App wird angezeigt.

  2. Auf der Registerkarte Funktionen auf der Seite Übersicht sollten Sie eine Funktion haben, die HttpTrigger1-Funktion.

  3. Erstellen Sie nun eine weitere Funktion. Wählen Sie Erstellen auf der Registerkarte Funktionen aus. Der Bereich Funktion erstellen mit Vorlagen für unterstützte Trigger wird angezeigt.

  4. Wählen Sie im Abschnitt Vorlage auswählen die Option HTTP-Trigger und dann Hinzufügen aus.

  5. Übernehmen alle Standardwerte und wählen Sie Erstellen aus, um die Funktion zu erstellen.

    Der Bereich „Überblick“ der HttpTrigger2-Funktion wird angezeigt.

Überprüfen der Funktion

Sie können überprüfen, was wir bisher getan haben, indem Sie die neue Funktion testen.

  1. Klicken Sie in der Befehlsleiste auf Funktions-URL abrufen. Das Dialogfeld Funktions-URL abrufen wird geöffnet.

  2. Wählen Sie Standard (Funktionsschlüssel) in der Dropdownliste aus, wählen Sie das Symbol In Zwischenablage kopieren aus, und klicken Sie auf OK.

  3. Fügen Sie die Funktions-URL, die Sie kopiert haben, in die Adressleiste einer neuen Browserregisterkarte ein. Fügen Sie den Wert der Abfragezeichenfolge &name=<your name> am Ende der URL an, und ersetzen Sie <your name> durch Ihren festgelegten Namen. Drücken Sie dann die EINGABETASTE. Die Azure-Funktion sollte eine personalisierte Antwort im Browser zurückgeben.

Nachdem unsere Basisfunktion nun funktioniert, sollten wir unsere Aufmerksamkeit auf das Lesen von Daten aus Ihrer Azure Cosmos DB-Instanz oder (in unserem Szenario) dem Container Lesezeichen richten.

Hinzufügen einer Azure Cosmos DB-Eingabebindung

Zum Lesen von Daten aus der Datenbank müssen Sie eine Eingabebindung definieren. Wie Sie sehen, können Sie in wenigen Schritten eine Bindung konfigurieren, die mit Ihrer Datenbank kommunizieren kann.

  1. Wählen sie im Azure-Portal im Menü der Funktion HttpTrigger2 auf der linken Seite die Option Integration aus. Der Bereich Integration für Ihre Funktion wird angezeigt.

    Sie haben eine Vorlage verwendet, die eine HTTP-Triggeranforderung mit einer HTTP-Ausgabebindung erstellt hat. Fügen Sie nun eine Azure Cosmos DB-Eingabebindung hinzu.

  2. Wählen Sie im Feld Eingaben die Option Eingabe hinzufügen aus. Der Bereich Eingabe erstellen wird geöffnet.

  3. Wählen Sie in der Dropdownliste Bindungstyp die Option Azure Cosmos DB aus.

  4. Wählen Sie im Abschnitt Azure Cosmos DB-Details unter der Einstellung Cosmos DB-Kontoverbindung den Link Neu aus. Das Dialogfeld Neue Cosmos DB-Verbindung wird angezeigt.

    Wenn Sie in einer Meldung aufgefordert werden, die Erweiterung „Microsoft.Azure.WebJobs.Extensions.CosmosDB“ zu installieren, klicken Sie auf Installieren, und warten Sie, bis die Installation abgeschlossen ist.

  5. Standardmäßig erkennt Azure das Azure Cosmos DB-Konto, das Sie zuvor erstellt haben. Wählen Sie OK aus, um eine Verbindung mit Ihrer Datenbank herzustellen. Eine neue Verbindung mit dem Datenbankkonto wird konfiguriert und im Feld Cosmos DB-Kontoverbindung angezeigt.

    Wir möchten nach einem Lesezeichen mit einer bestimmten ID suchen. Verknüpfen Sie also die in der Abfragezeichenfolge erhaltene ID mit der Bindung.

  6. Schließen Sie Ihre Einstellungen im Bereich Eingabe erstellen ab. Füllen Sie die folgenden Werte für jede Einstellung aus. Um mehr über den Zweck der einzelnen Einstellungen zu erfahren, wählen Sie das Informationssymbol für das jeweilige Feld aus.

    Einstellung Wert Beschreibung
    Dokumentparametername bookmark Der Name, der zum Identifizieren dieser Bindung in Ihrem Code verwendet wird.
    Datenbankname func-io-learn-db Die Datenbank, mit der gearbeitet werden soll. Dieser Wert ist der Datenbankname, den wir festgelegt haben.
    Sammlungsname Bookmarks Die Sammlung, aus der die Daten gelesen werden. Diese Einstellung wurde definiert.
    Dokument-ID id Fügen Sie die Dokument-ID hinzu, die Sie bei der Erstellung des Azure Cosmos DB-Containers Bookmarks definiert haben.
    Partitionsschlüssel /id Fügen Sie den Partitionsschlüssel hinzu, den Sie bei der Erstellung der Azure Cosmos DB-Sammlung Bookmarks definiert haben. Der hier eingegebene Schlüssel (im Eingabebindungsformat <key>) muss dem in der Sammlung entsprechen.
    SQL-Abfrage (optional) Nicht ausfüllen Sie rufen jeweils nur ein Dokument basierend auf der ID ab. Daher ist die Filterung anhand der Dokument-ID-Einstellung in diesem Fall besser als die Verwendung einer SQL-Abfrage. Sie könnten eine SQL-Abfrage für die Rückgabe eines Eintrags (SELECT * from b where b.ID = id) erstellen. Diese Abfrage würde tatsächlich ein Dokument zurückgeben, aber es würde in einer Dokumentsammlung zurückgegeben. Ihr Code müsste eine Sammlung unnötigerweise bearbeiten. Verwenden Sie den SQL-Abfrageansatz, wenn mehrere Dokumente abgerufen werden sollen.

    Um zu verdeutlichen, warum wir diese Einstellungen verwenden, möchten wir ein Lesezeichen mit einer bestimmten ID nachschlagen. Daher haben wir die Dokument-ID, die unsere Funktion in der Abfragezeichenfolge empfängt, an die Eingabebindung gebunden. Diese Syntax wird als Bindungsausdruck bezeichnet. Die Funktion wird durch eine HTTP-Anforderung ausgelöst, die eine Abfragezeichenfolge verwendet, um die zu suchende ID anzugeben. Da IDs in unserer Sammlung eindeutig sind, gibt die Bindung entweder 0 (nicht gefunden) oder 1 (gefunden) Dokumente zurück.

  7. Wählen Sie OK aus, um diese Eingabebindungskonfiguration zu speichern.

Aktualisieren der Funktionsimplementierung

Da Ihre Bindung nun definiert ist, können Sie sie in Ihrer Funktion verwenden. Sie müssen zwei Änderungen vornehmen, um die von Ihnen erstellte Bindung zu implementieren:

  • Ändern Sie den sprachspezifischen Implementierungscode Ihrer Funktion. Er muss feststellen, ob ein Dokument in der Datenbank gefunden wurde, das mit der ID übereinstimmt, die der Funktion übergeben wird.

  • Ändern Sie den JSON-Implementierungscode Ihrer Funktion, um einen Parameter zu akzeptieren, der im Query-String übergeben wird.

Ändern des JavaScript-Implementierungscodes Ihrer Funktion

  1. Wählen Sie im Funktionsmenü für Ihre HttpTrigger2-Funktion Programmieren und testen aus. Der Bereich Programmieren und testen für Ihre Funktion HttpTrigger2 wird angezeigt.

  2. Ersetzen Sie den gesamten Code in der Datei index.js durch den folgenden.

    module.exports = function (context, req) {
    
        var bookmark = context.bindings.bookmark
    
        if(bookmark){
            context.res = {
            body: { "url": bookmark.url },
            headers: {
                'Content-Type': 'application/json'
            }
            };
        }
        else {
            context.res = {
                status: 404,
                body : "No bookmarks found",
                headers: {
                'Content-Type': 'application/json'
                }
            };
        }
    
        context.done();
    };
    
  3. Klicken Sie auf der Befehlsleiste auf Speichern. Wählen Sie in der Dropdownliste oben in der Mitte des Protokollbereichs (in dem standardmäßig App Insights-Protokolle angezeigt wird) die Option Dateisystemprotokolle aus. Der Bereich Protokolle wird aufgerufen und zeigt den Status Connected! (Verbunden) an.

Sehen wir uns an, was dieser Code bewirkt.

  • Eine eingehende HTTP-Anforderung löst die Funktion aus, und ein id-Abfrageparameter wird an die Azure Cosmos DB-Eingabebindung übergeben.

  • Wenn die Datenbank ein Dokument findet, das dieser ID entspricht, wird der Parameter bookmark auf das gefundene Dokument festgelegt.

    In diesem Beispiel erstellt der Code eine Antwort, die den URL-Wert enthält, der im entsprechenden Dokument der Datenbank gefunden wird.

  • Wenn kein Dokument gefunden wurde, das mit diesem Schlüssel übereinstimmt, reagiert die Anforderung mit einer Nutzlast und einem Statuscode, der den Benutzer über den Fehler informiert.

Ändern des JSON-Implementierungscodes Ihrer Funktion

  1. Wählen Sie in der Dropdownliste in Ihrem <functionapp> \ HttpTrigger2 \-Pfad function.json aus.

  2. Ändern Sie die Werte für id und partitionKey so, dass sie den Parameter {id} akzeptieren. Ihr function.json-Code sollte dem folgenden Beispiel ähneln, wobei your-database durch den Namen Ihrer Cosmos DB-Datenbank ersetzt wird.

    {
      "bindings": [
        {
          "authLevel": "function",
          "type": "httpTrigger",
          "direction": "in",
          "name": "req",
          "methods": [
            "get",
            "post"
          ]
        },
        {
          "type": "http",
          "direction": "out",
          "name": "res"
        },
        {
          "name": "bookmark",
          "direction": "in",
          "type": "cosmosDB",
          "connection": "your-database_DOCUMENTDB",
          "databaseName": "func-io-learn-db",
          "containerName": "Bookmarks",
          "id": "{id}",
          "partitionKey": "{id}"
        }
      ]
    }
    
  3. Klicken Sie auf der Befehlsleiste auf Speichern.

Ändern des PowerShell-Implementierungscodes Ihrer Funktion

  1. Wählen Sie im Funktionsmenü für Ihre HttpTrigger2-Funktion Programmieren und testen aus. Der Bereich Programmieren und testen für Ihre Funktion HttpTrigger2 wird angezeigt und zeigt die run.ps1-Datei an.

  2. Ersetzen Sie den gesamten Code in der Datei run.ps1 durch den folgenden.

    using namespace System.Net
    
    param($Request, $bookmark, $TriggerMetadata)
    
    if ($bookmark) {
        $status = [HttpStatusCode]::OK
        $body = @{ url = $bookmark.url }
    }
    else {
        $status = [HttpStatusCode]::NotFound
        $body = "No bookmarks found"
    }
    
    Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
        StatusCode = $status
        Body = $body
    })
    
  3. Klicken Sie auf der Befehlsleiste auf Speichern. Wählen Sie in der Dropdownliste oben in der Mitte des Protokollbereichs (in dem standardmäßig App Insights-Protokolle angezeigt wird) die Option Dateisystemprotokolle aus. Der Bereich Protokolle wird aufgerufen und zeigt den Status Connected! (Verbunden) an.

Sehen wir uns an, was dieser Code bewirkt.

  • Eine eingehende HTTP-Anforderung löst die Funktion aus, und ein id-Abfrageparameter wird an die Azure Cosmos DB-Eingabebindung übergeben.

  • Wenn die Datenbank ein Dokument findet, das dieser ID entspricht, wird der Parameter bookmark auf das gefundene Dokument festgelegt.

    In diesem Beispiel erstellt der Code eine Antwort, die den URL-Wert enthält, der im entsprechenden Dokument der Datenbank gefunden wird.

  • Wenn kein Dokument gefunden wurde, das mit diesem Schlüssel übereinstimmt, reagiert die Anforderung mit einer Nutzlast und einem Statuscode, der den Benutzer über den Fehler informiert.

Ändern des JSON-Implementierungscodes Ihrer Funktion

  1. Wählen Sie in der Dropdownliste in Ihrem <functionapp> \ HttpTrigger2 \-Pfad function.json aus.

  2. Ändern Sie die Werte für id und partitionKey so, dass sie den Parameter {id} akzeptieren. Ihr function.json-Code sollte dem folgenden Beispiel ähneln, wobei your-database durch den Namen Ihrer Cosmos DB-Datenbank ersetzt wird.

    {
      "bindings": [
        {
          "authLevel": "function",
          "type": "httpTrigger",
          "direction": "in",
          "name": "Request",
          "methods": [
            "get",
            "post"
          ]
        },
        {
          "type": "http",
          "direction": "out",
          "name": "Response"
        },
        {
          "type": "cosmosDB",
          "name": "bookmark",
          "databaseName": "func-io-learn-db",
          "containerName": "Bookmarks",
          "connection": "your-database_DOCUMENTDB",
          "direction": "in",
          "id": "{id}",
          "partitionKey": "{id}"
        }
      ]
    }
    
  3. Klicken Sie auf der Befehlsleiste auf Speichern.

Ausprobieren

  1. Für Ihre HttpTrigger2-Funktion sollten Sie sich im Bereich Programmieren und testen befinden.

  2. Klicken Sie in der Befehlsleiste auf Funktions-URL abrufen. Das Dialogfeld Funktions-URL abrufen wird geöffnet.

  3. Wählen Sie in der Dropdownliste Schlüssel die Standardoption unter Funktionsschlüssel und dann das Symbol In Zwischenablage kopieren am Ende der URL aus.

  4. Fügen Sie den kopierten Funktionsschlüssel in die Adressleiste einer neuen Browserregisterkarte ein, und fügen Sie dann den Wert &id=docs der Abfragezeichenfolge am Ende der URL hinzu. Die sich ergebende URL sollte dem folgenden Beispiel ähneln:

    https://example.azurewebsites.net/api/HttpTrigger2?code=AbCdEfGhIjKlMnOpQrStUvWxYz==&id=docs

  5. Drücken Sie die EINGABETASTE, um die Anforderung auszuführen. Die von Ihrer Funktion zurückgegebene Antwort sollte dem folgenden Beispiel ähneln.

    {
      "url": "https://learn.microsoft.com/azure"
    }
    
  6. Ersetzen Sie &id=docs durch &id=missing, drücken Sie die EINGABETASTE, und beobachten Sie die Antwort. Wir haben fünf Lesezeichen definiert und eine aussagekräftige Fehlerantwort erstellt, die angezeigt wird, wenn das angeforderte Lesezeichen nicht vorhanden ist.

In dieser Lerneinheit haben Sie Ihre erste Eingabebindung manuell erstellt, um aus einer Azure Cosmos DB-Datenbank zu lesen. Die Menge an Code, die Sie geschrieben haben, um unsere Datenbank zu durchsuchen und Daten zu lesen, war dank Bindungen nur minimal. Der größte Teil der Aufgabe bestand im deklarativen Konfigurieren der Bindung, und die Plattform hat sich um den Rest gekümmert.

In der nächsten Lerneinheit fügen Sie unserer Lesezeichensammlung durch eine Azure Cosmos DB-Ausgabebindung weitere Daten hinzu.