Condividi tramite


Eseguire attività in background con Processi Web in Servizio app di Azure

Distribuire processi Web usando il portale di Azure per caricare un eseguibile o uno script. È possibile eseguire attività in background nel servizio app di Azure.

Se invece del servizio app di Azure si usa Visual Studio per sviluppare e distribuire Processi Web, vedere Distribuire Processi Web con Visual Studio.

Nota

Processi Web per contenitore Windows, codice Linux e contenitore Linux è in anteprima. Processi Web per codice Windows è disponibile a livello generale e non in anteprima.

Panoramica

Processi Web è una funzionalità del servizio app di Azure che consente di eseguire un programma o uno script nella stessa istanza di un'app Web. Tutti i piani di servizio app supportano Processi Web. Non sono previsti costi aggiuntivi per l'uso di Processi Web.

Nota

A partire dal 1° giugno 2024, tutte le app del servizio app appena create avranno la possibilità di generare un nome host predefinito univoco usando la convenzione di denominazione <app-name>-<random-hash>.<region>.azurewebsites.net. I nomi delle app esistenti rimarranno invariati.

Esempio: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Per altri dettagli, fare riferimento a Nome host predefinito univoco per la risorsa del servizio app.

È possibile usare Azure WebJobs SDK con Processi Web per semplificare numerose attività di programmazione. Per altre informazioni, vedere Che cos'è l'SDK Processi Web?.

Funzioni di Azure consente di eseguire programmi e script in un altro modo. Per un confronto tra Processi Web e Funzioni, vedere Scegliere tra Flow, App per la logica, Funzioni e Processi Web.

Tipi di processi Web

Tipi di file supportati per script e programmi

I seguenti tipi di file non sono supportati:
.cmd, .bat, .exe (prompt dei comandi di Windows)
.ps1 (PowerShell)
.sh (Bash)
.php (PHP)
.py (Python)
.js (Node.js)
.jar (Java)

I runtime necessari per eseguire questi tipi di file sono già installati nell'istanza dell'app Web.

Confronto tra Processi Web continui e attivati

La tabella seguente descrive le differenze tra processi Web continui e attivati:

Continuo Attivato
Viene avviato immediatamente quando il processo Web viene creato. Per evitare che il processo termini, il programma o lo script in genere opera in un ciclo infinito. Se il processo termina, è possibile riavviarlo. In genere usato con WebJobs SDK. Viene avviato solo se attivato manualmente o in base a una pianificazione.
Viene eseguito in tutte le istanze in cui viene eseguita l'app Web. È facoltativamente possibile limitare il processo Web a una sola istanza. Viene eseguito in una singola istanza selezionata da Azure per il bilanciamento del carico.
Supporta il debug remoto. Non supporta il debug remoto.
Il codice viene distribuito in \site\wwwroot\app_data\Jobs\Continuous. Il codice viene distribuito in \site\wwwroot\app_data\Jobs\Triggered.

Nota

Un'app Web può raggiungere il timeout dopo 20 minuti di inattività e solo le richieste all'app Web effettiva possono reimpostare il timer. Se si visualizza la configurazione dell'app nel portale di Azure o si effettuano richieste al sito degli strumenti avanzati (https://<app_name>.scm.azurewebsites.net), il timer non verrà reimpostato. Se si imposta l'app Web che ospita il processo per l'esecuzione continua, l'esecuzione in base a una pianificazione o l'uso di trigger basati su eventi, abilitare l'impostazione Sempre attiva nella pagina Configurazione di Azure dell'app Web. L'impostazione Sempre attiva consente di assicurarsi che questi tipi di Processi Web vengano eseguiti in modo affidabile. Questa funzionalità è disponibile solo nei piani tariffari Basic, Standard e Premium.

Creare un processo Web continuo

Importante

