Ćwiczenie — dodawanie innej aplikacji usługi Azure Functions do istniejącego interfejsu API

Ukończone

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.

  1. W menu zasobów platformy Azure lub na stronie głównej wybierz pozycję Wszystkie zasoby. Zostanie wyświetlone okienko Wszystkie zasoby .

  2. 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.

  3. Z listy funkcji dla aplikacji funkcji wybierz pozycję OrderDetails. Zostanie wyświetlone okienko Przegląd funkcji OrderDetails .

  4. 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.

    OrderDetails kod JSON z wyróżnionym kodem Code + Test w menu i Test/Run na pasku poleceń.

  5. Na pasku poleceń wybierz pozycję Testuj/Uruchom. Zostanie wyświetlona karta Parametry wejściowe dla funkcji OrderDetails.

  6. 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.

  7. Zostanie otwarta konsola dziennika z wyświetlonym stanem żądania. Karta Dane wyjściowe zawiera kod odpowiedzi HTTP i zawartość w formacie JSON.

    Zostanie wyświetlona strona opcji dodawania nowej funkcji.

    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.

  8. Wybierz pozycję Zamknij , aby zamknąć karty Dane wyjściowe wejściowe dla pozycji Test/Uruchom.

  9. 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.

  1. W menu zasobów platformy Azure lub na stronie głównej wybierz pozycję Wszystkie zasoby. Zostanie wyświetlone okienko Wszystkie zasoby .

  2. 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.

  3. W menu w obszarze Interfejsy API wybierz pozycję Interfejsy API. Okienko Interfejsy API zawiera opcje definiowania nowego interfejsu API.

  4. W obszarze Utwórz z zasobu platformy Azure wybierz pozycję Aplikacja funkcji.

    Zrzut ekranu przedstawiający ekran dodawania nowego interfejsu API z wyróżnioną opcją aplikacji funkcji platformy Azure.

    Zostanie wyświetlone okno dialogowe Tworzenie z aplikacji funkcji.

  5. Aby wybrać aplikację funkcji, wybierz pozycję Przeglądaj. Zostanie wyświetlone okienko Importowanie usługi Azure Functions .

  6. W polu Konfigurowanie wymaganych ustawień wybierz pozycję Wybierz.

    Zrzut ekranu przedstawiający okno dialogowe Importowanie usługi Azure Functions z wyróżnionym polem Konfigurowanie wymaganych ustawień i przyciskiem Wybierz.(.. /media/5-import-azure-function-app-03-expanded.png#lightbox)

    Zostanie wyświetlone okienko Wybierz aplikację funkcji platformy Azure.

  7. 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.

  8. 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.

  9. 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.

    Zrzut ekranu przedstawiający okno dialogowe Tworzenie na podstawie aplikacji funkcji wypełnione szczegółami funkcji Orders.

    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.

  1. Na karcie Projekt interfejsów API OrderFunctionNNNNNNNN w obszarze Wszystkie operacje wybierz pozycję GET OrderDetails, a następnie wybierz kartę Test .

  2. 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.

  3. 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.

  4. 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.

  1. W menu zasobów platformy Azure lub w obszarze Strona główna wybierz pozycję Wszystkie zasoby.

  2. 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.

  3. W sekcji Podstawy umieść kursor nad adresem URL bramy i wybierz ikonę Kopiuj do schowka.

  4. 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>
    
  5. 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.

  6. 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.

  7. W polu Klucz podstawowy wybierz ikonę Kopiuj do schowka.

  8. 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>
    
  9. Teraz możemy zażądać szczegółów zamówienia i produktu, wykonując zapytanie dotyczące tej samej usługi API Management:

    1. 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.

    2. 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.