843 messaggi dal 08 aprile 2009
Ho bisogno di un confronto sulle azure function non essendomi mai approciata a questo discorso.
Spiego le funzionalità che dovrei integrare nel mio portale sviluppato con asp.net core mvc pubblicato su un'app service di Azure.


Devo integrare dei processi che dovranno elaborare sostanzialmente delle code o che dovranno fare pulizia nelle sottoscrizioni disdette da tot tempo e quindi:
- elaborazione della coda send mail (l'invio lo faccio con un nostro SMTP)
- elaborazione della coda per l'aggiornamento dei piani
- elaborazione temporizzata per pulire i dati in linea delle sotoscrizioni disdette

Ho studiato i vai event trigger messi a disposizione dalle Azure Function.
Per le elaborazioni temporizzate è abbastanza semplice perchè devo creare un TimerTrigger e fino a qui è tutto chiaro.

Per le code e in particolare per l'invio delle e-mail pensavo di creare nello storage account già presente e utilizzato con i blog storage l'elemento Queque per gestire le code. Qui salverei solo l'id di riferimento (guid) alla tabella del db dove ci sono i dettagli della mail che dopo deve essere inviata.

A questo punto per far eseguire la function cosa deve generare? Cioè per far attivare l'evento che c'è un elemento in coda da elaborare devo creare una function di tipo? Queque Trigger?

Altro punto nel quale sono in dubbio: ci dovrebbe essere un metodo che si occupa di scrivere un record in una tabella del db il dettaglio della mail da inviare e il relativo stato e l'inserimento in queque storage del guid nella coda sendmail. Pensavo di creare anche qui una function http in modo tale che se un componente esterno all'app deve inserire delle mail da mettere in coda la logica business è centralizzata e non devo replicare il codice. Cosa mi consigliate?
Modificato da laurar181 il 21 marzo 2022 13:58 -
244 messaggi dal 22 gennaio 2017
Contributi
Il flusso che hai descritto è chiaro e corretto.
Http -> queue
Queue -> azioni
Timer -> azioni

Per scrivere sulla coda, puoi usare un output binding nella funzione che accetta un http trigger.

Mi sono dimenticato di risponderti ad altre domande? Mi sembra tutto corretto
843 messaggi dal 08 aprile 2009
Si sei stato molto chiaro anche tu :)

Ne approfitto per chiederti un altro consiglio se possibile.
Visto che devo creare più function mi conviene creare un progetto su VS unico? All'inizio lo creo vuoto e poi vado ad aggiungere le varie function da integrare o mi conviene creare dei progetti separati per ogni function?
244 messaggi dal 22 gennaio 2017
Contributi
Dipende.
La funzione dovrebbe essere scalabile e quindi andrebbe divisa per carico di lavoro.
Ma penso tu non abbia tonnellate di elaborazione e quindi potrebbero essere divise per "dominio applicativo". Nel caso descritto hai un dominio unico e quindi una funzione
843 messaggi dal 08 aprile 2009
Perdonami ma essendo la prima volta che faccio un proggetto che necessita di Azure Function sono un pò ignorante anche se mi sto documentando.

Dall'analisi di progetto per le integrazioni richieste dovrei scrivere:
- 6 http trigger
- 1 queue trigger
- 4 timer trigger

Sicuramente nell'account di azure aggiungerò una app per le funzioni.

Quindi il dubbio che mi rimane è: su visual studio devo creare un progetto per ogni function individuata (quindi 11 progetti) o posso creare un progetto unico e aggiungere le classi delle funzioni mano mano che le scrivo? Il dubbio è a livello di deploy successivo...
244 messaggi dal 22 gennaio 2017
Contributi
Un progetto solo e un deploy solo.

Ogni progetto è una functions.
Dividere il codice in più functions ti serve solo se hai necessità di scalare, diversamente, le singole funzioni. Nel tuo progetto non ha senso.
843 messaggi dal 08 aprile 2009
Tutto chiaro.

Grazie per la tua disponibilità e aiuto :)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.