Dopo aver configurato il controllo del codice sorgente per l'applicazione, Processi Web va distribuito come parte dell'integrazione del controllo del codice sorgente. Dopo aver configurato il controllo del codice sorgente per l'applicazione, non è possibile aggiungere un processo Web dal portale di Azure.

  1. Nel portale di Azure andare alla pagina Servizio app dell'app Web del servizio app, dell'app per le API o dell'app per dispositivi mobili.

  2. Nel riquadro sinistro selezionare Processi Web, quindi selezionare Aggiungi.

    Screenshot che mostra come aggiungere un processo Web in un'app del servizio app nel portale.

  3. Compilare le impostazioni Aggiungi processo Web come specificato nella tabella e quindi selezionare Creare un processo Web.

    Screenshot che mostra come configurare un processo Web continuo a istanze multiple per un'app del servizio app.

    Impostazione Valore di esempio Descrizione
    Nome myContinuousWebJob Nome univoco nell'app del servizio app. Deve iniziare con una lettera o un numero e non può contenere caratteri speciali diversi da "-" e "_".
    Caricamento file ConsoleApp.zip File ZIP che contiene il file eseguibile o il file di script e gli eventuali file di supporto necessari per eseguire il programma o lo script. I tipi di file di script o eseguibili supportati sono elencati nella sezione Tipi di file supportati.
    Type Continuo I tipi di processi Web sono descritti più indietro in questo articolo.
    Ridimensiona Istanze multiple Disponibile solo per i processi Web continui. Determina se il programma o lo script viene eseguito in tutte le istanze o in una sola istanza. L'opzione per l'esecuzione in più istanze non si applica ai piani tariffari Gratuito o Condiviso.
  4. Il nuovo processo Web viene visualizzato nella pagina Processi Web. Se viene visualizzato un messaggio che indica che il processo Web è stato aggiunto, ma non viene visualizzato, selezionare Aggiorna.

  5. Per arrestare o riavviare un processo Web continuo, fare clic con il pulsante destro del mouse sul processo Web nell'elenco e selezionare il pulsante Arresta o Esegui, quindi confermare la selezione.

    Screenshot che mostra come arrestare un processo Web continuo nel portale di Azure.

Creare un processo Web attivato manualmente

  1. Nel portale di Azure andare alla pagina Servizio app dell'app Web del servizio app, dell'app per le API o dell'app per dispositivi mobili.

  2. Nel riquadro sinistro selezionare Processi Web, quindi selezionare Aggiungi.

    Screenshot che mostra come aggiungere un processo Web in un'app del servizio app nel portale (processo Web attivato manualmente).

  3. Compilare le impostazioni Aggiungi processo Web come specificato nella tabella e quindi selezionare Creare un processo Web.

    Screenshot che mostra come configurare un processo Web attivato manualmente per un'app del servizio app.

    Impostazione Valore di esempio Descrizione
    Nome myTriggeredWebJob Nome univoco nell'app del servizio app. Deve iniziare con una lettera o un numero e non può contenere caratteri speciali diversi da "-" e "_".
    Caricamento file ConsoleApp1.zip File ZIP che contiene il file eseguibile o il file di script e gli eventuali file di supporto necessari per eseguire il programma o lo script. I tipi di file di script o eseguibili supportati sono elencati nella sezione Tipi di file supportati.
    Type Attivato I tipi di processo Web sono descritti in precedenza in questo articolo.
    Trigger Manuale
  4. Il nuovo processo Web viene visualizzato nella pagina Processi Web. Se viene visualizzato un messaggio che indica che il processo Web è stato aggiunto, ma non viene visualizzato, selezionare Aggiorna.

  5. Per eseguire un processo Web attivato manualmente, fare clic con il pulsante destro del mouse sul processo Web nell'elenco e selezionare il pulsante Esegui, quindi confermare la selezione.

    Screenshot che mostra come eseguire un processo Web attivato manualmente nel portale di Azure.

Creare un processo Web pianificato

Viene attivato anche un processo Web pianificato. È possibile pianificare il trigger per l'esecuzione automatica in base alla pianificazione specificata.

  1. Nel portale di Azure andare alla pagina Servizio app dell'app Web del servizio app, dell'app per le API o dell'app per dispositivi mobili.

  2. Nel riquadro sinistro selezionare Processi Web, quindi selezionare Aggiungi.

    Screenshot che mostra come aggiungere un processo Web in un'app del servizio app nel portale (processo Web pianificato).

  3. Compilare le impostazioni Aggiungi processo Web come specificato nella tabella e quindi selezionare Creare un processo Web.

    Screenshot che mostra come configurare un processo Web pianificato in un'app del servizio app.

    Impostazione Valore di esempio Descrizione
    Nome myScheduledWebJob Nome univoco nell'app del servizio app. Deve iniziare con una lettera o un numero e non può contenere caratteri speciali diversi da "-" e "_".
    Caricamento file ConsoleApp.zip File ZIP che contiene il file eseguibile o il file di script e gli eventuali file di supporto necessari per eseguire il programma o lo script. I tipi di file di script o eseguibili supportati sono elencati nella sezione Tipi di file supportati.
    Type Attivato I tipi di processi Web sono descritti più indietro in questo articolo.
    Trigger Pianificati Per il corretto funzionamento della pianificazione, abilitare la funzionalità Sempre online. Sempre online è disponibile solo nei piani tariffari Basic, Standard e Premium.
    Espressione CRON 0 0/20 * * * * Le espressioni CRON vengono descritte nella sezione seguente.
  4. Il nuovo processo Web viene visualizzato nella pagina Processi Web. Se viene visualizzato un messaggio che indica che il processo Web è stato aggiunto, ma non viene visualizzato, selezionare Aggiorna.

  5. Il processo Web pianificato viene eseguito in base alla pianificazione definita dall'espressione CRON. Per eseguirlo manualmente in qualsiasi momento, fare clic con il pulsante destro del mouse sul processo Web nell'elenco e selezionare il pulsante Esegui, quindi confermare la selezione.

    Screenshot che mostra come eseguire un processo Web pianificato manualmente nel portale di Azure.

