Sottoscrivere e attendere che gli eventi eseguano flussi di lavoro usando webhook HTTP in App per la logica di Azure

Si applica a: App per la logica di Azure (consumo + standard)

Anziché usare un trigger che controlla o esegue regolarmente il polling di un endpoint di servizio o un'azione che chiama tale endpoint, è possibile usare un trigger o un'azione Webhook HTTP che sottoscrive un endpoint del servizio, attende eventi specifici ed esegue azioni specifiche nel flusso di lavoro.

Ecco alcuni flussi di lavoro basati su webhook di esempio:

  • Attendere l'arrivo di un evento da Hub eventi di Azure prima di attivare un'esecuzione del flusso di lavoro.
  • Attendere un'approvazione prima di continuare un flusso di lavoro.

Questa guida illustra come usare il trigger Webhook HTTP e l'azione webhook in modo che il flusso di lavoro possa ricevere e rispondere agli eventi in un endpoint di servizio.

Come funzionano i webhook?

Un trigger webhook è basato su eventi, che non dipende dal controllo o dal polling regolarmente per nuovi dati o eventi. Dopo aver aggiunto un trigger webhook a un flusso di lavoro vuoto e quindi salvare il flusso di lavoro oppure dopo aver riabilitare una risorsa dell'app per la logica disabilitata, il trigger webhook sottoscrive l'endpoint di servizio specificato registrando un URL di callback con tale endpoint. Il trigger attende quindi che l'endpoint del servizio chiami l'URL, che attiva il trigger e avvia il flusso di lavoro. Analogamente al trigger Di richiesta, viene attivato immediatamente un trigger webhook. Il trigger webhook rimane inoltre sottoscritto all'endpoint del servizio, a meno che non si eseguano manualmente le azioni seguenti:

  • Modificare i valori dei parametri del trigger.
  • Eliminare il trigger e quindi salvare il flusso di lavoro.
  • Disabilitare la risorsa dell'app per la logica.

Analogamente al trigger webhook, funziona anche un'azione webhook. Dopo aver aggiunto un'azione webhook a un flusso di lavoro esistente e quindi salvare il flusso di lavoro oppure dopo aver riabilitare una risorsa dell'app per la logica disabilitata, l'azione webhook sottoscrive l'endpoint di servizio specificato registrando un URL di callback con tale endpoint. Quando il flusso di lavoro viene eseguito, l'azione webhook sospende il flusso di lavoro e attende che l'endpoint del servizio chiami l'URL prima che il flusso di lavoro venga ripreso. Un'azione webhook annulla la sottoscrizione dall'endpoint di servizio quando si verificano le condizioni seguenti:

  • L'azione webhook viene completata correttamente.
  • L'esecuzione del flusso di lavoro viene annullata durante l'attesa di una risposta.
  • Prima del timeout di un flusso di lavoro.
  • È possibile modificare i valori dei parametri di azione webhook usati come input da un trigger webhook.

Ad esempio, l'azione Invia messaggio di posta elettronica di approvazione del connettore Office 365 Outlook è un esempio di azione webhook che segue questo modello. È possibile estendere questo modello in qualsiasi servizio usando l'azione webhook.

Per altre informazioni, consultare la documentazione seguente:

Per informazioni sulla crittografia, la sicurezza e l'autorizzazione per le chiamate in ingresso all'app per la logica, ad esempio Transport Layer Security (TLS), nota in precedenza come Secure Sockets Layer (SSL) o Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), vedere Proteggere l'accesso e i dati per le chiamate in ingresso ai trigger basati su richiesta.

Riferimento tecnico Connessione or

Per altre informazioni sui parametri di trigger e azione, vedere Parametri webhook HTTP.

Prerequisiti

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

  • URL per un endpoint o un'API già distribuita che supporta il modello di sottoscrizione e annullamento della sottoscrizione del webhook per i trigger webhook nei flussi di lavoro o nelle azioni webhook nei flussi di lavoro in base alle esigenze

  • Flusso di lavoro dell'app per la logica standard o a consumo in cui si vuole attendere eventi specifici nell'endpoint di destinazione. Per iniziare con il trigger Webhook HTTP, creare un'app per la logica con un flusso di lavoro vuoto. Per usare l'azione Webhook HTTP, avviare il flusso di lavoro con qualsiasi trigger desiderato. Questo esempio usa il trigger HTTP come primo passaggio.

