Rozwiązywanie problemów z błędem: „Środowisko uruchomieniowe usługi Azure Functions jest nieosiągalne”

Ten artykuł ułatwia rozwiązywanie problemów z następującym ciągiem błędu wyświetlanym w witrynie Azure Portal:

"Błąd: Środowisko uruchomieniowe usługi Azure Functions jest niedostępne. Kliknij tutaj, aby uzyskać szczegółowe informacje na temat konfiguracji magazynu.

Ten problem występuje, gdy nie można uruchomić środowiska uruchomieniowego usługi Functions. Najczęstszą przyczyną jest to, że aplikacja funkcji utraciła dostęp do konta magazynu. Aby uzyskać więcej informacji, zobacz Wymagania dotyczące konta magazynu.

Pozostała część tego artykułu ułatwia rozwiązywanie problemów z konkretnymi przyczynami tego błędu, w tym sposobem identyfikowania i rozwiązywania każdego przypadku.

Konto magazynu zostało usunięte

Każda aplikacja funkcji wymaga, aby konto magazynu działało. Jeśli to konto zostanie usunięte, funkcje nie będą działać.

Zacznij od wyszukania nazwy konta magazynu w ustawieniach aplikacji. WEBSITE_CONTENTAZUREFILECONNECTIONSTRING Albo AzureWebJobsStorage zawiera nazwę konta magazynu w ramach parametry połączenia. Aby uzyskać więcej informacji, zobacz Dokumentacja ustawień aplikacji dla usługi Azure Functions.

Wyszukaj konto magazynu w witrynie Azure Portal, aby sprawdzić, czy nadal istnieje. Jeśli konto magazynu zostało usunięte, utwórz je ponownie i zastąp parametry połączenia magazynu. Kod funkcji zostanie utracony i musisz go ponownie wdrożyć.

Usunięto ustawienia aplikacji konta magazynu

W poprzednim kroku, jeśli nie możesz znaleźć konta magazynu parametry połączenia, prawdopodobnie został usunięty lub zastąpiony. Usuwanie ustawień aplikacji najczęściej występuje, gdy używasz miejsc wdrożenia lub skryptów usługi Azure Resource Manager w celu ustawienia ustawień aplikacji.

Wymagane ustawienia aplikacji

Aby uzyskać więcej informacji, zobacz Dokumentacja ustawień aplikacji dla usługi Azure Functions.

Wskazówki

  • Nie sprawdzaj ustawienia miejsca dla żadnego z tych ustawień. W przypadku zamiany miejsc wdrożenia aplikacja funkcji przerywa działanie.
  • Nie modyfikuj tych ustawień w ramach wdrożeń automatycznych.
  • Te ustawienia muszą być podane i prawidłowe w czasie tworzenia. Wdrożenie automatyczne, które nie zawiera tych ustawień, powoduje, że aplikacja funkcji nie zostanie uruchomiona, nawet jeśli ustawienia zostaną dodane później.

Poświadczenia konta magazynu są nieprawidłowe

Wcześniej omówione parametry połączenia konta magazynu należy zaktualizować w przypadku ponownego generowania kluczy magazynu. Aby uzyskać więcej informacji na temat zarządzania kluczami magazynu, zobacz Tworzenie konta usługi Azure Storage.

Konto magazynu jest niedostępne

Aplikacja funkcji musi mieć dostęp do konta magazynu. Typowe problemy, które uniemożliwiają aplikacji funkcji dostęp do konta magazynu, to:

  • Aplikacja funkcji została wdrożona w środowisku App Service Environment (ASE) bez prawidłowych reguł sieciowych, aby zezwolić na ruch do i z konta magazynu.

  • Zapora konta magazynu jest włączona i nie jest skonfigurowana tak, aby zezwalać na ruch do i z funkcji. Aby uzyskać więcej informacji, zobacz Konfigurowanie zapór i sieci wirtualnych usługi Azure Storage.

  • Sprawdź, czy allowSharedKeyAccess ustawienie jest ustawione na truewartość , która jest jego wartością domyślną. Aby uzyskać więcej informacji, zobacz Zapobieganie autoryzacji klucza współdzielonego dla konta usługi Azure Storage.

Dzienny limit przydziału wykonywania jest pełny

Jeśli skonfigurowano dzienny limit przydziału wykonywania, aplikacja funkcji jest tymczasowo wyłączona, co powoduje, że wiele kontrolek portalu stanie się niedostępnych.

Aby sprawdzić limit przydziału w witrynie Azure Portal, wybierz pozycję Aplikacja funkcji funkcji>platformy Ustawienia w aplikacji funkcji. Jeśli przekroczono ustawiony dzienny limit przydziału użycia, zostanie wyświetlony następujący komunikat:

"Aplikacja funkcji osiągnęła dzienny limit przydziału użycia i została zatrzymana do następnych 24 godzin.

Aby rozwiązać ten problem, usuń lub zwiększ dzienny limit przydziału, a następnie uruchom ponownie aplikację. W przeciwnym razie wykonanie aplikacji zostanie zablokowane do następnego dnia.

Aplikacja jest za zaporą

Aplikacja funkcji może być niedostępna z jednego z następujących powodów:

Witryna Azure Portal wykonuje wywołania bezpośrednio do uruchomionej aplikacji w celu pobrania listy funkcji i wykonuje wywołania HTTP do punktu końcowego Kudu. Ustawienia na poziomie platformy na karcie Funkcje platformy są nadal dostępne.

Aby zweryfikować konfigurację środowiska ASE:

  1. Przejdź do sieciowej grupy zabezpieczeń podsieci, w której znajduje się środowiska ASE.
  2. Zweryfikuj reguły ruchu przychodzącego, aby zezwolić na ruch pochodzący z publicznego adresu IP komputera, na którym uzyskujesz dostęp do aplikacji.

Portal można również użyć z komputera połączonego z siecią wirtualną, na którym jest uruchomiona aplikacja lub z maszyną wirtualną uruchomioną w sieci wirtualnej.

Aby uzyskać więcej informacji na temat konfiguracji reguły ruchu przychodzącego, zobacz sekcję "Sieciowe grupy zabezpieczeń" w temacie Zagadnienia dotyczące sieci dla środowiska App Service Environment.

Błędy kontenera w systemie Linux

W przypadku aplikacji funkcji uruchamianych w systemie Linux w kontenerze Azure Functions runtime is unreachable błąd może wystąpić w wyniku problemów z kontenerem. Użyj poniższej procedury, aby przejrzeć dzienniki kontenera pod kątem błędów:

  1. Przejdź do punktu końcowego Kudu dla aplikacji funkcji, która znajduje się w https://<FUNCTION_APP>.scm.azurewebsites.netlokalizacji , gdzie <FUNCTION_APP> jest nazwą aplikacji.

  2. Pobierz dzienniki platformy Docker .zip pliku i przejrzyj zawartość na komputerze lokalnym.

  3. Sprawdź, czy nie ma zarejestrowanych błędów, które wskazują, że kontener nie może uruchomić się pomyślnie.

Obraz kontenera jest niedostępny

Błędy mogą wystąpić, gdy przywoływany obraz kontenera jest niedostępny lub nie można uruchomić poprawnie. Sprawdź, czy nie ma zarejestrowanych błędów, które wskazują, że kontener nie może uruchomić się pomyślnie.

Należy poprawić wszelkie błędy, które uniemożliwiają prawidłowe uruchomienie kontenera dla aplikacji funkcji.

Gdy nie można odnaleźć obrazu kontenera, w dziennikach platformy Docker zostanie wyświetlony manifest unknown błąd. W takim przypadku możesz użyć poleceń interfejsu wiersza polecenia platformy Azure opisanych w artykule Jak kierować do wersji środowiska uruchomieniowego usługi Azure Functions, aby zmienić przywoływany obraz kontenera. Jeśli wdrożono niestandardowy obraz kontenera, należy naprawić obraz i ponownie wdrożyć zaktualizowaną wersję do przywoływanego rejestru.

Kontener aplikacji ma porty powodujące konflikt

Aplikacja funkcji może być w stanie braku odpowiedzi z powodu konfliktu przypisania portu podczas uruchamiania. Może się to zdarzyć w następujących przypadkach:

  • Kontener ma oddzielne usługi uruchomione, w których co najmniej jedna usługa wiąże się z tym samym portem co aplikacja funkcji.
  • Dodano Połączenie hybrydowe platformy Azure, która współużytkowuje tę samą wartość portu co aplikacja funkcji.

Domyślnie kontener, w którym działa aplikacja funkcji, używa portu :80. Gdy inne usługi w tym samym kontenerze również próbują użyć portu :80, uruchomienie aplikacji funkcji może zakończyć się niepowodzeniem. Jeśli dzienniki pokazują konflikty portów, zmień domyślne porty.

Kolizja identyfikatora hosta

Począwszy od wersji 3.x środowiska uruchomieniowego usługi Functions, wykryto i zarejestrowano kolizję identyfikatora hosta jako ostrzeżenie. W wersji 4.x jest rejestrowany błąd i host jest zatrzymany. Jeśli środowisko uruchomieniowe nie może uruchomić aplikacji funkcji, przejrzyj dzienniki. Jeśli wystąpi ostrzeżenie lub błąd dotyczący kolizji identyfikatora hosta, wykonaj kroki zaradcze opisane w temacie Zagadnienia dotyczące identyfikatora hosta.

Ustawienia aplikacji tylko do odczytu

Zmiana wszystkich ustawień aplikacji usługi App Service tylkodo odczytu może umieścić aplikację funkcji w stanie niedostępnym.

ASP.NET przesłonięcia uwierzytelniania

Dotyczy tylko aplikacji języka C# działających w procesie z hostem usługi Functions.

Skonfigurowanie uwierzytelniania ASP.NET w klasie uruchamiania usługi Functions może zastąpić usługi wymagane przez witrynę Azure Portal do komunikowania się z hostem. Obejmuje to, ale nie jest ograniczone do żadnych wywołań metody AddAuthentication(). Jeśli usługi uwierzytelniania hosta są zastępowane, a portal nie może komunikować się z hostem, uważa, że aplikacja nie jest osiągalna. Ten problem może spowodować błędy, takie jak: No authentication handler is registered for the scheme 'ArmToken'..

Następne kroki

Dowiedz się więcej o monitorowaniu aplikacji funkcji: