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ń.
Narzędzie Postman jest używane w poniższym przykładzie, ale do wysyłania żądań HTTP można użyć narzędzia cURL, Fiddler lub innego narzędzia podobnego do wysyłania.
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.
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ć.
- 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 przeznaczonymyfunctiondemos-staging.azurewebsites.net
dla miejsca o nazwiestaging
. - Ś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 wx-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.
Przejdź do aplikacji funkcji w witrynie Azure Portal, wybierz pozycję Klucze aplikacji, a następnie
_master
klucz.W sekcji Edytowanie klucza skopiuj wartość klucza do schowka, a następnie wybierz przycisk OK.
Wywołanie funkcji
W witrynie Azure Portal przejdź do góry aplikacji funkcji i wybierz funkcję.
Wybierz pozycję Kod i test, a następnie wybierz pozycję Dzienniki. Podczas ręcznego uruchamiania funkcji z narzędzia Postman są wyświetlane komunikaty z funkcji zarejestrowanej tutaj.
Otwórz narzędzie Postman (lub równoważne narzędzie do komponowania HTTP) i wprowadź lokalizację żądania w polu tekstowym Adres URL.
Upewnij się, że metoda HTTP jest ustawiona na POST, wybierz kartę Nagłówki i dodaj te dwie pary klucz-wartość nagłówka:
Key Wartość x-functions-key
Wartość klucza głównego wklejona ze schowka. Content-Type
application/json
Wybierz kartę Treść i wpisz
{ "input": "<TRIGGER_INPUT>" }
jako treść żądania.<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.Wybierz Wyślij.
Narzędzie Postman zgłosi stan 202 Zaakceptowano.
Następnie wróć do swojej funkcji w witrynie Azure Portal. Przejrzyj dzienniki i zobaczysz komunikaty pochodzące z ręcznego wywołania funkcji.
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.