Ćwiczenie — Eksplorowanie typów powiązań wejściowych i wyjściowych

Ukończone

W tym ćwiczeniu utworzymy funkcję uruchamianą po odebraniu żądania HTTP i odpowiemy na każde żądanie, zwracając komunikat.

Zobacz poniższą ogólną ilustrację na temat tego, co zamierzamy skompilować.

Zrzut ekranu przedstawiający okienko Kod i test przedstawiający domyślny kod szablonu funkcji wyzwalacza HTTP.

Parametr req jest powiązaniem wyzwalacza, a parametr res jest powiązaniem wyjściowym. Może to pomóc w myśleniu o tych parametrach jako skrótach "request" i "response".

Zrzut ekranu przedstawiający okienko Kod i test przedstawiający domyślny kod szablonu funkcji wyzwalacza HTTP.

Parametr Request jest powiązaniem wyzwalacza, a parametr Response jest powiązaniem wyjściowym.

Tworzenie aplikacji funkcji

Utwórzmy aplikację funkcji, która będzie używana w tym module. Aplikacja funkcji umożliwia grupowanie funkcji jako jednostki logicznej, co ułatwia wdrażanie i udostępnianie zasobów oraz zarządzanie nimi.

  1. Zaloguj się do witryny Azure Portal przy użyciu konta, które zostało użyte do aktywowania piaskownicy.

  2. W menu zasobów lub na stronie głównej wybierz pozycję Utwórz zasób. Zostanie wyświetlone okienko Tworzenie zasobu .

  3. W menu Utwórz zasób wybierz pozycję Obliczenia, a na liście wyników wybierz pozycję Aplikacja funkcji. Może być konieczne wyszukanie aplikacji funkcji w oknie usługa wyszukiwania i witryny Marketplace.

  4. Wybierz pozycję Zużycie, a następnie wybierz przycisk Wybierz . Zostanie wyświetlone okienko Tworzenie aplikacji funkcji.

  5. Na karcie Podstawy wprowadź następujące wartości dla każdego ustawienia.

    Ustawienie Wartość Opis
    Szczegóły projektu
    Subskrypcja Subskrypcja Concierge Subskrypcja platformy Azure, której chcesz użyć w tym ćwiczeniu.
    Grupa zasobów Z listy rozwijanej wybierz pozycję [nazwa grupy zasobów piaskownicy] Grupa zasobów dla piaskownicy.
    Szczegóły wystąpienia
    Nazwa aplikacji funkcji Wprowadź globalnie unikatową nazwę Ta nazwa identyfikuje nową aplikację funkcji. Prawidłowe znaki to a-z, 0-9 i -.
    Stos środowiska uruchomieniowego Z listy rozwijanej wybierz pozycję Node.js Przykładowy kod w tym module jest napisany w języku JavaScript.
    Wersja Zaakceptuj wartość domyślną Wartość domyślna jest wystarczająca dla tego ćwiczenia.
    Region (Region) Z listy rozwijanej wybierz lokalizację Wybierz najbliższy region.
  6. Zaakceptuj wartości domyślne dla wszystkich innych opcji. Wybierz pozycję Przejrzyj i utwórz , aby zweryfikować ustawienia, a następnie wybierz pozycję Utwórz , aby aprowizować i wdrożyć aplikację funkcji.

  7. Wdrażanie może trochę potrwać. W kontrolkach globalnych obok nazwy konta wybierz ikonę Powiadomienia i poszukaj komunikatu Wdrożenie zakończyło się pomyślnie.

  8. Po zakończeniu wdrażania funkcji wybierz pozycję Przejdź do zasobu. Zostanie wyświetlone okienko Przegląd aplikacji funkcji.

  1. Zaloguj się w witrynie Azure Portal przy użyciu tego samego konta, które zostało wykorzystane do aktywowania piaskownicy.

  2. W menu zasobów lub na stronie głównej wybierz pozycję Utwórz zasób. Zostanie wyświetlone okienko Tworzenie zasobu .

  3. W menu Utwórz zasób wybierz pozycję Obliczenia, a na liście wyników wybierz pozycję Aplikacja funkcji. Może być konieczne wyszukanie aplikacji funkcji w oknie usługa wyszukiwania i witryny Marketplace.

  4. Wybierz pozycję Zużycie, a następnie wybierz przycisk Wybierz . Zostanie wyświetlone okienko Tworzenie aplikacji funkcji.

  5. Na karcie Podstawy wprowadź następujące wartości dla każdego ustawienia.

    Ustawienie Wartość Opis
    Szczegóły projektu
    Subskrypcja Subskrypcja Concierge Subskrypcja platformy Azure, której chcesz użyć w tym ćwiczeniu.
    Grupa zasobów Z listy rozwijanej wybierz pozycję [nazwa grupy zasobów piaskownicy] Grupa zasobów dla piaskownicy.
    Szczegóły wystąpienia
    Nazwa aplikacji funkcji Wprowadź globalnie unikatową nazwę Ta nazwa identyfikuje nową aplikację funkcji. Prawidłowe znaki to a-z, 0-9 i -.
    Stos środowiska uruchomieniowego Z listy rozwijanej wybierz pozycję PowerShell Core Przykładowy kod dla tego modułu jest napisany w programie PowerShell.
    Wersja Zaakceptuj wartość domyślną Wartość domyślna jest wystarczająca dla tego ćwiczenia.
    Region (Region) Z listy rozwijanej wybierz lokalizację Wybierz najbliższy region.
  6. Zaakceptuj wartości domyślne dla wszystkich innych opcji. Wybierz pozycję Przejrzyj i utwórz , aby zweryfikować dane wejściowe, a następnie wybierz pozycję Utwórz , aby aprowizować i wdrożyć aplikację funkcji.

  7. Wdrażanie może trochę potrwać. W kontrolkach globalnych obok nazwy konta wybierz ikonę Powiadomienia i poszukaj komunikatu Wdrożenie zakończyło się pomyślnie.

  8. Po zakończeniu wdrażania funkcji wybierz pozycję Przejdź do zasobu. Zostanie wyświetlone okienko Przegląd aplikacji funkcji.

Napiwek

Jeśli masz problemy ze znalezieniem aplikacji funkcji w witrynie Azure Portal, dowiedz się, jak dodawać aplikacje funkcji do ulubionych w witrynie Azure Portal.

Tworzenie funkcji

Teraz, gdy mamy aplikację funkcji, nadszedł czas na utworzenie funkcji. Każda funkcja ma wyzwalacz, który go aktywuje. W tym module zdefiniujemy wyzwalacz HTTP przy użyciu wstępnie zdefiniowanego szablonu.

  1. Wybierz przycisk Utwórz funkcję w obszarze Utwórz w witrynie Azure Portal na karcie Funkcje na stronie Przegląd.

  2. Zostanie wyświetlone okienko Tworzenie funkcji .

    Zrzut ekranu przedstawiający okienko Tworzenie funkcji.

  3. W sekcji Wybierz szablon wybierz szablon wyzwalacza HTTP, a następnie wybierz pozycję Dalej.

  4. W sekcji Szczegóły szablonu potwierdź następujące ustawienia.

    • W polu tekstowym Nazwa funkcji użyj domyślnej nazwy HttpTrigger1. Platforma Azure automatycznie tworzy unikatowe nazwy tworzonych funkcji. Możesz wybrać inną nazwę, ale pamiętaj, aby używać znaczących nazw.

    • W polu tekstowym Poziom autoryzacji użyj wartości domyślnej Funkcja. Poziom autoryzacji określa, jakie klucze muszą być obecne w żądaniu, aby można było je uruchomić. Poziom autoryzacji funkcji wymaga klucza specyficznego dla funkcji, który można znaleźć po utworzeniu funkcji.

  5. Wybierz pozycję Utwórz. Po propagacji funkcji wyzwalacza do aplikacji funkcji zostanie wyświetlone okienko Funkcje dla aplikacji funkcji z listą HttpTrigger1.

  6. Na pasku poleceń wybierz pozycję Pobierz adres URL funkcji. Zostanie wyświetlone okno dialogowe Pobieranie adresu URL funkcji.

  7. Na liście rozwijanej wybierz pozycję domyślną (klucz funkcji), wybierz ikonę Kopiuj do schowka na końcu adresu URL, a następnie wybierz przycisk OK , aby zamknąć okno dialogowe.

  8. Na pasku adresu nowej karty przeglądarki wklej skopiowany adres URL funkcji. Naciśnij Enter, aby uruchomić żądanie w przeglądarce. Odpowiedź może potrwać kilka minut, gdy aplikacja funkcji inicjuje. Jeśli zostanie wyświetlony błąd upływu limitu czasu, odśwież, aby ponownie wysłać żądanie.

    Gdy funkcja odpowiada, powinny zostać wyświetlone dane wyjściowe podobne do poniższego przykładu wyświetlanego w przeglądarce.

    This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.
    
  9. Dodaj następujący ciąg &name=Joe zapytania na końcu adresu URL. Wynikowy adres URL powinien wyglądać podobnie do następującego przykładu:

    https://example.azurewebsites.net/api/HttpTrigger1?code=AbCdEfGhIjKlMnOpQrStUvWxYz==&name=Joe

  10. Naciśnij Enter, aby uruchomić żądanie w przeglądarce. Gdy funkcja odpowiada, powinny zostać wyświetlone dane wyjściowe podobne do poniższego przykładu wyświetlanego w przeglądarce.

    Hello, Joe. This HTTP triggered function executed successfully.
    

    Jak widać w tym ćwiczeniu do tej pory, należy zdefiniować wyzwalacz podczas tworzenia funkcji. Każda funkcja ma jeden wyzwalacz. W tym przykładzie używamy wyzwalacza HTTP, co oznacza, że nasza funkcja uruchamia się, gdy odbierze żądanie HTTP. Domyślna implementacja z szablonu, pokazana w języku JavaScript na poniższym zrzucie ekranu, zwraca wartość nazwy parametru, która znajdowała się w ciągu zapytania lub treści żądania. Jeśli nie podano ciągu zapytania, funkcja odpowiada komunikatem z pytaniem, kto wywołuje, aby podać wartość nazwy.

    Ilustracja przedstawiająca domyślny wyzwalacz HTTP z parametrami żądania HTTP i powiązania odpowiedzi.

  11. W witrynie Azure Portal w menu Funkcja wybierz pozycję Kod i testowanie.

    Zostanie wyświetlone okienko Kod i test dla funkcji i wyświetli zawartość pliku index.js . Domyślny kod JavaScript dla funkcji powinien wyglądać podobnie do poniższego przykładu.

    module.exports = async function (context, req) {
        context.log('JavaScript HTTP trigger function processed a request.');
    
        const name = (req.query.name || (req.body && req.body.name));
        const responseMessage = name
            ? "Hello, " + name + ". This HTTP triggered function executed successfully."
            : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";
    
        context.res = {
            // status: 200, /* Defaults to 200 */
            body: responseMessage
        };
    }
    
  12. Przyjrzyjmy się pokrótce innemu plikowi funkcji, plikowi konfiguracji function.json. Uzyskaj dostęp do tego pliku, wybierając pozycję function.json z listy rozwijanej w ścieżce plików powyżej bloku kodu. Dane konfiguracji są wyświetlane na następującym listingu JSON.

    {
        "bindings": [
        {
            "authLevel": "function",
            "type": "httpTrigger",
            "direction": "in",
            "name": "req",
            "methods": [
            "get",
            "post"
            ]
        },
        {
            "type": "http",
            "direction": "out",
            "name": "res"
        }
      ]
    }
    

    Ta funkcja ma powiązanie wyzwalacza o nazwie req typu httpTriggeri powiązanie wyjściowe o nazwie res typu http.

