Gegevens Transformatie
In de huidige wereld waarin gegevens van de ene plaats naar de andere worden verzonden, is het goed om volledige controle over je gegevens te hebben. Je wilt en moet volledige controle over je gegevens hebben en niet met een derde partij interageren, omdat dit kan leiden tot een datalek.
Stel je voor dat je elke maand een pdf ontvangt die je automatisch wilt transformeren, strippen en opslaan in de doelbestemming van jouw keuze. De daadwerkelijke transformatie wordt uitgevoerd met een Python-script. Dankzij Docker is het mogelijk om deze Python in een Docker te plaatsen en te integreren in je landschap via een CI/CD-pipeline in Devops of Github.
We gaan uitleggen hoe we dit hebben gedaan met behulp van Docker en Azure-componenten.
Houd er rekening mee dat het belangrijk is om je componenten correct te configureren. Deze configuratie definieert een CI/CD (Continuous Integration/Continuous Deployment) pipeline voor het bouwen, implementeren en configureren van een Azure Function App met behulp van Docker-containers.
De pipeline is gedefinieerd in een YAML-bestand en bestaat uit meerdere fasen die sequentieel worden uitgevoerd. Elke fase heeft specifieke taken en opdrachten om het proces van het bouwen van een Docker-image, het pushen naar een Azure Container Registry (ACR), het implementeren naar een Azure Function App en vervolgens het configureren van de benodigde toegang en instellingen te automatiseren.
De infrastructuur kan worden ingezet via een aangepast Bicep-bestand.
Stap 1 Pipeline
Diverse variabelen zijn gedefinieerd om waarden op te slaan zoals Docker-registerreferenties, naam van de image-repository, Azure-abonnementsgegevens en namen van resourcegroepen. Deze variabelen, opgeslagen in een keyvault, worden door de hele pipeline gebruikt om hardcodering te vermijden en flexibiliteit te bieden.
Build Fase
Bouw Docker Image: Gebruikt de Docker@2-taak om het Docker-image te bouwen vanuit het Dockerfile in de broncode-directory. Push Docker Image naar ACR: Pusht het gebouwde Docker-image naar de Azure Container Registry (ACR) met behulp van de Docker@2-taak.
Bouw het Docker Image:
Push het Docker Image naar ACR:
Implementatie Fase
Controleer het bestaan van de Azure Function App: Gebruikt de AzureCLI@2-taak om Azure CLI-opdrachten uit te voeren om te controleren of de Azure Function App al bestaat. Maak Azure Function App: Als de Function App niet bestaat, maakt deze een nieuwe aan in de opgegeven resourcegroep. Wijs Docker Image toe aan Function App: Stelt de Function App in om het Docker-image van de ACR te gebruiken.
Configuratie Fase
Stel Function App Container-instellingen in: Configureert de Function App om het Docker-containerimage van de ACR te gebruiken met behulp van de AzureCLI@2-taak met az functionapp config container set.
Wijs IAM Rollen toe Fase
Wijs IAM Rollen toe: Wijst de juiste Identity and Access Management (IAM) rollen toe aan de resources om de juiste toegangsrechten te waarborgen.
Deze YAML-configuratie definieert een volledige CI/CD-pipeline die een Docker-image bouwt voor een Azure Function, deze pusht naar een containerregister, implementeert naar een Azure Function App, de app configureert en de benodigde machtigingen instelt. Het automatiseert het proces van het bouwen, implementeren en beveiligen van een serverloze applicatie in een gecontaineriseerde omgeving op Azure.
Dit proces kan helpen bij elke gegevens transformatie.
Verbind een frontend met de API
Nu het API-endpoint live is, kunnen we rechtstreeks verbinding maken met het endpoint. Het endpoint is beveiligd met een Bearer Token met een Refresh Token-functie.
Alleen wanneer je een geldig account hebt en bent ingelogd, kun je dit hier proberen: