Cvičení – vytvoření nového rozhraní API ve službě API Management z aplikace funkcí
Pokud chcete prezentovat azure Functions uživatelům jako součást jednoho rozhraní API, můžete je přidat do služby Azure API Management.
Ve vaší společnosti online obchodu vytvořili vaši vývojáři několik funkcí Azure Functions jako mikroslužby. Každá funkce implementuje malou část funkčnosti tohoto obchodu. Tyto funkce chcete sestavit do jednoho rozhraní API.
V tomto cvičení vytvoříte novou instanci služby API Management a pak do ní přidáte funkci Podrobnosti o produktu.
Vytvoření funkcí
V následujících krocích přidáte aplikaci Funkcí Azure do služby Azure API Management. Později do stejné instance služby API Management přidáte druhou aplikaci funkcí, která vytvoří jedno bezserverové rozhraní API z více funkcí. Začněme tím, že k vytvoření funkcí použijeme skript:
Pokud chcete naklonovat projekt funkcí, spusťte v Azure Cloud Shellu napravo následující příkaz.
git clone https://github.com/MicrosoftDocs/mslearn-apim-and-functions.git ~/OnlineStoreFuncs
Spuštěním následujících příkazů v Cloud Shellu nastavte potřebné prostředky Azure, které potřebujeme pro toto cvičení.
cd ~/OnlineStoreFuncs bash setup.sh
Skript
setup.sh
vytvoří dvě aplikace funkcí ve skupině prostředků sandboxu aktivované pro tento modul. Jak ukazuje následující obrázek, každá aplikace hostuje jednu funkci –OrderDetails
aProductDetails
. Skript také nastaví účet úložiště pro funkce. Obě funkce mají adresy URL v doméně azurewebsites.net. Názvy funkcí obsahují kvůli jedinečnosti náhodná čísla. Dokončení tohoto skriptu trvá několik minut.
Otestování funkce ProductDetails
Teď otestujeme funkci ProductDetails a podíváme se, jak se chová, než ji přidáme do služby API Management.
Pomocí stejného účtu, kterým jste aktivovali sandbox, se přihlaste na Azure Portal.
V nabídce webu Azure Portal nebo na domovské stránce vyberte Všechny prostředky. Zobrazí se podokno Všechny prostředky .
Vyberte aplikaci funkcí, jejíž název začíná na ProductFunction. Zobrazí se podokno Aplikace funkcí s vybranou kartou Přehled .
V seznamu funkcí pro vaši aplikaci funkcí vyberte ProductDetails. Zobrazí se podokno Funkce ProductDetails .
V nabídce Podrobnosti o produktu v části Vývojář vyberte Kód + Test. Zobrazí se podokno Code + Test pro funkci ProductDetails s obsahem
function.json
souboru.Na panelu příkazů vyberte Test/Spustit. Zobrazí se podokno Vstup/výstup pro testování požadavku HTTP.
Na kartě Vstup v rozevíracím seznamu pole metody HTTP vyberte GET.
V části Dotaz vyberte přidat parametr.
Do pole Název zadejte ID a do pole Hodnota zadejte 3 a pak vyberte Spustit.
Zobrazí se podokno protokolu pro připojení požadavku. Na kartě Výstup se zobrazí kód odpovědi HTTP (200 OK) a obsah položky 3 v databázi.
Volitelně můžete funkci otestovat také zadáním hodnot ID 1 a 2.
Výběrem možnosti Zavřít zavřete karty Výstup vstupu pro Kód + Test.
Na panelu příkazů podokna Kód + Test ProductDetails vyberte Získat adresu URL funkce. Všimněte si, že subdoména adresy URL je název vaší aplikace funkcí následovaný azurewebsites.net doménou.
Poznámka:
Tuto adresu URL můžete použít k otestování funkce v prohlížeči. Adresa URL vyžaduje vstup; připojte řetězec &id=1
dotazu k vyžádání podrobností o první položce v kolekci produktů.
Zveřejnění aplikace funkcí jako rozhraní API pomocí služby Azure API Management
Po nasazení a otestovaní aplikace funkcí ji vyexportujme jako rozhraní API pomocí služby Azure API Management, aby ji bylo možné volat z jiných aplikací a služeb.
V nabídce prostředků vyberte Všechny prostředky. Zobrazí se podokno Všechny prostředky .
Seřaďte seznam prostředků podle typu. Všimněte si, že máte aplikaci OrderFunction a aplikaci ProductFunction.
Vyberte aplikaci funkcí ProductFunction.
V nabídce Aplikace funkcí přejděte do kategorie rozhraní API a vyberte API Management. Zobrazí se podokno API Management pro aplikaci funkcí ProductFunction.
V poli API Management vyberte Vytvořit nový. Zobrazí se podokno Instalace brány služby API Management.
Pro každé nastavení zadejte následující hodnoty.
Nastavení Hodnota Předplatné Předplatné Concierge Skupina prostředků [název sandboxové skupiny prostředků] Oblast Zvolte umístění, které podporuje plán Consumption: (USA) USA – západ, USA – středosever, Západní Evropa, Severní Evropa, Jihovýchodní Asie, Austrálie – východ. Název prostředku OnlineStore Název organizace OnlineStore E-mail správce Zadejte e-mailovou adresu. Cenová úroveň Spotřeba (99,95 % SLA) Vyberte Další: Monitorování a zrušte zaškrtnutí možnosti Application Insights .
Vyberte Zkontrolovat a vytvořit. Po dokončení ověření vyberte Vytvořit a vytvořte propojenou instanci služby API Management. Počkejte několik minut, než se export dokončí.
Po nasazení instance služby API Management vyberte Propojit rozhraní API.
Zobrazí se podokno služby Import služby API Management služby Azure Functions se zvýrazněnou funkcí ProductDetails .
Pokračujte výběrem možnosti Vybrat . Zobrazí se dialogové okno Vytvořit z aplikace funkcí.
Změňte hodnotu přípony adresy URL rozhraní API na produkty a pak vyberte Vytvořit. Azure vytvoří rozhraní API pro funkci ProductDetails . Zobrazí se podokno Návrh pro API Management pro vaši aplikaci funkcí.
V tomto cvičení se dozvíte, že můžete definovat rozhraní API, a to vše ve službě Azure Function App Service.
Otestování koncového bodu products pro OnlineStore
Teď máte ProductDetails
rozhraní API v instanci služby API Management, kterou jste vytvořili. Pojďme toto rozhraní API otestovat pomocí nástrojů API Management v Azure.
V podokně API Management vaší aplikace funkcí vyberte kartu Test. Dostupné operace pro vaše rozhraní API se zobrazí v levém sloupci.
Vyberte GET ProductDetails. Zobrazí se podokno konzoly ProductDetails.
V oblasti Parametry dotazu vyberte Přidat parametr.
Do pole NÁZEV zadejte ID a do pole HODNOTA zadejte 1 a pak vyberte Odeslat a vygenerujte požadavek GET.
Oddíl odpovědi HTTP konzoly obsahuje dvě karty– Zpráva a Trasování. Na kartě Zpráva se vyplní odpověď HTTP. Podrobnosti o produktu se zobrazí ve formátu JSON na konci odpovědi. Posuňte se nahoru do části požadavku HTTP a všimněte si formátu požadavku. Požadavek byl odeslán do cíle v azure-api.net doméně. Toto umístění se liší od azurewebsites.net domény, kde je aplikace funkcí hostovaná. Toto rozhraní API můžete otestovat pomocí dalších parametrů dotazu, jako je id=2 nebo id=3.