Ćwiczenie — dodawanie innej aplikacji usługi Azure Functions do istniejącego interfejsu API
Pamiętaj, że chcesz zintegrować wszystkie oddzielne mikrousługi, które są usługą Azure Functions, w jednym interfejsie API. Dodano aplikację funkcji Products do nowego wystąpienia usługi API Management. Teraz chcesz dodać kolejną aplikację funkcji do tego interfejsu API.
W tym ćwiczeniu dodasz aplikację funkcji Orders do interfejsu API i użyjesz curl
narzędzia do testowania zintegrowanego systemu.
Testowanie funkcji OrderDetails
Zanim dodamy aplikację funkcji Orders do interfejsu API, przetestujmy funkcję, która jest hostowana — OrderDetails.
W menu zasobów platformy Azure lub na stronie głównej wybierz pozycję Wszystkie zasoby. Zostanie wyświetlone okienko Wszystkie zasoby .
Posortuj zasoby według typu, a następnie wybierz aplikację funkcji, której nazwa zaczyna się od OrderFunction. Zostanie wyświetlone okienko Przegląd aplikacji funkcji OrderFunction.
Z listy funkcji dla aplikacji funkcji wybierz pozycję OrderDetails. Zostanie wyświetlone okienko Przegląd funkcji OrderDetails .
W menu Szczegóły zamówienia w obszarze Deweloper wybierz pozycję Kod i test. Zostanie wyświetlone okienko Kod i test dla funkcji OrderDetails z zawartością
function.json
pliku.Na pasku poleceń wybierz pozycję Testuj/Uruchom. Zostanie wyświetlona karta Parametry wejściowe dla funkcji OrderDetails.
W polu Metoda HTTP wybierz pozycję GET z listy rozwijanej, a następnie w obszarze Zapytanie wybierz pozycję Dodaj parametr, a następnie w polu Nazwa wprowadź nazwę i w polu Wartość wprowadź wartość Chiba (wartość jest uwzględniana wielkość liter), a następnie wybierz pozycję Uruchom.
Zostanie otwarta konsola dziennika z wyświetlonym stanem żądania. Karta Dane wyjściowe zawiera kod odpowiedzi HTTP i zawartość w formacie JSON.
Opcjonalnie możesz uruchomić więcej żądań przy użyciu wartości nazw Henri i Barriclough w celu uzyskania różnych zamówień klientów.
Wybierz pozycję Zamknij , aby zamknąć karty Dane wyjściowe wejściowe dla pozycji Test/Uruchom.
Na pasku poleceń okienka OrderDetails wybierz pozycję Pobierz adres URL funkcji. Zwróć uwagę, że adres URL jest nazwą funkcji w domenie azurewebsites.net.
Dodawanie funkcji do istniejącego interfejsu API
W tym kroku dodamy funkcję Order do zasobu usługi API Management utworzonego w poprzednim ćwiczeniu. W tym ćwiczeniu użyliśmy interfejsu usługi API Management z poziomu interfejsu aplikacji funkcji. W tym miejscu przejdziemy do naszego wystąpienia usługi API Management za pomocą menu zasobów witryny Azure Portal, aby pokazać, że oba podejścia są dostępne.
W menu zasobów platformy Azure lub na stronie głównej wybierz pozycję Wszystkie zasoby. Zostanie wyświetlone okienko Wszystkie zasoby .
Posortuj zasoby według typu, a następnie wybierz usługę OnlineStore API Management. Zostanie wyświetlona usługa API Management dla usługi OnlineStore.
W menu w obszarze Interfejsy API wybierz pozycję Interfejsy API. Okienko Interfejsy API zawiera opcje definiowania nowego interfejsu API.
W obszarze Utwórz z zasobu platformy Azure wybierz pozycję Aplikacja funkcji.
Zostanie wyświetlone okno dialogowe Tworzenie z aplikacji funkcji.
Aby wybrać aplikację funkcji, wybierz pozycję Przeglądaj. Zostanie wyświetlone okienko Importowanie usługi Azure Functions .
W polu Konfigurowanie wymaganych ustawień wybierz pozycję Wybierz.
(.. /media/5-import-azure-function-app-03-expanded.png#lightbox)
Zostanie wyświetlone okienko Wybierz aplikację funkcji platformy Azure.
Wybierz pozycję OrderFunctionNNNNNNNNN, a następnie wybierz pozycję Wybierz. Okienko Importowanie usługi Azure Functions jest ponownie wyświetlane przy użyciu skonfigurowanej aplikacji funkcji OrderDetails.
Upewnij się, że pole wyboru OrderDetails jest zaznaczone, a następnie w dolnej części strony wybierz pozycję Wybierz , aby dodać funkcję. Zostanie wyświetlone okno dialogowe Tworzenie z aplikacji funkcji.
Zastąp wartość w polu sufiksu adresu URL interfejsu API zamówieniami. Zwróć uwagę, że ta zmiana aktualizuje podstawowy adres URL. Wybierz pozycję Utwórz , aby utworzyć interfejs API.
Usługa Api Management magazynu online wyświetla kartę Projektowanie ze wszystkimi dostępnymi interfejsami API (GET, POST) dla elementu OrderDetails.
Testowanie punktu końcowego zamówień sklepu OnlineStore w portalu
Teraz, gdy dodaliśmy element OrderDetails do naszego interfejsu API, przetestujmy go przy użyciu narzędzi usługi API Management w witrynie Azure Portal.
Na karcie Projekt interfejsów API OrderFunctionNNNNNNNN w obszarze Wszystkie operacje wybierz pozycję GET OrderDetails, a następnie wybierz kartę Test .
W sekcji Parametry zapytania wybierz pozycję Dodaj parametr, a następnie wprowadź nazwę w polu NAME i Chiba i w polu VALUE. Wybierz Wyślij.
Karta komunikatu odpowiedzi HTTP pokazuje żądanie HTTP powiodło się (HTTP/1.1/ 200 OK) wraz z obiektem JSON przedstawiającym identyfikator zamówienia wraz z nazwą klienta, łączną ceną zamówienia i stanem wysyłki.
Przewiń w górę do sekcji żądania HTTP. Zwróć uwagę, że żądanie zostało wysłane do poddomeny i podkatalogu w domenie azure-api.net . Ta lokalizacja różni się od domeny hosta azurewebsites.net .
Testowanie połączonego interfejsu API
Aby przesłać żądania do naszego interfejsu API, możemy użyć narzędzia wiersza polecenia curl
. CURL jest idealnym rozwiązaniem, ponieważ możemy uwzględnić prawidłowy klucz subskrypcji z żądaniem. Żądanie wymaga również lokalizacji interfejsu API hostowanego w usłudze Azure API Management, a w tym przypadku składa się z funkcji Products and Orders.
W menu zasobów platformy Azure lub w obszarze Strona główna wybierz pozycję Wszystkie zasoby.
Sortuj zasoby według typu, a następnie wybierz usługę OnlineStore API Management. Zostanie wyświetlona usługa API Management dla usługi OnlineStore.
W sekcji Podstawy umieść kursor nad adresem URL bramy i wybierz ikonę Kopiuj do schowka.
W usłudze Azure Cloud Shell po prawej stronie umożliwia zdefiniowanie niektórych zmiennych. Uruchom następujące polecenie, zastępując
<paste URL here>
symbol zastępczy wartością adresu URL skopiowaną do schowka, a następnie naciśnij Enter. Ta wartość definiuje zmienną bramy.GATEWAY_URL=<paste URL here>
Na platformie Azure w menu usługi Api Management onlineStore przewiń w dół do interfejsu API i wybierz pozycję Subskrypcje. Zostanie wyświetlone okienko Subskrypcje dla wystąpienia usługi API Management magazynu online.
W przypadku subskrypcji wbudowanego dostępu do wszystkich wybierz wielokropek ... po prawej stronie tego wiersza, a następnie wybierz pozycję Pokaż/ukryj klucze z menu kontekstowego. Zostanie wyświetlony klucz podstawowy i klucz pomocniczy interfejsu API.
W polu Klucz podstawowy wybierz ikonę Kopiuj do schowka.
W usłudze Cloud Shell uruchom następujące polecenie, zastępując symbol zastępczy wartością w schowku, a następnie naciśnij Enter.
SUB_KEY=<paste key here>
Teraz możemy zażądać szczegółów zamówienia i produktu, wykonując zapytanie dotyczące tej samej usługi API Management:
Aby zażądać szczegółów klienta o nazwie Henri, uruchom następujące polecenie w usłudze Cloud Shell:
curl -X GET "$GATEWAY_URL/orders/OrderDetails?name=Henri" -H "Ocp-Apim-Subscription-Key:$SUB_KEY"
Odpowiedź zawiera blok kodu JSON ze szczegółami zamówienia pokazującymi, że zamówienie 56224 zostało wysłane do Pascale Henri. Możesz również wypróbować polecenie z nazwami Chiba i Barriclough , aby uzyskać różne wyniki.
Aby zażądać szczegółów produktu o identyfikatorze 2, uruchom następujące polecenie w usłudze Cloud Shell:
curl -X GET "$GATEWAY_URL/products/ProductDetails?id=2" -H "Ocp-Apim-Subscription-Key:$SUB_KEY"
Odpowiedź zawiera blok kodu JSON ze szczegółami produktu. Możesz również wypróbować polecenie z wartościami identyfikatorów 1 i 3, aby uzyskać różne wyniki.
Zwróć uwagę, że obie funkcje można teraz wywoływać za pośrednictwem punktów końcowych w domenie azure-api.net (zgodnie z definicją w GATEWAY_URL), która jest domeną używaną przez usługę Azure API Management. W innych modułach learn możesz dowiedzieć się, jak stosować zasady, ustawienia zabezpieczeń, zewnętrzne pamięci podręczne i inne funkcje do funkcji w bramie usługi API Management. Brama zapewnia centralny punkt sterowania, w którym można zarządzać wieloma mikrousługami bez zmiany ich kodu.