Veel organisaties zijn bezig met de digitale transformatie. Dit gaat niet zonder slag of stoot en kent een aantal uitdagingen. Processen automatiseren, bedrijfskritische applicaties verhuizen naar de cloud, gegevens online delen met collega’s, klanten en partners, etc. Als je al deze uitdagingen van begin af aan moet programmeren en ontwikkelen, is dit behoorlijk arbeidsintensief en vooral ook duur. Gelukkig bestaan er een aantal oplossingen. Eén waar ik zelf erg te spreken over ben, is Azure Logic Apps. Momenteel ben ik voor een onderwijsinstelling bezig met het implementeren van bestandsoverdracht integraties in de cloud. In deze blog licht ik toe hoe simpel dit proces eigenlijk kan zijn met Azure Logic Apps.
Wat zijn Azure Logic Apps?
Met Azure Logic Apps kunnen developers bedrijfsprocessen eenvoudig en snel automatiseren als workflows en deze implementeren in de cloud zonder zelf code te hoeven schrijven. Hierdoor is Logic Apps geschikt om het ‘laaghangende fruit’ te plukken en eenvoudige, repetitieve taken snel te automatiseren.
Met behulp van de visuele designer in Logic Apps kan je moeiteloos workflows creëren op basis van triggers en acties. Dit kan online in de Azure Portal of offline in Visual Studio. Iedere workflow begint met een trigger, welke de workflow start. Zodra de workflow is geactiveerd, worden er bepaalde acties uitgevoerd, die weer verwijzen naar een bewerking vanuit een connector. Connectors leggen verbindingen tussen Azure-services, Microsoft-services, SaaS-oplossingen en on-premise systemen. Binnen Azure Logic Apps zijn er veel verschillende kant-en-klare connectors beschikbaar voor bijvoorbeeld Dynamics 365, Salesforce, Office 365 en Dropbox. Uiteraard kan het voorkomen dat de gewenste connector niet beschikbaar is om bepaalde apps, systemen of services aan te roepen. In dat geval kun je zelf connectors maken met eigen triggers en acties. Dit kan bijvoorbeeld met Azure Functions.
Azure Logic Apps in de praktijk
Momenteel ben ik bij een van mijn klanten in het onderwijs bezig met de transitie van on-premise naar de cloud. Een aantal bestandsoverdracht integraties horen hier ook bij en dienen dus ook overgezet te worden richting Azure. Wat ik echter vaak tegenkom, en ook bij deze organisatie, is dat hiervoor tooling wordt ingezet die hier niet primair voor bedoeld is. Dit leidt tot frustraties en neemt kostbare tijd in beslag. Azure Logic Apps is de meest eenvoudige en gebruiksvriendelijke manier om dit in Azure te realiseren, mede door de ‘Designer-first’ manier van ontwikkelen.
In twee stappen naar een Logic App-oplossing
Om te benadrukken hoe simpel bestandsoverdrachten naar de cloud geautomatiseerd kunnen worden, schets ik hieronder het stappenplan. Hiervoor maak ik gebruik van de casus omtrent het implementeren van een bestandsoverdracht integratie bij een onderwijsinstelling die ik in mijn vorige blog beschreef.
1. Storage account aanmaken
Allereerst starten we met het aanmaken van een storage account, omdat dit de plek is binnen Azure waar alle data wordt opgeslagen. Dit varieert van serverless code, logging, of zoals in dit geval voor het persisteren van de input files voor de bestandsoverdracht.
Vul de gegevens van het Storage Account in, zoals Subscription, Resource Group, Storage account name, Region, Performance en Redundancy. Voor deze demo gebruik ik de goedkoopste instellingen, dus de dichtstbijzijnde regio met de laagste latency, lokale redundantie en standaardprestaties.
Vervolgens navigeer je naar ‘Containers’ binnen de zojuist aangemaakte storage account en geef je de container een Name en een Public access level.
Bestanden op de fileshare plaatsen kan eenvoudig online in de Azure Portal of offline met behulp van het programma ‘Azure Storage Explorer’. Dit standalone programma is uiterst gebruiksvriendelijk en je kan gemakkelijk de juiste rechten toekennen aan gebruikers. Mocht je deze stap willen automatiseren dan kan dat eenvoudig middels het opdrachtregelprogramma ‘AzCopy’. Dit programma is bedoeld om blobs of bestanden vanuit of naar een storage account te kopiëren.
2. Logic App creëren
Na het aanmaken van een storage account, gaan we de logic app creëren, waarin de logica voor de oplossing staat beschreven. Vervolgens zien we de Logic App Designer waarin we de trigger benoemen. In het geval van de onderwijsinstelling kiezen we voor ‘When an Event Grid resource event occurs’, mede vanwege het pay-per-use model. Daarnaast zijn de events snel en betrouwbaar.
Na aan te melden bij Azure, verschijnt de sjabloon voor de workflow. Omdat we willen dat de integratie wordt geactiveerd voor elk nieuw bestand binnen het aangemaakte storage account, kiezen we bij Resource Type voor ‘Microsoft.Storage.StorageAccounts’. Voor het Event Type kiezen we ‘BlobCreated’, omdat de workflow iedere keer getriggerd moet worden als er een nieuw bestand in de fileshare wordt geplaatst.
Verder is het in deze stap belangrijk om ook een ‘Prefix Filter’ toe te voegen om alleen gebeurtenissen te ontvangen uit de input-share folder die we hebben gemaakt. Als we dit niet zouden toevoegen, ontvangen we ook BlobCreated-triggers uit overige mappen in het storage account, wat natuurlijk niet de bedoeling is.
2a. Connector kiezen voor acties
Binnen het aanmaken van de Logic App kies je de connectoren die de acties uitvoeren. In onze casus gaat het om het ophalen en lezen van bestandsinhoud middels de ‘Get Blob Content’-connector. Vervolgens verzenden we de bestanden naar SharePoint met de bijbehorende ‘SharePoint’-connector.
That’s all! Telkens wanneer een nieuw bestand wordt ontvangen in de map ‘input-share’, wordt dit weergegeven in Microsoft Teams.
Hoewel dit er vrij simpel uitziet, moeten we cruciale onderdelen van de integratie niet over het hoofd zien. Denk hierbij aan authenticatie en autorisatie, enorme bestandsgroottes, overbelasting en beveiliging van de bestandsinhoud bij het gebruiken van een public cloud. Dit soort vraagstukken moeten zeker worden beantwoord bij het bouwen van een dergelijke integratie.