Aggiungere un trigger webhook HTTP

Questo trigger predefinito chiama l'endpoint di sottoscrizione nel servizio di destinazione e registra un URL di callback con il servizio di destinazione. Il flusso di lavoro attende quindi che il servizio di destinazione invii una HTTP POST richiesta all'URL di callback. Quando si verifica questo evento, il trigger viene attivato e passa tutti i dati nella richiesta insieme al flusso di lavoro.

  1. Nella portale di Azure aprire l'app per la logica Standard e il flusso di lavoro vuoto nella finestra di progettazione.

  2. Seguire questi passaggi generali per aggiungere il trigger denominato Webhook HTTP al flusso di lavoro.

    In questo esempio il trigger viene rinominato in trigger Webhook HTTP in modo che il passaggio abbia un nome più descrittivo. Inoltre, l'esempio successivamente aggiunge un'azione Webhook HTTP e entrambi i nomi devono essere univoci.

  3. Specificare i valori per i parametri del trigger webhook HTTP che si desidera usare per le chiamate di sottoscrizione e annullamento della sottoscrizione.

    Proprietà Richiesto Descrizione
    Subscription - Method Metodo da usare per la sottoscrizione all'endpoint di destinazione
    Sottoscrizione - URI URL da usare per la sottoscrizione all'endpoint di destinazione
    Subscribe - Body No Qualsiasi corpo del messaggio da includere nella richiesta di sottoscrizione. Questo esempio include l'URL di callback che identifica in modo univoco il sottoscrittore, ovvero l'app per la logica, usando l'espressione per recuperare l'URL @listCallbackUrl() di callback dell'app per la logica.
    Annullare la sottoscrizione - Metodo No Metodo da usare per annullare la sottoscrizione dall'endpoint di destinazione
    Annullare la sottoscrizione - URI No URL da usare per annullare la sottoscrizione dall'endpoint di destinazione
    Annullare la sottoscrizione - Corpo No Corpo del messaggio facoltativo da includere nella richiesta di annullamento della sottoscrizione

    Nota: questa proprietà non supporta l'uso della listCallbackUrl() funzione . Tuttavia, il trigger include e invia automaticamente le intestazioni x-ms-client-tracking-id e x-ms-workflow-operation-name, che il servizio di destinazione può usare per identificare in modo univoco il sottoscrittore.

    Nota

    Per le proprietà Unsubsubscribe - Method e Unsubscribe - URI , aggiungerle all'azione aprendo l'elenco Parametri avanzati .

    Ad esempio, il trigger seguente include i metodi, gli URI e i corpi dei messaggi da usare quando si eseguono le operazioni di sottoscrizione e annullamento della sottoscrizione.

    Screenshot shows Standard workflow with HTTP Webhook trigger parameters.

    Se è necessario usare l'autenticazione, è possibile aggiungere le proprietà Subscribe - Authentication e Unsubscribe - Authentication - Authentication . Per altre informazioni sui tipi di autenticazione disponibili per webhook HTTP, vedere Aggiungere l'autenticazione alle chiamate in uscita.

  4. Continuare a compilare il flusso di lavoro con azioni eseguite quando viene attivato il trigger.

  5. Al termine, salvare il flusso di lavoro. Sulla barra degli strumenti della finestra di progettazione seleziona Salva.

Il salvataggio del flusso di lavoro chiama l'endpoint di sottoscrizione nel servizio di destinazione e registra l'URL di callback. Il flusso di lavoro attende quindi che il servizio di destinazione invii una HTTP POST richiesta all'URL di callback. Quando si verifica questo evento, il trigger viene attivato e passa tutti i dati nella richiesta insieme al flusso di lavoro. Se questa operazione viene completata correttamente, il trigger annulla la sottoscrizione all'endpoint e il flusso di lavoro continua con l'azione successiva.

Aggiungere un'azione webhook HTTP

Questa azione predefinita chiama l'endpoint di sottoscrizione nel servizio di destinazione e registra un URL di callback con il servizio di destinazione. Il flusso di lavoro sospende e attende che il servizio di destinazione invii una HTTP POST richiesta all'URL di callback. Quando si verifica questo evento, l'azione passa tutti i dati nella richiesta insieme al flusso di lavoro. Se l'operazione viene completata correttamente, l'azione annulla la sottoscrizione dall'endpoint e il flusso di lavoro continua con l'azione successiva.

