Udostępnij za pośrednictwem


Ręczne uruchamianie funkcji niewyzwalanej przez protokół HTTP

W tym artykule pokazano, jak ręcznie uruchomić funkcję niewyzwalaną przez protokół HTTP za pomocą specjalnie sformatowanego żądania HTTP.

W niektórych kontekstach, takich jak podczas programowania i rozwiązywania problemów, może być konieczne uruchomienie "na żądanie" funkcji platformy Azure, która jest wyzwalana pośrednio. Przykłady wyzwalaczy pośrednich obejmują funkcje zgodnie z harmonogramem lub funkcje uruchamiane w wyniku zdarzeń.

Procedura opisana w tym artykule jest równoważna używaniu funkcji Testuj/Uruchom na karcie Kod i testowanie funkcji w witrynie Azure Portal. Możesz również użyć programu Visual Studio Code do ręcznego uruchamiania funkcji.

Wymagania wstępne

W przykładach w tym artykule użyto narzędzia do testowania HTTP. Pamiętaj, aby wybrać narzędzie, które zapewnia bezpieczeństwo danych. Aby uzyskać więcej informacji, zobacz Narzędzia do testowania HTTP.

Definiowanie lokalizacji żądania

Aby uruchomić funkcję niezwiązaną z protokołem HTTP, musisz wysłać żądanie do platformy Azure, aby uruchomić funkcję. Adres URL używany do wykonania tego żądania przyjmuje określoną postać.

Definiowanie lokalizacji żądania: nazwa hosta + ścieżka folderu + nazwa funkcji

  • Nazwa hosta: publiczna lokalizacja aplikacji funkcji, która składa się z nazwy aplikacji funkcji oraz azurewebsites.net lub domeny niestandardowej. Podczas pracy z miejscami wdrożenia używanymi do przemieszczania część nazwy hosta jest nazwą hosta produkcyjnego z dołączonym -<slotname> do niego. W poprzednim przykładzie adres URL będzie przeznaczony myfunctiondemos-staging.azurewebsites.net dla miejsca o nazwie staging.
  • Ścieżka folderu: aby uzyskać dostęp do funkcji niezwolonych przez protokół HTTP za pośrednictwem żądania HTTP, musisz wysłać żądanie za pośrednictwem ścieżki admin/functions. Interfejsy API w ścieżce /admin/ są dostępne tylko z autoryzacją.
  • Nazwa funkcji: nazwa funkcji, którą chcesz uruchomić.

Podczas przesyłania żądań do punktów końcowych administratora w aplikacji funkcji mają zastosowanie następujące kwestie:

  • Podczas przesyłania żądań do dowolnego punktu końcowego w /admin/ ścieżce należy podać klucz główny aplikacji w x-functions-key nagłówku żądania.
  • Po uruchomieniu lokalnie autoryzacja nie jest wymuszana, a klucz główny funkcji nie jest wymagany. Funkcję można wywołać bezpośrednio, pomijając nagłówek x-functions-key.
  • Podczas uzyskiwania dostępu do punktów końcowych aplikacji funkcji w miejscu wdrożenia upewnij się, że używasz nazwy hosta specyficznego dla miejsca w adresie URL żądania wraz z kluczem głównym specyficznym dla miejsca.

Pobieranie klucza głównego

Klucz główny można pobrać z witryny Azure Portal lub przy użyciu interfejsu wiersza polecenia platformy Azure.

Uwaga

Ze względu na podwyższony poziom uprawnień w aplikacji funkcji przyznany przez klucz główny nie należy udostępniać tego klucza osobom trzecim ani rozpowszechniać go w aplikacji. Klucz powinien być wysyłany tylko do punktu końcowego HTTPS.

  1. Przejdź do aplikacji funkcji w witrynie Azure Portal, wybierz pozycję Klucze aplikacji, a następnie _master klucz.

    Znajdź klucz główny do skopiowania.

  2. W sekcji Edytowanie klucza skopiuj wartość klucza do schowka, a następnie wybierz przycisk OK.

    Skopiuj klucz główny do schowka.

Wywołanie funkcji

  1. W witrynie Azure Portal przejdź do góry aplikacji funkcji i wybierz funkcję.

  2. Wybierz pozycję Kod i test, a następnie wybierz pozycję Dzienniki. Podczas ręcznego uruchamiania funkcji z narzędzia testowego HTTP są wyświetlane komunikaty z funkcji zarejestrowanej tutaj.

    Zrzut ekranu przedstawiający stronę

  3. W narzędziu do testowania HTTP użyj lokalizacji żądania zdefiniowanej jako adres URL żądania, upewnij się, że metoda żądania HTTP to POST i dołącz następujące dwa nagłówki żądań:

    Key Wartość
    x-functions-key Wartość klucza głównego wklejona ze schowka.
    Content-Type application/json
  4. Upewnij się, że ładunek/treść żądania POST to { "input": "<TRIGGER_INPUT>" }. <TRIGGER_INPUT> Określony element zależy od typu wyzwalacza, ale może to być tylko wartość ciągu, liczbowa lub logiczna. W przypadku usług korzystających z ładunków JSON, takich jak Azure Service Bus, testowy ładunek JSON powinien zostać usunięty i serializowany jako ciąg.

    Jeśli nie chcesz przekazywać danych wejściowych do funkcji, nadal musisz podać pusty słownik {} jako treść żądania POST. Aby uzyskać więcej informacji, zobacz artykuł referencyjny dotyczący określonego wyzwalacza innego niż HTTP.

  5. Wyślij żądanie HTTP POST. Odpowiedź powinna być odpowiedzią HTTP 202 (Zaakceptowana).

  6. Następnie wróć do swojej funkcji w witrynie Azure Portal. Przejrzyj dzienniki i zobaczysz komunikaty pochodzące z ręcznego wywołania funkcji.

    Wyświetl dzienniki, aby wyświetlić wyniki testu klucza głównego.

Sposób uzyskiwania dostępu do danych wysyłanych do wyzwalacza zależy od typu wyzwalacza i języka funkcji. Aby uzyskać więcej informacji, zobacz przykłady referencyjne dla określonego wyzwalacza.

Następne kroki