Πώς μπορούμε να κάνουμε schedule ένα Job σε Azure SQL Database με τη χρήση Logic App
- Πώς ενεργοποιούμε το Unified Auditing σε Oracle Database - 7 Οκτώβριος 2024
- Τι είναι η PostgreSQL και πως κάνουμε μία πλήρης εγκατάσταση - 2 Σεπτέμβριος 2024
- Πώς ρυθμίζουμε το replication του GoldenGate ώστε να διαβάζει από το Standby του Oracle Data Guard - 2 Αύγουστος 2024
Ας πούμε ότι θα θέλαμε κάθε μέρα να στέλνουμε με email ένα report από το αποτέλεσμα ενός query σε μία βάση δεδομένων. Αυτή η διαδικασία στον SQL Server γίνεται με τη χρήση του SQL Server Agent και του Database Mail. Στις Azure SQL Databases όμως δεν υπάρχει κανένα από τα δύο.
Στις Azure SQL Databases παρόλα αυτά μπορούμε να κάνουμε schedule jobs με πολλούς τρόπους όπως με χρήση Azure Data Factory, Elastic Database Jobs και Logic Apps.
Με τα Logic Apps μπορούμε να δημιουργήσουμε ένα workflow (ροή εργασιών) που γίνεται trigger από κάποιο event ή schedule.
Στο άρθρο θα δούμε ένα παράδειγμα με τη χρήση Logic App. Θα δημιουργήσουμε ένα task που κάθε μέρα θα αποθηκεύει τα αποτελέσματα ενός query σε ένα CSV και θα το αποστέλει με Gmail (μέσω API).
Το παράδειγμα
Για αρχή συνδεόμαστε στο Azure Portal και ψάχνουμε το service Logic apps.
Επιλέγουμε Add.
Στη συνέχεια επιλέγουμε το Resource Group που θα ανήκει, το όνομα του Logic App και το Region.
Αφού δημιουργηθεί ψάχνουμε λίγο πιο κάτω την επιλογή Blank Logic App.
Στο tab All βρίσκουμε το Schedule.
Στην περίπτωση που θέλουμε αν αποτύχει η εργασία να ξαναπροσπαθήσει μετά από λίγο θα επιλέξουμε Sliding Window, αν θέλουμε σε περίπτωση αποτυχίας να τρέξει την επόμενη φορά που είναι scheduled επιλέγουμε Recurrence.
Εδώ τώρα θα επιλέξουμε Recurrence.
Διαλέγουμε Add new parameter ώστε να προστέσουμε το Start Time και το Time zone.
Στο επόμενο βήμα πάμε πάλι στο tab All και επιλέγουμε SQL Server.
Θα μας εμφανίσει διάφορα Actions, εμείς θέλουμε το Execute stored procedure (V2).
Μετά θα μας ζητήσει να βάλουμε τα στοιχεία για να συνδεθούμε στη βάση δεδομένων.
Αν πατήσουμε το Create και μας εμφανίσει αυτό το μήνυμα, σημαίνει ότι θα πρέπει να προσθέσουμε την IP του Logic App στα Firewall exceptions της Azure SQL Database.
Για να γίνει αυτό πάμε στον logical Server της βάσης, Firewalls and virtual networks, Client IP address.
Αφού προστεθεί θα δούμε ότι όταν επιλέξουμε το Create θα προχωρήσει.
Μετά επιλέγουμε το Server name και Database name με ότι δημιουργήθηκε πριν.
Διαλέγουμε το Add new parameter ώστε να προσθέσουμε την παράμετρο του query.
Στο query συμπληρώνουμε το query που θα θέλουμε να τρέχουμε κάθε φορά.
Στο επόμενο βήμα θέλουμε τα αποτελέσματα να αποθηκεύονται σε ένα CSV οπότε στο New step ψάχνουμε στο tab All το Data Operations και από εκεί το Action Create CSV table.
Εκεί πατάμε στο from και επιλέγουμε το ResultSets.
Σε αυτό το σημείο θα αναζήτήσουμε στο New step το Gmail, εκεί θα επιλέξουμε το Action Send email (V2).
Θα μας ζητήσει τότε το Gmail με pop-up του API τα στοιχεία του email που θα είναι ο αποστολέας ώστε να δώσουμε πρόσβαση στο Logic App.
Αφού συνδεθούμε και μας οδηγήσει στο Send email (V2) θα πρέπει να πάμε στο Add new parameter και να προσθέσουμε Attachments, Subject και Body. Για να προσθέσουμε το attachment θα πρέπει να πατήσουμε το add dynamic content στο Attachments Content , see more, Output.
Πλέον μπορούμε να δοκιμάσουμε την εφαρμογή επιλέγοντας Run.
(δεν ξεχνάμε να την κάνουμε Save)
θα δούμε κατευθείαν ήρθε email που περιείχε το attachment από το query της βάσης.
Στο Overview του Logic App μπορούμε να δούμε γενικές πληροφορίες όπως κάθε πότε θα τρέχει και το ιστορικό των εκτελέσεων του.