In questo esempio viene usato il trigger Webhook HTTP come primo passaggio.

  1. Nella portale di Azure aprire l'app per la logica Standard e il flusso di lavoro nella finestra di progettazione.

  2. Seguire questi passaggi generali per aggiungere l'azione denominata Webhook HTTP al flusso di lavoro.

    In questo esempio l'azione viene rinominata in azione Webhook HTTP in modo che il passaggio abbia un nome più descrittivo.

  3. Specificare i valori per i parametri dell'azione webhook HTTP, simili ai parametri del trigger webhook HTTP, che si desidera usare per le chiamate di sottoscrizione e annullamento della sottoscrizione.

    Proprietà Richiesto Descrizione
    Subscription - Method Metodo da usare per la sottoscrizione all'endpoint di destinazione
    Sottoscrizione - URI URL da usare per la sottoscrizione all'endpoint di destinazione
    Subscribe - Body No Qualsiasi corpo del messaggio da includere nella richiesta di sottoscrizione. Questo esempio include l'URL di callback che identifica in modo univoco il sottoscrittore, ovvero l'app per la logica, usando l'espressione per recuperare l'URL @listCallbackUrl() di callback dell'app per la logica.
    Annullare la sottoscrizione - Metodo No Metodo da usare per annullare la sottoscrizione dall'endpoint di destinazione
    Annullare la sottoscrizione - URI No URL da usare per annullare la sottoscrizione dall'endpoint di destinazione
    Annullare la sottoscrizione - Corpo No Corpo del messaggio facoltativo da includere nella richiesta di annullamento della sottoscrizione

    Nota: questa proprietà non supporta l'uso della listCallbackUrl() funzione . Tuttavia, l'azione include e invia automaticamente le intestazioni x-ms-client-tracking-id e x-ms-workflow-operation-name, che il servizio di destinazione può usare per identificare in modo univoco il sottoscrittore.

    Nota

    Per le proprietà Unsubsubscribe - Method e Unsubscribe - URI , aggiungerle all'azione aprendo l'elenco Parametri avanzati .

    Ad esempio, l'azione seguente include i metodi, gli URI e i corpi dei messaggi da usare quando si eseguono le operazioni di sottoscrizione e annullamento della sottoscrizione.

    Screenshot shows Standard workflow with HTTP Webhook action parameters.

  4. Per aggiungere altre proprietà dell'azione, aprire l'elenco Parametri avanzati .

    Ad esempio, se è necessario usare l'autenticazione, è possibile aggiungere le proprietà Subscribe - Authentication e Unsubscribe - Authentication - Authentication . Per altre informazioni sui tipi di autenticazione disponibili per webhook HTTP, vedere Aggiungere l'autenticazione alle chiamate in uscita.

  5. Al termine, salvare il flusso di lavoro. Sulla barra degli strumenti della finestra di progettazione seleziona Salva.

Quando viene eseguita questa azione, il flusso di lavoro chiama l'endpoint di sottoscrizione nel servizio di destinazione e registra l'URL di callback. Il flusso di lavoro sospende e attende che il servizio di destinazione invii una HTTP POST richiesta all'URL di callback. Quando si verifica questo evento, l'azione passa tutti i dati nella richiesta insieme al flusso di lavoro. Se l'operazione viene completata correttamente, l'azione annulla la sottoscrizione dall'endpoint e il flusso di lavoro continua con l'azione successiva.

Output di trigger e azioni

Di seguito sono riportate altre informazioni sugli output di un trigger o un'azione webhook HTTP, che restituisce queste informazioni:

Nome della proprietà Type Descrizione
intestazioni oggetto Intestazioni della richiesta
corpo oggetto Oggetto con il contenuto del corpo della richiesta
codice di stato int Codice di stato della risposta
Codice di stato Descrizione
200 OK
202 Accettata
400 Richiesta non valida
401 Non autorizzata
403 Non consentito
404 Non trovato
500 Errore interno del server. Si è verificato un errore sconosciuto.

Passaggi successivi