Inviare, ricevere ed elaborare in batch i messaggi nelle app per la logica di Azure
Si applica a: App per la logica di Azure (a consumo e standard)
Per inviare ed elaborare messaggi in modo specifico come gruppi, è possibile creare una soluzione di invio in batch. Questa soluzione raccoglie i messaggi in un batch e attende fino a quando i criteri specificati non vengono soddisfatti prima di rilasciare ed elaborare i messaggi in batch. L'invio in batch può ridurre la frequenza con cui l’app per la logica elabora i messaggi.
Questa guida pratica illustra come creare una soluzione di invio in batch creando due app per la logica all'interno della stessa sottoscrizione di Azure, area di Azure e in questo ordine:
L’app per la logica "che riceve il batch", che accetta e raccoglie i messaggi in un batch fino a quando non vengono soddisfatti i criteri specificati per il rilascio e l'elaborazione dei messaggi. Assicurarsi di creare prima questo ricevitore batch in modo che sia possibile selezionare successivamente la destinazione batch quando si crea il mittente del batch.
Una o più app per la logica "mittenti del batch", che inviano i messaggi al ricevitore del batch creato in precedenza.
Il mittente del batch può specificare una chiave univoca che partiziona o divide il batch di destinazione in subset logici, in base a tale chiave. Ad esempio, un numero cliente è una chiave univoca. In questo modo, l'app ricevente può raccogliere tutti gli elementi con la stessa chiave ed elaborarli contemporaneamente.
Il destinatario del batch e il mittente batch devono condividere la stessa sottoscrizione di Azure e la stessa area di Azure. In caso contrario, è possibile selezionare il ricevitore del batch quando si crea il mittente del batch perché non sono visibili tra loro.
Prerequisiti
Account e sottoscrizione di Azure. Se non si ha una sottoscrizione, è possibile iscriversi per creare un account Azure gratuito.
Un account di posta elettronica con un provider di posta elettronica supportato da App per la logica di Azure
Importante
Se si vuole usare il connettore Gmail, solo gli account G Suite Business possono usare questo connettore senza restrizioni nelle app per la logica. Se si dispone di un account Gmail consumer, è possibile usare questo connettore solo con servizi approvati da Google specifici oppure è possibile creare un'app client Google da usare per l'autenticazione con il connettore Gmail. Per altre informazioni, vedere Informative sulla privacy e sulla sicurezza dei dati per i connettori Google in App per la logica di Azure.
Conoscenze di base dei flussi di lavoro dell'app per la logica
Per usare Visual Studio Code anziché il portale di Azure, assicurarsi di configurare Visual Studio Code per l'uso di App per la logica di Azure.
Limiti
È possibile controllare il contenuto in un batch solo dopo il rilascio confrontando il contenuto rilasciato con l'origine.
È possibile rilasciare un batch solo in anticipo modificando i criteri di rilascio nel ricevitore batch, descritto in questa guida, mentre il trigger ha ancora il batch. Tuttavia, il trigger usa i criteri di rilascio aggiornati per eventuali messaggi non inviati.
Creare il ricevitore del batch
Prima di poter inviare messaggi a un batch, il batch deve esistere come destinazione in cui si inviano i messaggi. Prima di tutto, è necessario creare il flusso di lavoro dell'app per la logica "ricevitore batch", che inizia con il trigger batch. In questo modo, quando si crea il flusso di lavoro dell'app per la logica "mittente batch", è possibile selezionare il flusso di lavoro dell'app per la logica del ricevitore batch. Il ricevitore del batch continua a raccogliere i messaggi fino a quando non vengono soddisfatti i criteri specificati per il rilascio e l'elaborazione dei messaggi. Anche se non è necessario che i ricevitori di batch conoscano i mittenti di batch, i mittenti di batch devono conoscere la destinazione in cui inviano i messaggi.
Nella portale di Azure creare una risorsa dell'app per la logica con un flusso di lavoro vuoto.
Questo esempio crea un'app per la logica del ricevitore batch e un flusso di lavoro denominato BatchReceiver.
Nella finestra di progettazione del flusso di lavoro selezionare Aggiungi un trigger e seguire questa procedura generale per aggiungere il trigger Operazioni batch denominato Trigger batch.
Impostare le proprietà del trigger seguenti:
Proprietà Descrizione Modalità
(solo flussi di lavoro a consumo)- Inline: per definire i criteri di rilascio all'interno del trigger batch
- Account di integrazione: per definire più configurazioni dei criteri di rilascio tramite un account di integrazione. Con un account di integrazione, è possibile gestire tutte queste configurazioni in un'unica posizione anziché in risorse separate dell'app per la logica.Nome batch Nome del batch. In Flussi di lavoro a consumo questa proprietà viene visualizzata solo quando Mode è impostato su Inline. In questo esempio viene usato TestBatch. Criteri di rilascio Criteri da soddisfare prima dell'elaborazione di ogni batch. Per impostazione predefinita, il trigger batch funziona usando la "modalità inline" in cui si definiscono i criteri di rilascio batch all'interno del trigger batch.
- Basato sul numero di messaggi: rilasciare il batch in base al numero di messaggi raccolti dal batch.
- Basato sulle dimensioni: rilasciare il batch in base alle dimensioni totali in byte per tutti i messaggi raccolti da tale batch.
- Pianificazione basata su: rilasciare il batch in base a una pianificazione di ricorrenza, che specifica un intervallo e una frequenza. Facoltativamente, è possibile selezionare un fuso orario e specificare una data e un'ora di inizio.
Per usare tutti i criteri specificati, selezionare tutte le opzioni.Numero di messaggi Il numero di messaggi da raccogliere nel batch, ad esempio 10 messaggi. Il limite di messaggi batch è di 8.000 messaggi. Dimensioni del batch Dimensione totale dei byte per i messaggi da raccogliere nel batch, ad esempio 10 MB. Il limite di dimensioni del batch è 80 MB. Ricorrenza Intervallo e frequenza tra i rilasci di batch, ad esempio 10 minuti. La ricorrenza minima è di 60 secondi o 1 minuto. I valori frazionari dei minuti vengono arrotondati per eccesso a 1 minuto. Facoltativamente, è possibile selezionare un fuso orario e specificare una data e un'ora di inizio. Nota
Se si modificano i criteri di rilascio quando il trigger ha elaborato i messaggi in batch ma non li ha ancora inviati, il trigger usa i criteri di rilascio aggiornati per gestire i messaggi non inviati.
Questo esempio mostra tutti i criteri, ma è sufficiente provarne uno solo a scopo di test:
Ora aggiungere una o più azioni che elaborano ogni batch.
Per questo esempio, aggiungere un'azione che invii un messaggio di posta elettronica quando viene attivato il trigger batch. Il trigger viene eseguito e invia un messaggio di posta elettronica quando il batch ha 10 messaggi, raggiunge i 10 MB o dopo 10 minuti.
Nel trigger batch selezionare il segno più (+) Aggiungi >un'azione.
Seguire questi passaggi generali per aggiungere un'azione che invia un messaggio di posta elettronica in base al provider di posta elettronica.
Ad esempio, se si dispone di un account aziendale o dell'istituto di istruzione, ad esempio @fabrikam.com o @fabrikam.onmicrosoft.com, selezionare il connettore Microsoft 365 Outlook . Se si dispone di un account personale, ad esempio @outlook.com o @hotmail.com, selezionare il connettore Outlook.com . In questo esempio viene utilizzato il connettore Microsoft 365 Outlook.
Se richiesto, accedere all'account di posta elettronica.
Impostare le proprietà dell'azione seguenti:
Nella casella A immettere l'indirizzo di posta elettronica del destinatario. AI fini del test delle app è possibile indicare il proprio indirizzo di posta elettronica.
Selezionare all'interno della casella Oggetto per visualizzare le opzioni per l'elenco di contenuto dinamico (icona a forma di fulmine) e l'editor di espressioni (icona funzione). Selezionare l'icona a forma di fulmine per aprire l'elenco di contenuto dinamico e selezionare il campo denominato Nome partizione.
Più avanti, per il mittente del batch, si specificherà una chiave di partizione univoca che divide il batch di destinazione in subset logici a cui è possibile inviare i messaggi. Ogni set ha un numero univoco generato dal flusso di lavoro dell'app per la logica del mittente batch. Questa funzionalità consente di usare un unico batch con più subset e di assegnare a ogni subset il nome desiderato.
Importante
Una partizione ha un limite di 5.000 messaggi o di 80 MB. Se viene soddisfatta una delle due condizioni, App per la logica di Azure potrebbe rilasciare il batch, anche quando la condizione di rilascio definita non viene soddisfatta.
Selezionare all'interno della casella Corpo , selezionare l'icona a forma di fulmine per aprire l'elenco di contenuto dinamico e selezionare il campo Id messaggio.
La finestra di progettazione del flusso di lavoro aggiunge automaticamente un ciclo For ogni intorno all'azione invia messaggio di posta elettronica perché tale azione considera l'output dell'azione precedente come una raccolta, anziché un batch.
Nell'esempio seguente viene illustrato il riquadro informazioni dopo aver selezionato la casella For each title (For each title) nella finestra di progettazione in cui Batched Items è il nome della raccolta:
Salvare il flusso di lavoro. È stato creato un ricevitore di batch.
Importante
Se si usa Visual Studio Code, prima di continuare con la sezione successiva, assicurarsi di distribuire prima la risorsa dell'app per la logica ricevitore batch in Azure. In caso contrario, non è possibile selezionare il flusso di lavoro dell'app per la logica del ricevitore batch quando si crea il flusso di lavoro dell'app per la logica del mittente batch.
Creare il mittente dei batch
Creare ora uno o più flussi di lavoro dell'app per la logica del mittente batch che inviano messaggi al flusso di lavoro dell'app per la logica del ricevitore batch. In ogni mittente del batch specificare il ricevitore del batch e il nome del batch, il contenuto del messaggio ed eventuali altre impostazioni. È possibile specificare anche una chiave di partizione univoca per dividere il batch in subset logici per raccogliere gli elementi a cui è assegnata tale chiave.
Assicurarsi di aver creato e distribuito in precedenza il ricevitore batch in modo che quando si crea il mittente del batch, è possibile selezionare il ricevitore batch esistente come batch di destinazione. Anche se non è necessario che i ricevitori di batch conoscano i mittenti di batch, i mittenti di batch devono conoscere la destinazione in cui inviano i messaggi.
Assicurarsi che il destinatario del batch e il mittente batch convidano la stessa area di Azure e la stessa sottoscrizione di Azure. In caso contrario, è possibile selezionare il ricevitore del batch quando si crea il mittente del batch perché non sono visibili tra loro.
Creare un'altra risorsa dell'app per la logica e un flusso di lavoro denominato BatchSender.
Nota
Se si dispone di una risorsa dell'app per la logica Standard, assicurarsi di creare un flusso di lavoro con stato, non un flusso di lavoro senza stato perché il trigger Ricorrenza non è disponibile per i flussi di lavoro senza stato.
Seguire questi passaggi generali per aggiungere il trigger Pianifica denominato Ricorrenza.
In questo esempio viene impostato l'intervallo e la frequenza per eseguire il flusso di lavoro del mittente ogni minuto.
Aggiungere una nuova azione per l'invio di messaggi a un batch.
Nel trigger Ricorrenza selezionare il segno più (+) segno >Aggiungi nuova azione.
In base al fatto che si disponga di un flusso di lavoro a consumo o di un flusso di lavoro Standard, seguire la procedura corrispondente:
Flusso di lavoro A consumo
Dopo aver aggiunto l'azione Invia al flusso di lavoro trigger batch, viene visualizzato un elenco che mostra solo le risorse dell'app per la logica con trigger batch presenti nella stessa sottoscrizione di Azure e nella stessa area di Azure della risorsa dell'app per la logica del mittente batch.
Nell'elenco delle app per la logica selezionare l'app per la logica creata in precedenza da usare come ricevitore batch. Quando vengono visualizzati i trigger disponibili, selezionare il trigger denominato Batch_messages.
Importante
Se si usa Visual Studio Code e non vengono visualizzati ricevitori batch da selezionare, verificare che il ricevitore batch sia stato creato e distribuito in precedenza in Azure. In caso contrario, informazioni su come distribuire la risorsa dell'app per la logica del ricevitore batch in Azure.
Al termine, selezionare Aggiungi azione.
Flusso di lavoro Standard
Dopo aver aggiunto l'azione Invia al batch , il riquadro azioni mostra le proprietà seguenti nel passaggio successivo per specificare il nome del batch, il contenuto del messaggio, il nome del flusso di lavoro e il nome del trigger. È possibile specificare informazioni solo per un flusso di lavoro dell'app per la logica del ricevitore batch con un trigger batch presente nella stessa sottoscrizione di Azure e nella stessa area di Azure dell'app per la logica del mittente batch.
Impostare le proprietà dell'azione ricevitore batch seguenti:
Proprietà Descrizione Nome batch Nome del batch definito dall'app per la logica ricevente, che è TestBatch in questo esempio
Importante: il nome del batch viene convalidato in fase di esecuzione e deve corrispondere al nome specificato dall'app per la logica del ricevitore batch. Se si modifica il nome del batch, l'esecuzione del mittente del batch ha esito negativo.Contenuto del messaggio Contenuto del messaggio da inviare. Vedere l'esempio seguente per il valore da usare. Nome flusso di lavoro
(solo flussi di lavoro Standard)Nome del flusso di lavoro con il trigger batch. Nome trigger Nome del trigger batch nel flusso di lavoro dell'app per la logica del ricevitore batch. In Flussi di lavoro a consumo questo valore viene popolato automaticamente dall'app per la logica del ricevitore batch selezionata. ID flusso di lavoro ID per il flusso di lavoro con il flusso di lavoro dell'app per la logica del ricevitore del trigger batch. In Flussi di lavoro a consumo questo valore viene popolato automaticamente dall'app per la logica del ricevitore batch selezionata. In questo esempio, per il valore della proprietà Contenuto messaggio, aggiungere l'espressione seguente, che inserisce la data e l'ora correnti nel contenuto del messaggio inviato al batch:
Selezionare all'interno della casella Contenuto messaggio per visualizzare le opzioni per il contenuto dinamico (icona a forma di fulmine) e l'editor di espressioni (icona della funzione).
Selezionare l'icona della funzione per aprire l'editor di espressioni.
Nell'editor immettere la funzione denominata utcnow() e selezionare Aggiungi.
Flusso di lavoro A consumo
Flusso di lavoro Standard
Configurare a questo punto una partizione per il batch.
Nel riquadro azione mittente batch selezionare le proprietà seguenti nell'elenco Parametri avanzati :
Proprietà Descrizione Nome della partizione Chiave di partizione univoca facoltativa da usare per dividere il batch di destinazione in subset logici e raccogliere messaggi in base a tale chiave.
Per questo esempio, vedere i passaggi seguenti per aggiungere un'espressione che genera un numero casuale compreso tra uno e cinque.Id del messaggio Identificatore di messaggio facoltativo che è un identificatore univoco globale generato (GUID) quando vuoto. Per questo esempio, lasciare vuoto questo valore. Selezionare all'interno della casella Nome partizione e selezionare l'opzione per l'editor di espressioni (icona della funzione).
Nell'editor di espressioni immettere la funzione rand(1,6) e selezionare Aggiungi.
Questo esempio genera un numero compreso tra uno e cinque. Di conseguenza, si divide questo batch in cinque partizioni numerate, che questa espressione imposta dinamicamente.
Al termine, il flusso di lavoro del mittente batch è ora simile all'esempio seguente, in base al tipo di flusso di lavoro dell'app per la logica:
Flusso di lavoro A consumo
Flusso di lavoro Standard
Salvare il flusso di lavoro.
Testare i flussi di lavoro
Per testare la soluzione di invio in batch, lasciare in esecuzione i flussi di lavoro dell'app per la logica per alcuni minuti. Si inizierà presto a ricevere messaggi di posta elettronica a gruppi di cinque, tutti con la stessa chiave di partizione.
L'app per la logica del mittente batch viene eseguita ogni minuto e genera un numero casuale compreso tra uno e cinque. Il mittente del batch usa questo numero casuale come chiave di partizione per il batch di destinazione in cui si inviano i messaggi. Ogni volta che il batch contiene cinque elementi con la stessa chiave di partizione, l'app per la logica ricevente il batch si attiva e invia posta elettronica per ogni messaggio.
Importante
Al termine dei test, assicurarsi di disabilitare o eliminare il flusso di lavoro dell'app per la logica BatchSender per interrompere l'invio di messaggi ed evitare l'overload della posta in arrivo.