W poprzednim kodzie naszej funkcji zobaczyliśmy, że uzyskujemy dostęp do ładunku przychodzącego żądania HTTP za pośrednictwem parametru req . Podobnie wysłaliśmy odpowiedź HTTP, ustawiając parametr res . Powiązania naprawdę wykonują za nas niektóre uciążliwe prace!

Teraz, gdy mamy aplikację funkcji, utwórzmy funkcję. Każda funkcja ma wyzwalacz, który go aktywuje. W tym module utworzymy wyzwalacz HTTP przy użyciu szablonu.

  1. Wybierz przycisk Utwórz funkcję w obszarze Utwórz w witrynie Azure Portal na karcie Funkcje na stronie Przegląd.

  2. Zostanie wyświetlone okienko Tworzenie funkcji .

  3. W sekcji Wybierz szablon wybierz szablon wyzwalacza HTTP, a następnie wybierz pozycję Dalej.

  4. W sekcji Szczegóły szablonu potwierdź następujące ustawienia.

    • W polu tekstowym Nazwa funkcji użyj domyślnej nazwy HttpTrigger1. Platforma Azure automatycznie udostępnia unikatową nazwę podczas tworzenia funkcji. Możesz wybrać inną nazwę, ale pamiętaj, aby używać znaczących nazw.

    • W polu tekstowym Poziom autoryzacji zaakceptuj wartość domyślną Funkcja. Poziom autoryzacji określa, jakie klucze muszą być obecne w żądaniu, aby można było je uruchomić. Funkcja wymaga klucza specyficznego dla funkcji.

      Zrzut ekranu przedstawiający okienko Dodawanie funkcji.

  5. Wybierz pozycję Utwórz. Zostanie wyświetlone okienko HttpTrigger1 dla funkcji.

  6. Na pasku poleceń wybierz pozycję Pobierz adres URL funkcji. Zostanie wyświetlone okno dialogowe Pobieranie adresu URL funkcji.

  7. Wybierz pozycję domyślną (klucz funkcji) z listy rozwijanej, a następnie wybierz ikonę Kopiuj do schowka na końcu adresu URL, a następnie wybierz przycisk OK , aby zamknąć okno dialogowe.

  8. Na pasku adresu nowej karty przeglądarki wklej skopiowany adres URL funkcji. Naciśnij Enter, aby uruchomić żądanie w przeglądarce. Odpowiedź może potrwać kilka minut, gdy aplikacja funkcji inicjuje. Jeśli zostanie wyświetlony błąd upływu limitu czasu, odśwież, aby ponownie wysłać żądanie.

    Gdy funkcja odpowiada, powinny zostać wyświetlone dane wyjściowe podobne do poniższego przykładu wyświetlanego w przeglądarce.

    This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.
    
  9. Dodaj ciąg &name=Joe zapytania na końcu adresu URL. Wynikowy adres URL powinien wyglądać podobnie do następującego przykładu:

    https://example.azurewebsites.net/api/HttpTrigger1?code=AbCdEfGhIjKlMnOpQrStUvWxYz==&name=Joe

  10. Naciśnij Enter, aby uruchomić żądanie w przeglądarce. Gdy funkcja odpowiada, powinny zostać wyświetlone dane wyjściowe podobne do poniższego przykładu wyświetlanego w przeglądarce.

    Hello, Joe. This HTTP triggered function executed successfully.
    

    Jak widać w tym ćwiczeniu do tej pory, należy zdefiniować wyzwalacz podczas tworzenia funkcji. Każda funkcja ma jeden wyzwalacz. W tym przykładzie używamy wyzwalacza HTTP, co oznacza, że nasza funkcja uruchamia się, gdy odbierze żądanie HTTP. Domyślna implementacja z szablonu, pokazana w programie PowerShell na poniższym zrzucie ekranu, używa Push-OutputBinding polecenia cmdlet do odpowiadania przy użyciu wartości nazwy parametru, która była częścią ciągu zapytania lub treści żądania. Jeśli ciąg nie został podany, funkcja odpowiada za pomocą komunikatu zawierającego monit do osoby wywołującej o podanie wartości nazwy.

    Okienko Kod i test dla żądania HTTP pokazujące odpowiedź i odpowiednie parametry powiązania.

  11. W menu Funkcja wybierz pozycję Kod i test. Zostanie wyświetlone okienko Kod + test dla funkcji i wyświetli zawartość pliku run.ps1 .

    Domyślny kod programu PowerShell dla funkcji powinien przypominać poniższy przykład.

    using namespace System.Net
    
    # Input bindings are passed in via param block.
    param($Request, $TriggerMetadata)
    
    # Write to the Azure Functions log stream.
    Write-Host "PowerShell HTTP trigger function processed a request."
    
    # Interact with query parameters or the body of the request.
    $name = $Request.Query.Name
    if (-not $name) {
        $name = $Request.Body.Name
    }
    
    $body = "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
    
    if ($name) {
        $body = "Hello, $name. This HTTP triggered function executed successfully."
    }
    
    # Associate values to output bindings by calling 'Push-OutputBinding'.
    Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
        StatusCode = [HttpStatusCode]::OK
        Body = $body
    })
    
  12. Przyjrzyjmy się pokrótce innemu plikowi funkcji, plikowi konfiguracji function.json. Otwórz ten plik, wybierając pozycję function.json z listy rozwijanej ścieżki plików. Dane konfiguracji są wyświetlane na następującym listingu JSON.

    {
      "bindings": [
        {
          "authLevel": "function",
          "type": "httpTrigger",
          "direction": "in",
          "name": "Request",
          "methods": [
            "get",
            "post"
          ]
        },
        {
          "type": "http",
          "direction": "out",
          "name": "Response"
        }
      ]
    }
    

    Jak widać, funkcja ta ma powiązanie wyzwalacza o nazwie Request typu httpTrigger i powiązanie wyjściowe o nazwie Response typu http. W poprzednim kodzie naszej funkcji zobaczyliśmy, jak uzyskiwaliśmy dostęp do ładunku przychodzącego żądania HTTP za pośrednictwem parametru Request . Podobnie wysłaliśmy odpowiedź HTTP po prostu przez ustawienie parametru Response . Powiązania naprawdę wykonują za nas niektóre uciążliwe prace.

Poznawanie typów powiązań

  1. W menu Funkcja wybierz pozycję Integracja. Zostanie wyświetlone okienko Integracja funkcji.

    Zwróć uwagę, że wyzwalacz i powiązanie wyjściowe są już zdefiniowane, jak pokazano na poniższej ilustracji. Widok integracji dostosowuje się do najlepszego dopasowania do szerokości i wysokości ekranu. Te same informacje mogą być wyświetlane w poziomie, jeśli ekran jest wystarczająco szeroki.

    Zrzut ekranu przedstawiający pionowy diagram przepływu przedstawiający wyzwalacze i dane wejściowe prowadzące do funkcji i funkcji prowadzącej do danych wyjściowych.

    Nie możemy dodać więcej niż jednego wyzwalacza. Aby zmienić wyzwalacz dla funkcji, należy usunąć wyzwalacz i utworzyć nowy. Jednak sekcje Dane wejściowe i wyjściowe umożliwiają dodanie więcej niż jednego powiązania, dzięki czemu żądanie może zaakceptować więcej niż jedną wartość wejściową i zwrócić więcej niż jedną wartość wyjściową.

  2. W polu Dane wejściowe wybierz pozycję Dodaj dane wejściowe. Zostanie wyświetlone okienko Tworzenie danych wejściowych . Wybierz listę rozwijaną Typ powiązania, aby wyświetlić listę wszystkich możliwych typów powiązań wejściowych.

    Zrzut ekranu przedstawiający opcje Dodawania danych wejściowych.

    Poświęć chwilę, aby zastanowić się, jak można użyć każdego z tych powiązań wejściowych w rozwiązaniu.

    W dalszej części tego modułu dodajemy powiązania wejściowe, ale na razie wybierz pozycję Anuluj , aby odrzucić to okienko.

  3. W polu Dane wyjściowe wybierz pozycję Dodaj dane wyjściowe. Zostanie wyświetlone okienko Tworzenie danych wyjściowych . Wybierz listę rozwijaną Typ powiązania, aby wyświetlić listę wszystkich możliwych typów powiązań wyjściowych.

    Zrzut ekranu przedstawiający opcje Dodawania danych wyjściowych.

    Jak widać, istnieje kilka typów powiązań wyjściowych. W dalszej części tego modułu dodajemy powiązania wyjściowe, ale na razie wybierz pozycję Anuluj , aby odrzucić to okienko.

  1. W menu Funkcja wybierz pozycję Integracja. Zostanie wyświetlone okienko Integracja funkcji.

    Zwróć uwagę, że wyzwalacz i powiązanie wyjściowe są już zdefiniowane, jak pokazano na poniższej ilustracji. Widok integracji dostosowuje się do najlepszego dopasowania do szerokości i wysokości ekranu. Te same informacje mogą być wyświetlane w pionie, jeśli ekran nie jest wystarczająco szeroki.

    Zrzut ekranu przedstawiający diagram przepływu poziomego przedstawiający wyzwalacze i dane wejściowe prowadzące do funkcji i funkcji prowadzącej do danych wyjściowych.

    Nie możemy dodać więcej niż jednego wyzwalacza. Aby zmienić wyzwalacz dla funkcji, należy usunąć wyzwalacz i utworzyć nowy. Jednak sekcje Dane wejściowe i wyjściowe umożliwiają dodawanie wielu powiązań, dzięki czemu funkcja może akceptować więcej niż jedną wartość wejściową i zwracać więcej niż jedną wartość wyjściową.

  2. W polu Dane wejściowe wybierz pozycję Dodaj dane wejściowe. Zostanie wyświetlone okienko Tworzenie danych wejściowych . Wybierz listę rozwijaną Typ powiązania, aby wyświetlić listę wszystkich możliwych typów powiązań wejściowych.

    Zrzut ekranu przedstawiający opcje Dodawania danych wejściowych.

    Poświęć chwilę, aby zastanowić się, jak można użyć każdego z tych powiązań wejściowych w rozwiązaniu. Istnieje wiele możliwości wyboru.

    W dalszej części tego modułu dodajemy powiązania wejściowe, ale na razie wybierz pozycję Anuluj , aby odrzucić to okienko.

  3. W polu Dane wyjściowe wybierz pozycję Dodaj dane wyjściowe. Zostanie wyświetlone okienko Tworzenie danych wyjściowych . Wybierz listę rozwijaną Typ powiązania, aby wyświetlić listę wszystkich możliwych typów powiązań wyjściowych.

    Zrzut ekranu przedstawiający opcje Dodawania danych wyjściowych.

    Jak widać, istnieje kilka typów powiązań wyjściowych. W dalszej części tego modułu dodajemy powiązania wyjściowe, ale na razie wybierz pozycję Anuluj , aby odrzucić to okienko.

Do tej pory dowiedzieliśmy się, jak utworzyć aplikację funkcji i dodać do niej funkcję. Widzieliśmy prostą funkcję w akcji — jedną, która jest uruchamiana po wysłaniu żądania HTTP. Zapoznaliśmy się również z witryną Azure Portal oraz typami powiązań wejściowych i wyjściowych, które są dostępne dla funkcji. W następnej lekcji użyjemy powiązania wejściowego w celu odczytania tekstu z bazy danych.