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 2019 per sviluppare e distribuire processi Web, vedere Distribuire processi Web con Visual Studio.

Panoramica

Processi Web è una funzionalità di Servizio app di Azure che consente di eseguire un programma o uno script nella stessa istanza di un'app Web, di un'app per le API o di un'app per dispositivi mobili. Non sono previsti costi aggiuntivi per l'uso di Processi Web.

È possibile usare Azure WebJobs SDK con Processi Web per semplificare molte attività di programmazione. Processi Web non è ancora supportato per il servizio App in Linux. Per ulteriori informazioni, vedere Definizione dell'SDK di 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

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

Continua 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. Usato in genere 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ò scadere 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 Always On nella pagina Configurazione di Azure dell'app Web. L'impostazione AlwaysOn 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.

Tipi di file supportati per script e programmi

Sono supportati i tipi di file seguenti:

  • .cmd, .bat, .exe (prompt dei comandi di Windows)
  • .ps1 (PowerShell)
  • .sh (Bash)
  • .php (PHP)
  • .py (Python)
  • .js (Node.js)
  • .jar (Java)

Creare un processo Web continuo

Importante

Dopo aver configurato il controllo del codice sorgente per l'applicazione, i processi Web devono essere distribuiti 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 dalla 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 della pagina servizio app dell'app cercare e selezionare Processi Web.

    Select WebJobs

  3. Nella pagina Processi Web selezionare Aggiungi.

    WebJob page

  4. Compilare le impostazioni Aggiungi processo Web come specificato nella tabella.

    Screenshot that shows the Add WebJob settings that you need to configure.

    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.
    Tipo Continua I tipi di processi Web sono descritti più indietro in questo articolo.
    Scalabilità 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.
  5. Selezionare OK.

    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.

    List of WebJobs

  6. Per arrestare o riavviare un processo Web continuo, fare clic con il pulsante destro del mouse sul processo Web nell'elenco e scegliere Arresta o Avvia.

    Stop a continuous WebJob

Creare un processo Web attivato manualmente

  1. Nella portale di Azure cercare e selezionare Servizi app.

  2. Selezionare l'app Web, l'app per le API o l'app per dispositivi mobili dall'elenco.

  3. Nel riquadro sinistro della pagina servizio app dell'app selezionare Processi Web.

    Select WebJobs

  4. Nella pagina Processi Web selezionare Aggiungi.

    WebJob page

  5. Compilare le impostazioni Aggiungi processo Web come specificato nella tabella.

    Screenshot that shows the settings that need to be set for creating a manually triggered WebJob.

    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 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.
    Tipo Attivato I tipi di processi Web sono descritti in precedenza in questo articolo.
    Trigger Manuale
  6. Selezionare OK.

    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.

    List of WebJobs-triggered

  7. Per eseguire il processo Web, fare clic con il pulsante destro del mouse sul nome nell'elenco e selezionare Esegui.

    Run WebJob

Creare un processo Web pianificato

Viene attivato anche un processo Web pianificato. È possibile pianificare automaticamente il trigger nella pianificazione specificata.

  1. Nella portale di Azure cercare e selezionare Servizi app.

  2. Selezionare l'app Web, l'app per le API o l'app per dispositivi mobili dall'elenco.

  3. Nel riquadro sinistro della pagina servizio app dell'app selezionare Processi Web.

    Select WebJobs

  4. Nella pagina Processi Web selezionare Aggiungi.

    WebJob page

  5. Compilare le impostazioni Aggiungi processo Web come specificato nella tabella.

    Add WebJob page

    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.
    Tipo Attivato I tipi di processi Web sono descritti più indietro in questo articolo.
    Trigger Scheduled 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.
  6. Selezionare OK.

    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.

    List of WebJobs-scheduled

Espressioni NCRONTAB

È possibile immettere un'espressione NCRONTAB nel portale o includere un settings.job file nella radice del file di processo Web.zip , 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 i singoli processi Web in esecuzione nel sito nel portale di Azure. Vai a Impostazioni>WebJobs, scegli Il processo Web e puoi avviare e arrestare il processo Web. È anche possibile visualizzare e modificare la password del webhook che esegue il processo Web.

È anche possibile aggiungere un'impostazione dell'applicazione denominata WEBJOBS_STOPPED con un valore di 1 per arrestare tutti i processi Web in esecuzione nel sito. Questo può essere utile come modo per evitare che i processi Web in conflitto eseguano l'esecuzione sia negli slot di gestione temporanea che di produzione. È possibile usare in modo analogo un valore di 1 per l'impostazione WEBJOBS_DISABLE_SCHEDULE per disabilitare i processi Web attivati nel sito o uno slot di gestione temporanea. Per gli slot, ricordarsi di abilitare l'opzione Impostazione slot di distribuzione in modo che l'impostazione stessa non venga scambiata.

Visualizzare la cronologia del processo

  1. Selezionare il processo Web e quindi visualizzare la cronologia, selezionare Log.

    Logs button

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

    WebJob Details

  3. Nella pagina WebJob Run Details (Dettagli esecuzione processo Web) selezionare Toggle Output (Attiva/Disattiva output) per visualizzare il testo dei contenuti del log.

    Web job run details

    Per visualizzare il testo dell'output in una finestra del browser separata, selezionare download. Per scaricare il testo stesso, fare clic con il pulsante destro del mouse su download e usare le opzioni del browser in uso per salvare il contenuto del file.

  4. Selezionare il collegamento del percorso Processi Web nella parte superiore della pagina per passare a un elenco di processi Web.

    WebJob breadcrumb

    List of WebJobs in history dashboard

Passaggi successivi

Azure WebJobs SDK può essere usato con Processi Web per semplificare diverse attività di programmazione. Per ulteriori informazioni, vedere Definizione dell'SDK di Processi Web.