Risolvere l'errore: "Il runtime di Funzioni di Azure non è raggiungibile"
Questo articolo consente di risolvere i problemi relativi alla stringa di errore seguente visualizzata nella portale di Azure:
"Errore: Funzioni di Azure runtime non è raggiungibile. Fare clic qui per informazioni dettagliate sulla configurazione dell'archiviazione."
Questo problema si verifica quando il runtime di Funzioni non può essere avviato. Il motivo più comune è che l'app per le funzioni ha perso l'accesso all'account di archiviazione. Per altre informazioni, vedere Requisiti dell'account di archiviazione.
Il resto di questo articolo consente di risolvere le cause specifiche di questo errore, tra cui come identificare e risolvere ogni caso.
L'account di archiviazione è stato eliminato
Ogni app per le funzioni richiede un account di archiviazione per funzionare. Se l'account viene eliminato, le funzioni non funzioneranno.
Per iniziare, cercare il nome dell'account di archiviazione nelle impostazioni dell'applicazione. O AzureWebJobsStorage
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
contiene il nome dell'account di archiviazione come parte di un stringa di connessione. Per maggiori informazioni, vedere Informazioni di riferimento sulle impostazioni dell'app per Funzioni di Azure.
Cercare l'account di archiviazione nel portale di Azure per verificare se esiste ancora. Se è stato eliminato, ricreare l'account di archiviazione e sostituire i stringa di connessione di archiviazione. Il codice della funzione viene perso ed è necessario ridistribuirlo.
Le impostazioni dell'applicazione dell'account di archiviazione sono state eliminate
Nel passaggio precedente, se non è possibile trovare un account di archiviazione stringa di connessione, è probabile che sia stato eliminato o sovrascritto. L'eliminazione delle impostazioni dell'applicazione si verifica in genere quando si usano slot di distribuzione o script di Azure Resource Manager per impostare le impostazioni dell'applicazione.
Impostazioni dell'applicazione necessarie
- Obbligatorio:
- Obbligatorio per le funzioni del piano Elastic Premium e Consumption:
Per maggiori informazioni, vedere Informazioni di riferimento sulle impostazioni dell'app per Funzioni di Azure.
Indicazioni
- Non controllare l'impostazione dello slot per una di queste impostazioni. Se si scambiano gli slot di distribuzione, l'app per le funzioni si interrompe.
- Non modificare queste impostazioni come parte delle distribuzioni automatizzate.
- Queste impostazioni devono essere valide e devono essere indicate al momento della creazione. Una distribuzione automatizzata che non contiene queste impostazioni comporta un'app per le funzioni che non verrà eseguita, anche se le impostazioni vengono aggiunte in un secondo momento.
Le credenziali dell'account di archiviazione non sono valide
L'account di archiviazione descritto in precedenza stringa di connessione deve essere aggiornato se si rigenerano le chiavi di archiviazione. Per altre informazioni sulla gestione delle chiavi di archiviazione, vedere Creare un account Archiviazione di Azure.
L'account di archiviazione non è accessibile
L'app per le funzioni deve essere in grado di accedere all'account di archiviazione. I problemi comuni che bloccano l'accesso di un'app per le funzioni a un account di archiviazione sono:
L'app per le funzioni è stata distribuita negli ambienti del servizio app senza le regole di rete corrette per consentire il traffico da e verso l'account di archiviazione.
Il firewall dell'account di archiviazione è abilitato e non è configurato per consentire il traffico da e verso le funzioni. Per altre informazioni, vedere Configurare i firewall e le reti virtuali di Archiviazione di Azure.
Verificare che l'impostazione
allowSharedKeyAccess
sia impostata sutrue
, ovvero il valore predefinito. Per altre informazioni, vedere Impedire l'autorizzazione con chiave condivisa per un account di archiviazione di Azure.
La quota di esecuzione giornaliera è piena
Se è configurata una quota di esecuzione giornaliera, l'app per le funzioni viene temporaneamente disabilitata, causando la mancata disponibilità di molti controlli del portale.
Per verificare la quota nel portale di Azure, selezionare Platform Features>Function App Settings (Impostazioni dell'app per le funzioni) nell'app per le funzioni. Se si supera la quota di utilizzo giornaliero impostata, viene visualizzato il messaggio seguente:
"L'app per le funzioni ha raggiunto la quota di utilizzo giornaliero ed è stata arrestata fino al successivo intervallo di tempo di 24 ore".
Per risolvere questo problema, rimuovere o aumentare la quota giornaliera e quindi riavviare l'app. In caso contrario, l'esecuzione dell'app viene bloccata fino al giorno successivo.
L'app è protetta da un firewall
L'app per le funzioni potrebbe non essere raggiungibile per uno dei motivi seguenti:
L'app per le funzioni è ospitata in un ambiente del servizio app con carico bilanciato internamente ed è configurata per bloccare il traffico Internet in ingresso.
L'app per le funzioni presenta restrizioni IP in ingresso configurate per bloccare l'accesso a Internet.
Il portale di Azure effettua chiamate direttamente all'app in esecuzione per recuperare l'elenco di funzioni e effettua chiamate HTTP all'endpoint Kudu. Le impostazioni a livello di piattaforma nella scheda Funzionalità della piattaforma sono ancora disponibili.
Per verificare la configurazione dell'ambiente del servizio app:
- Passare al gruppo di sicurezza di rete (NSG) della subnet in cui risiede l'ambiente del servizio app.
- Convalidare le regole in ingresso per consentire il traffico proveniente dall'indirizzo IP pubblico del computer in cui si accede all'applicazione.
È anche possibile usare il portale da un computer connesso alla rete virtuale che esegue l'app o a una macchina virtuale in esecuzione nella rete virtuale.
Per altre informazioni sulla configurazione delle regole in ingresso, vedere la sezione "Gruppi di sicurezza di rete" di Considerazioni sulla rete per un ambiente del servizio app.
Errori del contenitore in Linux
Per le app per le funzioni eseguite in Linux in un contenitore, l'errore Azure Functions runtime is unreachable
può verificarsi a causa di problemi con il contenitore. Usare la procedura seguente per esaminare i log dei contenitori per individuare gli errori:
Passare all'endpoint Kudu per l'app per le funzioni, che si trova in
https://<FUNCTION_APP>.scm.azurewebsites.net
, dove<FUNCTION_APP>
è il nome dell'app.Scaricare i log di Docker .zip file ed esaminare il contenuto nel computer locale.
Verificare la presenza di eventuali errori registrati che indicano che il contenitore non è in grado di avviarsi correttamente.
Immagine del contenitore non disponibile
Gli errori possono verificarsi quando l'immagine del contenitore a cui si fa riferimento non è disponibile o non viene avviata correttamente. Verificare la presenza di eventuali errori registrati che indicano che il contenitore non è in grado di avviarsi correttamente.
È necessario correggere eventuali errori che impediscono l'avvio corretto del contenitore per l'app per le funzioni.
Quando non è possibile trovare l'immagine del contenitore, viene visualizzato un manifest unknown
errore nei log di Docker. In questo caso, è possibile usare i comandi dell'interfaccia della riga di comando di Azure documentati in Come impostare come destinazione Funzioni di Azure versioni di runtime per modificare l'immagine del contenitore a cui viene fatto riferimento. Se è stata distribuita un'immagine del contenitore personalizzata, è necessario correggere l'immagine e ridistribuire la versione aggiornata nel registro di riferimento.
Il contenitore di app ha porte in conflitto
L'app per le funzioni potrebbe non rispondere a causa dell'assegnazione di porte in conflitto all'avvio. Questo problema può verificarsi nei casi seguenti:
- Il contenitore dispone di servizi separati in esecuzione in cui uno o più servizi sono associati alla stessa porta dell'app per le funzioni.
- È stata aggiunta una connessione ibrida di Azure che condivide lo stesso valore della porta dell'app per le funzioni.
Per impostazione predefinita, il contenitore in cui viene eseguita l'app per le funzioni usa la porta :80
. Quando anche altri servizi nello stesso contenitore tentano di usare la porta :80
, l'app per le funzioni può non essere avviata. Se i log mostrano conflitti di porta, modificare le porte predefinite.
Collisione con ID host
A partire dalla versione 3.x del runtime di Funzioni, viene rilevato un conflitto di ID host e registrato come avviso. Nella versione 4.x viene registrato un errore e l'host viene arrestato. Se il runtime non può essere avviato per l'app per le funzioni, esaminare i log. Se è presente un avviso o un errore relativo alle collisioni con ID host, seguire la procedura di mitigazione in Considerazioni sull'ID host.
Impostazioni dell'app di sola lettura
La modifica di qualsiasi servizio app impostazioni dell'applicazione di sola lettura può impostare l'app per le funzioni in uno stato non raggiungibile.
ASP.NET override dell'autenticazione
Si applica solo alle app C# in esecuzione in-process con l'host funzioni.
La configurazione dell'autenticazione ASP.NET in una classe di avvio di Funzioni può eseguire l'override dei servizi necessari per consentire al portale di Azure di comunicare con l'host. Sono incluse, ad esempio, tutte le chiamate a AddAuthentication()
. Se i servizi di autenticazione dell'host vengono sottoposti a override e il portale non riesce a comunicare con l'host, considera l'app non raggiungibile. Questo problema può causare errori come: No authentication handler is registered for the scheme 'ArmToken'.
.
Passaggi successivi
Informazioni sul monitoraggio delle app per le funzioni: