Felsöka felet: "Det går inte att nå Körmiljö för Azure Functions"
Den här artikeln hjälper dig att felsöka följande felsträng som visas i Azure Portal:
"Fel: Azure Functions Runtime kan inte nås. Klicka här om du vill ha mer information om lagringskonfigurationen."
Det här problemet uppstår när Functions-körningen inte kan starta. Den vanligaste orsaken till detta är att funktionsappen har förlorat åtkomsten till sitt lagringskonto. Mer information finns i Krav för lagringskonto.
Resten av den här artikeln hjälper dig att felsöka specifika orsaker till det här felet, inklusive hur du identifierar och löser varje ärende.
Lagringskontot har tagits bort
Varje funktionsapp kräver ett lagringskonto för att fungera. Om kontot tas bort fungerar inte funktionerna.
Börja med att leta upp lagringskontots namn i programinställningarna. Antingen AzureWebJobsStorage
eller WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
innehåller namnet på ditt lagringskonto som en del av en anslutningssträng. Mer information finns i Referens för appinställningar för Azure Functions.
Sök efter ditt lagringskonto i Azure Portal för att se om det fortfarande finns. Om det har tagits bort skapar du lagringskontot igen och ersätter ditt anslutningssträng. Funktionskoden går förlorad och du måste distribuera om den.
Programinställningarna för lagringskontot har tagits bort
I föregående steg, om du inte hittar ett lagringskonto anslutningssträng, togs det förmodligen bort eller skrevs över. Borttagning av programinställningar sker oftast när du använder distributionsplatser eller Azure Resource Manager-skript för att ange programinställningar.
Nödvändiga programinställningar
- Krävs:
- Krävs för elastic Premium- och förbrukningsplanfunktioner:
Mer information finns i Referens för appinställningar för Azure Functions.
Vägledning
- Kontrollera inte platsinställningen för någon av de här inställningarna. Om du byter distributionsplatser bryts funktionsappen.
- Ändra inte de här inställningarna som en del av automatiserade distributioner.
- De här inställningarna måste anges och vara giltiga när de skapas. En automatiserad distribution som inte innehåller de här inställningarna resulterar i en funktionsapp som inte körs, även om inställningarna läggs till senare.
Autentiseringsuppgifterna för lagringskontot är ogiltiga
Det tidigare diskuterade lagringskontot anslutningssträng måste uppdateras om du återskapar lagringsnycklar. Mer information om hantering av lagringsnycklar finns i Skapa ett Azure Storage-konto.
Lagringskontot är inte tillgängligt
Din funktionsapp måste kunna komma åt lagringskontot. Vanliga problem som blockerar en funktionsapps åtkomst till ett lagringskonto:
Funktionsappen har distribuerats till App Service-miljön (ASE), men saknar korrekta nätverksregler för att tillåta trafik till och från lagringskontot.
Brandväggen för lagringskontot är aktiverad och har inte konfigurerats för att tillåta trafik till och från funktioner. Mer information finns i Konfigurera Azure Storage-brandväggar och virtuella nätverk.
Kontrollera att inställningen är inställd på
allowSharedKeyAccess
true
, vilket är dess standardvärde. Mer information finns i Förhindra auktorisering av delad nyckel för ett Azure Storage-konto.
Den dagliga körningskvoten är full
Om du har konfigurerat en daglig körningskvot inaktiveras funktionsappen tillfälligt, vilket gör att många av portalkontrollerna blir otillgängliga.
Om du vill verifiera kvoten i Azure Portal väljer du Plattformsfunktioner Funktionsappinställningar> i funktionsappen. Om du överskrider den dagliga användningskvot som du har angett visas följande meddelande:
"Funktionsappen har nått den dagliga användningskvoten och har stoppats fram till tidsramen på 24 timmar."
Lös problemet genom att ta bort eller öka den dagliga kvoten och sedan starta om appen. Annars blockeras körningen av appen till nästa dag.
Appen är bakom en brandvägg
Funktionsappen kan inte nås av någon av följande orsaker:
Din funktionsapp finns i en internt belastningsutjämnad App Service-miljön och den är konfigurerad för att blockera inkommande Internettrafik.
Funktionsappen har inkommande IP-begränsningar som är konfigurerade för att blockera internetåtkomst.
Den Azure Portal anropar direkt till appen som körs för att hämta listan över funktioner och den gör HTTP-anrop till Kudu-slutpunkten. Inställningar på plattformsnivå under fliken Plattformsfunktioner är fortfarande tillgängliga.
Så här verifierar du DIN ASE-konfiguration:
- Gå till nätverkssäkerhetsgruppen (NSG) för det undernät där ASE finns.
- Verifiera reglerna för inkommande trafik för att tillåta trafik som kommer från den offentliga IP-adressen för den dator där du har åtkomst till programmet.
Du kan också använda portalen från en dator som är ansluten till det virtuella nätverk som kör din app eller till en virtuell dator som körs i ditt virtuella nätverk.
Mer information om konfiguration av inkommande regler finns i avsnittet "Nätverkssäkerhetsgrupper" i Nätverksöverväganden för en App Service-miljön.
Containerfel i Linux
För funktionsappar som körs på Linux i en container Azure Functions runtime is unreachable
kan felet inträffa till följd av problem med containern. Använd följande procedur för att granska containerloggarna efter fel:
Navigera till Kudu-slutpunkten för funktionsappen, som finns på , där
<FUNCTION_APP>
är namnet påhttps://<FUNCTION_APP>.scm.azurewebsites.net
din app.Ladda ned Docker-loggarna .zip-filen och granska innehållet på den lokala datorn.
Kontrollera om det finns loggade fel som anger att containern inte kan startas.
Containeravbildningen är inte tillgänglig
Fel kan inträffa när containeravbildningen som refereras inte är tillgänglig eller inte startar korrekt. Kontrollera om det finns loggade fel som anger att containern inte kan startas.
Du måste korrigera eventuella fel som hindrar containern från att starta för funktionsappen korrekt.
När containeravbildningen inte kan hittas visas ett manifest unknown
fel i Docker-loggarna. I det här fallet kan du använda Azure CLI-kommandona som dokumenteras i Så här riktar du in dig på Azure Functions-körningsversioner för att ändra containeravbildningen som refereras till. Om du har distribuerat en anpassad containeravbildning måste du åtgärda avbildningen och distribuera om den uppdaterade versionen till det refererade registret.
Appcontainern har portar i konflikt
Funktionsappen kan vara i ett tillstånd som inte svarar på grund av en porttilldelning som är i konflikt vid start. Detta kan inträffa i följande fall:
- Containern har separata tjänster som körs där en eller flera tjänster binder till samma port som funktionsappen.
- Du har lagt till en Azure Hybrid-anslutning som delar samma portvärde som funktionsappen.
Som standard använder containern där funktionsappen körs port :80
. När andra tjänster i samma container också försöker använda porten :80
kan funktionsappen inte starta. Om dina loggar visar portkonflikter ändrar du standardportarna.
Kollision med värd-ID
Från och med version 3.x av Functions-körningen identifieras och loggas värd-ID-kollisionen som en varning. I version 4.x loggas ett fel och värden stoppas. Om körningen inte kan starta för funktionsappen granskar du loggarna. Om det finns en varning eller ett fel om kollisioner med värd-ID följer du åtgärdsstegen i Överväganden för värd-ID.
Skrivskyddade appinställningar
Om du ändrar skrivskyddade App Service-programinställningar kan funktionsappen hamna i ett tillstånd som inte kan nås.
åsidosättningar för ASP.NET autentisering
Gäller endast för C#-appar som körs i processen med Functions-värden.
Att konfigurera ASP.NET autentisering i en Functions-startklass kan åsidosätta tjänster som krävs för att Azure Portal ska kunna kommunicera med värden. Detta inkluderar, men är inte begränsat till, några anrop till AddAuthentication()
. Om värdens autentiseringstjänster är åsidosatta och portalen inte kan kommunicera med värden, anser den att appen inte kan nås. Det här problemet kan leda till fel som: No authentication handler is registered for the scheme 'ArmToken'.
.
Nästa steg
Lär dig mer om att övervaka dina funktionsappar: