Sdílet prostřednictvím


Řešení chyby Modul runtime služby Azure Functions je nedostupný

Tento článek vám pomůže vyřešit následující chybový řetězec, který se zobrazí na webu Azure Portal:

Chyba: Modul runtime Azure Functions je nedostupný. Kliknutím sem zobrazíte podrobnosti o konfiguraci úložiště.

K tomuto problému dochází v případě, že modul runtime Služby Functions nejde spustit. Nejběžnějším důvodem je, že aplikace funkcí ztratila přístup ke svému účtu úložiště. Další informace najdete v tématu Požadavky na účet úložiště.

Zbývající část tohoto článku vám pomůže vyřešit konkrétní příčiny této chyby, včetně toho, jak identifikovat a vyřešit jednotlivé případy.

Účet úložiště byl odstraněn.

Každá aplikace funkcí vyžaduje, aby fungoval účet úložiště. Pokud se tento účet odstraní, vaše funkce nebudou fungovat.

Začněte vyhledáním názvu účtu úložiště v nastavení aplikace. Buď AzureWebJobsStorage nebo WEBSITE_CONTENTAZUREFILECONNECTIONSTRING obsahuje název vašeho účtu úložiště jako součást připojovací řetězec. Další informace najdete v referenčních informacích k nastavení aplikace pro Azure Functions.

Vyhledejte svůj účet úložiště na webu Azure Portal a zjistěte, jestli stále existuje. Pokud byl odstraněn, znovu vytvořte účet úložiště a nahraďte připojovací řetězec úložiště. Kód funkce se ztratí a budete ho muset znovu nasadit.

Nastavení aplikace účtu úložiště se odstranilo.

Pokud v předchozím kroku nemůžete najít účet úložiště připojovací řetězec, pravděpodobně se odstranil nebo přepsal. K odstranění nastavení aplikace nejčastěji dochází, když k nastavení nastavení aplikace používáte sloty nasazení nebo skripty Azure Resource Manageru.

Požadovaná nastavení aplikace

Další informace najdete v referenčních informacích k nastavení aplikace pro Azure Functions.

Pokyny

  • U žádného z těchto nastavení nekontrolujte nastavení slotu. Pokud prohodíte sloty nasazení, aplikace funkcí se přeruší.
  • Tato nastavení neupravujte jako součást automatizovaných nasazení.
  • Tato nastavení musí být k dispozici a platná při vytváření. Automatizované nasazení, které neobsahuje tato nastavení, má za následek aplikaci funkcí, která se nespustí, i když se tato nastavení přidají později.

Přihlašovací údaje účtu úložiště jsou neplatné.

Dříve probíraný účet úložiště připojovací řetězec se musí aktualizovat, pokud znovu vygenerujete klíče úložiště. Další informace o správě klíčů úložiště najdete v tématu Vytvoření účtu azure Storage.

Účet úložiště je nepřístupný

Vaše aplikace funkcí musí mít přístup k účtu úložiště. Běžné problémy, které blokují přístup aplikace funkcí k účtu úložiště:

  • Aplikace funkcí je nasazená ve vaší službě App Service Environment (ASE) bez správných pravidel sítě, která by povolovala provoz do a z účtu úložiště.

  • Je povolená brána firewall účtu úložiště, která však není nakonfigurovaná tak, aby povolovala provoz do a z funkcí. Další informace najdete v tématu Konfigurace virtuálních sítí a bran firewall Azure Storage.

  • Ověřte, že allowSharedKeyAccess je nastavení nastavené na truehodnotu , což je její výchozí hodnota. Další informace najdete v tématu Zabránění autorizaci sdíleného klíče pro účet Azure Storage.

Denní kvóta spouštění je plná

Pokud máte nakonfigurovanou denní kvótu spouštění, je vaše aplikace funkcí dočasně zakázaná, což způsobí nedostupnost mnoha ovládacích prvků portálu.

Pokud chcete ověřit kvótu na webu Azure Portal, vyberte v aplikaci funkcí nastavení aplikace funkcí platformy>. Pokud jste překročili kvótu denního využití, kterou jste nastavili, zobrazí se následující zpráva:

"Aplikace funkcí dosáhla denní kvóty využití a byla zastavena do následujícího 24hodinového časového rámce."

Pokud chcete tento problém vyřešit, odeberte nebo zvyšte denní kvótu a restartujte aplikaci. Jinak se spuštění aplikace zablokuje až do následujícího dne.

Aplikace se nachází za bránou firewall

Vaše aplikace funkcí může být nedostupná z některého z následujících důvodů:

Azure Portal provádí volání přímo do spuštěné aplikace, která načte seznam funkcí a provádí volání HTTP do koncového bodu Kudu. Nastavení na úrovni platformy na kartě Funkce platformy jsou stále k dispozici.

Ověření konfigurace služby ASE:

  1. Přejděte do skupiny zabezpečení sítě (NSG) podsítě, ve které se nachází služba ASE.
  2. Ověřte příchozí pravidla, která povolují provoz přicházející z veřejné IP adresy počítače, do kterého přistupujete k aplikaci.

Portál můžete použít také z počítače připojeného k virtuální síti, na které běží vaše aplikace, nebo k virtuálnímu počítači, který běží ve vaší virtuální síti.

Další informace o konfiguraci příchozích pravidel najdete v části Skupiny zabezpečení sítě v tématu Důležité informace o sítích pro službu App Service Environment.

Chyby kontejnerů v Linuxu

U aplikací funkcí, které běží v Linuxu v kontejneru, Azure Functions runtime is unreachable může k chybě dojít v důsledku problémů s kontejnerem. Pomocí následujícího postupu zkontrolujte chyby v protokolech kontejneru:

  1. Přejděte ke koncovému bodu Kudu pro aplikaci funkcí, která se nachází na https://<FUNCTION_APP>.scm.azurewebsites.netadrese , kde <FUNCTION_APP> je název vaší aplikace.

  2. Stáhněte si protokoly Dockeru .zip souboru a zkontrolujte jeho obsah v místním počítači.

  3. Zkontrolujte všechny protokolované chyby, které značí, že se kontejner nemůže úspěšně spustit.

Image kontejneru není k dispozici

K chybám může dojít v případě, že image kontejneru, na kterou odkazujete, není k dispozici nebo se nepodaří správně spustit. Zkontrolujte všechny protokolované chyby, které značí, že se kontejner nemůže úspěšně spustit.

Je potřeba opravit všechny chyby, které brání správnému spuštění kontejneru pro aplikaci funkcí.

Pokud image kontejneru nejde najít, v protokolech Dockeru se zobrazí manifest unknown chyba. V tomto případě můžete pomocí příkazů Azure CLI zdokumentovaných v tématu Postup cílení verzí modulu runtime Azure Functions změnit odkazovanou image kontejneru. Pokud jste nasadili vlastní image kontejneru, musíte image opravit a znovu nasadit aktualizovanou verzi do odkazovaného registru.

Kontejner aplikace má konfliktní porty

Vaše aplikace funkcí může být v nereagujícím stavu kvůli konfliktní přiřazení portu při spuštění. K tomu může dojít v následujících případech:

  • Váš kontejner má spuštěné samostatné služby, ve kterých jedna nebo více služeb spojuje vazbu na stejný port jako aplikace funkcí.
  • Přidali jste hybridní připojení Azure, které sdílí stejnou hodnotu portu jako aplikace funkcí.

Ve výchozím nastavení používá kontejner, ve kterém běží vaše aplikace funkcí, port :80. Pokud se jiné služby ve stejném kontejneru také snaží použít port :80, aplikace funkcí se nemůže spustit. Pokud se v protokolech zobrazují konflikty portů, změňte výchozí porty.

Kolize ID hostitele

Počínaje verzí 3.x modulu runtime služby Functions se zjistí kolize ID hostitele a zaprotokoluje se jako upozornění. Ve verzi 4.x se zaprotokoluje chyba a hostitel se zastaví. Pokud modul runtime nejde spustit pro vaši aplikaci funkcí, projděte si protokoly. Pokud dojde k upozornění nebo chybě týkající se kolizí ID hostitele, postupujte podle kroků pro zmírnění rizik v důležitých informacích o ID hostitele.

Nastavení aplikace jen pro čtení

Změna nastavení aplikace App Service jen pro čtení může umístit aplikaci funkcí do nedostupného stavu.

přepsání ověřování ASP.NET

Platí jenom pro aplikace c# spuštěné v procesu s hostitelem Functions.

Konfigurace ověřování ASP.NET ve spouštěcí třídě functions může přepsat služby, které jsou potřeba pro komunikaci s hostitelem na webu Azure Portal. To zahrnuje, ale není omezeno na žádná volání AddAuthentication(). Pokud jsou ověřovací služby hostitele přepsány a portál nemůže komunikovat s hostitelem, považuje aplikaci za nedostupnou. K tomuto problému může dojít k chybám, například: No authentication handler is registered for the scheme 'ArmToken'..

Další kroky

Další informace o monitorování aplikací funkcí: