Condividi tramite


Monitorare l'integrità dei flussi di lavoro Standard in App per la logica di Azure con Controllo integrità (anteprima)

Si applica: App per la logica di Azure (Standard)

Nota

Questa funzionalità è in anteprima ed è soggetta alle Condizioni supplementari per l'utilizzo per le anteprime di Microsoft Azure.

Per consentire l'esecuzione di flussi di lavoro dell'app per la logica Standard con disponibilità e prestazioni elevate, configurare la funzionalità Controllo integrità nell'app per la logica per monitorare l'integrità del flusso di lavoro. Questa funzionalità garantisce che l'app rimanga resiliente offrendo i vantaggi seguenti:

  • Il monitoraggio proattivo consente di individuare e risolvere eventuali problemi prima che abbiano un impatto sui clienti.

  • Maggiore disponibilità grazie alla rimozione di istanze non integre dal servizio di bilanciamento del carico in Azure.

  • Ripristino automatico tramite la sostituzione di istanze non integre.

Come funziona Controllo integrità in App per la logica di Azure?

Controllo integrità è una funzionalità della piattaforma del servizio app di Azure che reindirizza le richieste da istanze non integre e le sostituisce se rimangono non integre. Per un'app per la logica Standard, è possibile specificare un percorso a un flusso di lavoro di "integrità" creato per questo scopo e per consentire alla piattaforma del servizio app di effettuare il ping a intervalli regolari. Ad esempio, l'esempio seguente mostra il flusso di lavoro minimo di base:

Screenshot che mostra il flusso di lavoro dell'app per la logica standard da usare come flusso di lavoro di integrità.

Dopo aver abilitato Controllo integrità, la piattaforma del servizio app effettua il ping del percorso del flusso di lavoro specificato per tutte le istanze dell'app per la logica a intervalli di 1 minuto. Se l'app per la logica richiede un aumento, Azure crea immediatamente una nuova istanza. La piattaforma del servizio app esegue di nuovo il ping del percorso del flusso di lavoro per assicurarsi che la nuova istanza sia pronta.

Se un flusso di lavoro in esecuzione in un'istanza non risponde al ping dopo 10 richieste, la piattaforma del servizio app determina che l'istanza non è integra e rimuove l'istanza per tale app per la logica specifica dal servizio di bilanciamento del carico in Azure. Con un minimo di due richieste, è possibile specificare il numero necessario di richieste non riuscite per determinare che un'istanza non è integra. Per altre informazioni su come eseguire l’override del comportamento predefinito, vedere Configurazione: Monitorare le istanze del servizio app usando Controllo integrità.

Dopo aver rimosso l'istanza non integra, la funzionalità continua a eseguire il ping dell'istanza. Se l'istanza risponde con un codice di stato integro compreso tra 200 e 299 (estremi inclusi), Controllo integrità restituisce l'istanza al servizio di bilanciamento del carico. Tuttavia, se l'istanza rimane non integra per un'ora, Controllo integrità la sostituisce con una nuova. Per altre informazioni, vedere Operazioni eseguite dal servizio app con i controlli di integrità

Prerequisiti

  • Account e sottoscrizione di Azure. Se non si ha una sottoscrizione, è possibile iscriversi per creare un account Azure gratuito.

  • Una risorsa dell'app per la logica Standard con gli attributi seguenti:

    • Un piano di servizio app ridimensionato a due o più istanze.

    • Un flusso di lavoro "integrità" che esegue specificamente il controllo integrità e gli elementi seguenti:

      • Inizia con il trigger di Richiesta denominato Quando viene ricevuta una richiesta HTTP.

      • Include l'azione Richiesta denominata Risposta. Impostare questa azione per restituire un codice di stato compreso tra 200 e 299.

      È anche possibile fare in modo che questo flusso di lavoro esegua altri controlli per assicurarsi che i servizi dipendenti siano disponibili e funzionino come previsto. Come procedura consigliata, assicurarsi che il percorso DI Controllo integrità monitori i componenti critici nel flusso di lavoro. Ad esempio, se l'app dipende da un database e da un sistema di messaggistica, assicurarsi che Controllo integrità possa accedere a tali componenti.

Limiti

  • La lunghezza del percorso specificato deve contenere meno di 65 caratteri.

  • Le modifiche nel percorso specificato per Controllo integrità causano il riavvio dell'app per la logica. Per ridurre l'impatto sulle app di produzione, configurare e usare gli slot di distribuzione.

  • Controllo integrità non segue reindirizzamenti per il codice di stato 302, quindi è consigliabile evitare i reindirizzamenti e assicurarsi di selezionare un percorso valido esistente nell'app.

Configurare Controllo di integrità

  1. Nel portale di Azure, passare alla risorsa dell’app per la logica Standard.

  2. Nel menu dell'app per la logica, selezionare Diagnostica e risoluzione dei problemi.

  3. Nella pagina Diagnostica e risoluzione dei problemi, nella casella di ricerca trovare e selezionare la funzionalità Controllo integrità.

    Screenshot che mostra il portale di Azure, la pagina di Diagnostica e risoluzione problemi, la casella di ricerca con il controllo integrità immesso e l'opzione per la funzionalità Controllo integrità selezionata.

  4. Nella sezione Funzionalità Controllo integrità, selezionare Visualizza soluzione.

  5. Nel riquadro visualizzato, selezionare Configura e abilita la funzionalità Controllo integrità.

  6. Nella scheda Controllo integrità, accanto a Controllo integrità, selezionare Abilita.

  7. In Percorso probe di integrità, nella casella Percorso, immettere un percorso URL valido per il flusso di lavoro, ad esempio:

    /api/{workflow-name}/triggers/{request-trigger-name}/invoke?api-version=2022-05-01

  8. Salva le modifiche. Sulla barra degli strumenti selezionareSave (Salva).

  9. Nella risorsa dell'app per la logica, aggiornare il file host.json seguendo questa procedura:

    1. Nel menu dell'app per la logica, in Strumenti di sviluppo, selezionare Strumenti avanzati>Go.

    2. Sulla barra degli strumenti KuduPlus, scegliere CMD nel menu Console di debug.

    3. Passare alla cartella site/wwwroot e, accanto al file host.json, selezionare Modifica.

    4. Nell'editor di file host.json, aggiungere la proprietà Workflows.HealthCheckWorkflowName e il nome del flusso di lavoro di integrità per abilitare l'autenticazione e l'autorizzazione del controllo integrità, ad esempio:

      "extensions": {
          "workflow": {
              "settings": {
                  "Workflows.HealthCheckWorkflowName" : "{workflow-name}"
              }
          }
      }
      
    5. Al termine, selezionare Salva.

Risoluzione dei problemi

Dopo aver impostato il percorso di integrità, il flusso di lavoro di integrità non viene attivato.

  1. Nel menu dell'app per la logica, selezionare Diagnostica e risoluzione dei problemi.

  2. In Categorie di risoluzione dei problemi, selezionare Disponibilità e prestazioni.

    Screenshot che mostra il portale di Azure, la pagina per la Diagnostica e risoluzione dei problemi e l'opzione selezionata per Disponibilità e prestazioni.

  3. Trovare ed esaminare la sezione relativa al codice di stato.

    Se il codice di stato è 401, controllare gli elementi seguenti:

    • Verificare che la proprietà Workflow.HealthCheckWorkflowName e il nome del flusso di lavoro di integrità siano visualizzati correttamente.

    • Verificare che il percorso specificato corrisponda al flusso di lavoro e al nome del trigger di Richiesta .

Problemi di integrità comuni

La risorsa dell'app per la logica non ha flussi di lavoro, ma la risorsa viene comunque ridimensionata in più istanze, che comportano costi.

Questo comportamento può verificarsi se la risorsa dell'app per la logica non è integra o in genere quando la risorsa non può accedere all'account di archiviazione associato. Provare a verificare se l'account di archiviazione ha un'impostazione di rete che blocca l'accesso o se si dispone di criteri firewall di rete che bloccano l'accesso.

La risorsa dell'app per la logica include flussi di lavoro, ma non sono in esecuzione o in esecuzione molto. Tuttavia, la risorsa viene comunque ridimensionata in più istanze, che comportano costi.

  1. Controllare se la risorsa può accedere all'account di archiviazione associato.

    Ad esempio, l'account di archiviazione ha un'impostazione di rete che blocca l'accesso? Si dispone di un criterio firewall di rete che blocca l'accesso?

  2. Se il flusso di lavoro inizia con un trigger basato su provider di servizi, assicurarsi che il trigger funzioni correttamente come previsto.

    • Un trigger basato su provider di servizi non riuscito potrebbe creare un ridimensionamento non necessario, che può aumentare notevolmente i costi.

      Ad esempio, una supervisione comune consiste nell'impostare un trigger senza concedere all'app per la logica l'autorizzazione o l'accesso alla destinazione, ad esempio una coda bus di servizio, un contenitore BLOB di archiviazione e così via.

    • Assicurarsi di monitorare questi trigger in qualsiasi momento, in modo che sia possibile rilevare e risolvere tempestivamente eventuali problemi.

Il flusso di lavoro interrompe in modo intermittente l'elaborazione dei messaggi per ore, ma viene eseguito correttamente la maggior parte delle altre volte.

Se l'app per la logica Standard usa l'opzione di hosting denominata Piano di servizio flusso di lavoro e non è ospitata in un ambiente del servizio app, assicurarsi che Il monitoraggio della scalabilità di runtime sia attivato e che le istanze Always Ready siano impostate su almeno 1.

  1. Nella portale di Azure trovare e aprire l'app per la logica, se non è già aperta.

  2. Nel menu dell'app per la logica, in Impostazioni, selezionare Configurazione.

  3. Nella scheda Impostazioni del runtime del flusso di lavoro, accanto a Monitoraggio scalabilità di runtime, selezionare .

  4. Sulla barra degli strumenti della pagina Configurazione selezionare Salva.

  5. Nel menu dell'app per la logica, in Impostazioni selezionare Scale out (piano servizio app).

  6. In Scalabilità orizzontale delle app verificare che il valore Istanze sempre pronte non sia impostato su 0.