Übung: Erstellen einer neuen API in API Management anhand einer Funktions-App

Abgeschlossen

Um Benutzern Azure Functions als Teil einer einzelnen API zu präsentieren, können Sie es zu Azure API Management hinzufügen.

Für den Onlineshop Ihres Unternehmens haben die Entwickler mehrere Azure-Funktionen als Microservices erstellt. Jede Funktion implementiert einen kleinen Teil der Funktionalität des Shops. Sie möchten diese Funktionen zu einer einzelnen API zusammensetzen.

In dieser Übung erstellen Sie eine neue API Management-Instanz und fügen dieser anschließend eine Funktion des Typs „Produktdetails“ hinzu.

Erstellen von Funktionen

In den folgenden Schritten fügen Sie Azure API Management eine Azure-Funktions-App hinzu. Später fügen Sie der gleichen API Management-Instanz eine zweite Funktions-App hinzu, um aus mehreren Funktionen eine einzelne serverlose API zu erstellen. Beginnen wir mit der Verwendung eines Skripts zum Erstellen der Funktionen:

  1. Führen Sie in Azure Cloud Shell auf der rechten Seite den folgenden Befehl aus, um das Funktionsprojekt zu klonen.

    git clone https://github.com/MicrosoftDocs/mslearn-apim-and-functions.git ~/OnlineStoreFuncs
    
  2. Führen Sie in Cloud Shell die folgenden Befehle aus, um die Azure-Ressourcen einzurichten, die wir für diese Übung benötigen.

    cd ~/OnlineStoreFuncs
    bash setup.sh
    

    Das Skript setup.sh erstellt die beiden Funktions-Apps in der Sandbox-Ressourcengruppe, die für dieses Modul aktiviert sind. Wie die folgende Grafik veranschaulicht, hostet jede App eine einzelne Funktion: OrderDetails und ProductDetails. Das Skript richtet auch ein Speicherkonto für die Funktionen ein. Beide Funktionen verfügen über URLs in der Domäne azurewebsites.net. Die Funktionsnamen enthalten zum Zweck der Eindeutigkeit Zufallszahlen. Die Skriptausführung kann einige Minuten dauern.

    Abbildung: Ergebnisse des Skripts „setup.sh“ und Beziehung zwischen den Funktionen und dem Entwurf der gesamten Anwendung

Testen der Funktion „ProductDetails“

Nun testen Sie die Funktion „ProductDetails“, um zu ermitteln, wie sie sich verhält, bevor Sie sie zu API Management hinzufügen.

  1. Melden Sie sich beim Azure-Portal mit demselben Konto an, das Sie zum Aktivieren der Sandbox verwendet haben.

  2. Wählen Sie im Menü des Azure-Portals oder auf der Startseite die Option Alle Ressourcen aus. Der Bereich Alle Ressourcen wird angezeigt.

  3. Wählen Sie die Funktions-App aus, deren Name mit ProductFunction beginnt. Der Bereich „Funktions-App“ wird mit ausgewählter Registerkarte Übersicht angezeigt.

    Screenshot: Menüauswahl zum Öffnen der Funktion „ProductDetails“

  4. Wählen Sie ProductDetails (Produktdetails) in der Liste der Funktionen für Ihre Funktions-App aus. Der Bereich der Funktion ProductDetails wird angezeigt.

  5. Wählen Sie im Menü „Product Details“ unter Entwickler die Option Code + Test aus. Der Bereich Code + Test für die „ProductDetails“-Funktion wird mit dem Inhalt der Datei function.json angezeigt.

    Screenshot: Der Bereich „Code + Test“ für die „ProductDetails“-Funktion, wobei „Test/Run“ (Testen/Ausführen) in der Befehlsleiste ausgewählt ist

  6. Wählen Sie in der Befehlsleiste Test/Run aus. Der Bereich „Eingabe/Ausgabe“ wird zum Testen Ihrer HTTP-Anforderung angezeigt.

  7. Wählen Sie auf der Registerkarte Eingabe in der Dropdownliste HTTP-Methode die Option GET aus.

  8. Wählen Sie unter Abfrage die Option Parameter hinzufügen aus.

  9. Geben Sie im Feld Nameid und im Feld Wert3 ein. Klicken Sie dann auf Ausführen.

    Screenshot: Der Eingabebereich für „Test + Run“ mit hervorgehobenem Eingabeparameter für die HTTP-GET-Methode

  10. Ein Protokollbereich wird angezeigt, um die Anforderung zu verbinden. Auf der Registerkarte Ausgabe wird der HTTP-Antwortcode (200 OK) und der Inhalt für Element 3 in der Datenbank angezeigt.

    Screenshot: Ausgabe eines Bereichs für „Test + Run“ mit Antwortergebnissen der Ausführung der GET-Methode

    Optional können Sie die Funktion auch testen, indem Sie die ID-Werte 1 und 2 eingeben.

  11. Wählen Sie Schließen aus, um die Registerkarten „Eingabe“ und „Ausgabe“ für „Code + Test“ zu schließen.

  12. Wählen Sie auf der Befehlsleiste des Bereichs „Code + Test“ für „ProductDetails“ die Option Funktions-URL abrufen aus. Beachten Sie, dass die URL-Unterdomäne der Name Ihrer Funktions-App gefolgt von der Domäne azurewebsites.net ist.

Hinweis

Mit dieser URL können Sie die Funktion in Ihrem Browser testen. Die URL erfordert eine Eingabe. Fügen Sie die Abfragezeichenfolge &id=1 ein, um Details zum ersten Element in Ihrer Produktsammlung anzufordern.

Verfügbarmachen einer Funktions-App als API mithilfe von Azure API Management

Nachdem die Funktions-App bereitgestellt und getestet wurde, exportieren Sie sie mithilfe von Azure API Management als eine API, sodass sie von anderen Apps und Diensten aufgerufen werden kann.

  1. Wählen Sie im Ressourcenmenü die Option Alle Ressourcen aus. Der Bereich Alle Ressourcen wird angezeigt.

  2. Sortieren Sie die Liste der Ressourcen nach Typ. Beachten Sie, dass Sie über eine „OrderFunction“-App und eine „ProductFunction“-App verfügen.

  3. Wählen Sie die Funktions-App ProductFunction aus.

  4. Scrollen Sie im Menü „Funktions-App“ zur Kategorie API und wählen Sie dann API Management aus. Der Bereich API Management für die Funktions-App „ProductFunction“ wird angezeigt.

    Screenshot: Menüauswahl zum Öffnen des API Management-App-Diensts

  5. Klicken Sie im Feld API Management auf Neu erstellen. Der Bereich API Management-Gateway installieren wird angezeigt.

    Screenshot: Einstellungen für einen API Management-Dienst

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

    Einstellung Wert
    Subscription Concierge-Abonnement
    Ressourcengruppe [Name der Sandboxressourcengruppe]
    Region Wählen Sie einen Standort aus, an dem der Verbrauchstarif unterstützt wird: (USA) USA, Westen, USA Mitte/Norden, Westeuropa, Nordeuropa, Asien, Südosten, Australien, Osten.
    Ressourcenname OnlineStore
    Name der Organisation OnlineStore
    Administrator-E-Mail-Adresse Geben Sie eine E-Mail-Adresse ein.
    Tarif Verbrauch (99,95 % SLA)
  7. Wählen Sie Weiter: Überwachung aus, und deaktivieren Sie die Option Application Insights.

  8. Klicken Sie auf Überprüfen + erstellen. Wenn die Überprüfung abgeschlossen ist, wählen Sie Erstellen aus, um eine verknüpfte API Management-Instanz zu erstellen. Warten Sie einige Minuten, bis das Exportieren abgeschlossen ist.

  9. Nachdem Sie die API Management-Instanz bereitgestellt haben, wählen Sie API verknüpfen aus.

    Screenshot: API Management mit hervorgehobener Schaltfläche „API verknüpfen“

    Der Bereich Azure-Funktionen importieren des API Management-Diensts wird mit hervorgehobener ProductDetails-Funktion angezeigt.

    Screenshot: Der Bereich „Azure-Funktionen importieren“ des API Management-Diensts

  10. Klicken Sie auf Auswählen, um fortzufahren. Das Dialogfeld Aus Funktions-App erstellen wird angezeigt.

    Screenshot: Dialogfeld „Aus Funktions-App erstellen“

  11. Ändern Sie den API-URL-Suffix-Wert auf products, und wählen Sie dann Erstellen aus. Die API wird von Azure für die Funktion ProductDetails erstellt. Die Registerkarte Entwurf für den Bereich API Management für Ihre Funktions-App wird angezeigt.

Diese Übung zeigt, dass Sie Ihre API innerhalb der Dienstumgebung der Azure-Funktions-App definieren können.

Testen des Endpunkts für OnlineStore-Produkte

Sie verfügen nun über eine ProductDetails-API in der API Management-Instanz, die Sie erstellt haben. Lassen Sie uns diese API mit den API Management-Tools in Azure testen.

  1. Wählen Sie im Bereich API Management Ihrer Funktions-App die Registerkarte Test aus. Die verfügbaren Vorgänge für Ihre API werden in der linken Spalte angezeigt.

  2. Wählen Sie GET ProductDetails (ProduktDetails abrufen) aus. Der Bereich „ProductDetails-Konsole“ wird angezeigt.

  3. Klicken Sie unter Abfrageparameter auf Parameter hinzufügen.

    Screenshot: Die „ProductDetails“-Konsole mit hervorgehobenen Abfrageparameterwerten für die GET-HTTP-Anforderung

  4. Geben Sie im Feld Nameid ein, und geben Sie im Feld Wert1 ein. Wählen Sie dann Senden aus, um eine GET-Anforderung zu generieren.

    Der Abschnitt HTTP-Antwort der Konsole hat zwei Registerkarten: „Meldung“ und „Überwachung“. Die Registerkarte „Meldung“ wird mit einer HTTP-Antwort aufgefüllt. Die Produktdetails werden am Ende der Antwort im JSON-Format angezeigt. Scrollen Sie zum Abschnitt HTTP-Anforderung hoch, und beachten Sie das Format der Anforderung. Die Anforderung wurde an ein Ziel in der Domäne azure-api.net gesendet. Dieser Speicherort unterscheidet sich von der Domäne azurewebsites.net, wo die Funktions-App gehostet wird. Sie können diese API mit anderen Abfrageparametern wie z. B. id=2 oder id=3 testen.

    Screenshot: Die Meldungen „HTTP-Anforderung“ und „HTTP-Antwort“