Espressioni NCRONTAB

È possibile immettere un'espressione NCRONTAB nel portale o includere un file settings.job nella radice del file ZIP del processo Web, come nell'esempio seguente:

{
    "schedule": "0 */15 * * * *"
}

Per altre informazioni, vedere Pianificazione di un processo Web attivato.

Nota

Il fuso orario predefinito usato per eseguire le espressioni CRON è UTC (Coordinated Universal Time). Per fare in modo che l'espressione CRON eseguita sia basata su un altro fuso orario, creare un'impostazione per l'app per le funzioni denominata WEBSITE_TIME_ZONE. Per altre informazioni, vedere Fusi orari NCRONTAB.

Gestire Processi Web

È possibile gestire lo stato di esecuzione di singoli processi Web in esecuzione nel sito nel portale di Azure. Passare a Impostazioni>Processi Web, scegliere il processo Web e sarà possibile avviare e arrestare il processo Web. È anche possibile visualizzare e modificare la password del webhook che esegue il processo Web.

Inoltre, è possibile aggiungere un'impostazione dell'applicazione denominata WEBJOBS_STOPPED con il valore per 1 arrestare tutti i processi Web in esecuzione nel sito. Si può usare questo metodo per impedire l'esecuzione di processi Web in conflitto sia negli slot di staging che in quelli di produzione. Analogamente, è possibile usare un valore 1 per l'impostazione WEBJOBS_DISABLE_SCHEDULE per disabilitare i processi Web attivati nel sito o in uno slot di staging. Per gli slot, ricordarsi di abilitare l'opzione Impostazione slot di distribuzione in modo che l'impostazione stessa non venga sostituita.

Visualizzare la cronologia processo

  1. Per il processo Web che si vuole visualizzare, selezionare Log.

    Screenshot che mostra come accedere ai log per un processo Web.

  2. Nella pagina WebJob Details (Dettagli processo Web) selezionare un'ora per visualizzare i dettagli di un'esecuzione.

    Screenshot che mostra come scegliere un'esecuzione di processo Web per visualizzare i log dettagliati.

  3. Nella pagina Dettagli esecuzione processo Web è possibile selezionare scarica per ottenere un file di testo dei log oppure selezionare il collegamento di navigazione Processi Web nella parte superiore della pagina per visualizzare i log per un processo Web diverso.

Stati di Processi Web

Di seguito è riportato un elenco degli stati comuni di Processi Web:

  • Inizializzazione in corso L'app è stata avviata e il processo Web sta eseguendo il processo di inizializzazione.
  • Avvio in corso Il processo Web è in fase di avvio.
  • In esecuzione Il processo Web è in esecuzione.
  • In attesa di riavvio Un processo Web continuo viene chiuso in meno di due minuti dall'avvio per qualsiasi motivo e il servizio app attende 60 secondi prima di riavviarlo. Se il processo Web continuo viene chiuso dopo il limite di due minuti, il servizio app non attende 60 secondi e riavvia immediatamente il processo Web.
  • Arrestato Il processo Web è stato arrestato (in genere dal portale di Azure), non è attualmente in esecuzione e non verrà eseguito fino a quando non viene avviato di nuovo manualmente, anche per un processo Web continuo o pianificato.
  • Interrotto Questo stato può verificarsi per molti motivi, ad esempio quando un processo Web a esecuzione prolungata raggiunge l'indicatore di timeout.

Passaggi successivi

Azure WebJobs SDK può essere usato con Processi Web per semplificare diverse attività di programmazione. Per altre informazioni, vedere Che cos'è l'SDK Processi Web?.