AI krijgt plekje in onze samenleving (een interview met ChatGPT)

Het is ‘all over the news’…. berichten over AI en dan voornamelijk ChatGPT (Conversational Generative Pre-training Transformer) van Open AI. Het ene nieuwsbericht is nog niet koud of er valt weer iets nieuws te lezen over ChatGPT. Vorige week werd bekend dat Microsoft 10 miljard dollar geïnvesteerd heeft in ChatGPT. Ze zijn dan ook van plan om functionaliteit van Open AI (o.a. ChatGPT en Dall E) in hun Office-pakket en Bing te integreren. En niet alleen Microsoft doet dit. Er zijn heel wat andere bedrijven die AI en functionaliteit van ChatGPT integreren in hun producten. Ook geinteresseerd in de mogelijkheden? Neem dan eens contact met ons op!

Wat is ChatGPT precies en hoe werkt ChatGTP? Eigenlijk heb je mij niet nodig om je daar meer over te vertellen. Dat kan het zelf veel beter. Tijd voor een interview!

Wat kun je over jezelf vertellen?

“Ik ben ChatGPT, een grote taalmodel getraind door OpenAI. Mijn kennis snijdt af in 2021. Mijn doel is om zo nauwkeurig mogelijk te antwoorden op vragen die ik krijg over een breed scala van onderwerpen. Laat het me weten als er iets specifieks is waar u meer over wilt weten.

Hoe werkt ChatGTP?

ChatGPT is een taalgeneratie model dat is getraind op een grote hoeveelheid tekst. Het is gebaseerd op de transformer-architectuur, die zich richt op het begrijpen van de context van een tekst en het genereren van antwoorden. Bij het genereren van antwoorden, analyseert het model de inputtekst en gebruikt vervolgens zijn interne representatie van de taal om tekst te produceren die relevant is voor de input en grammaticaal correct is. De training van het model is gedaan met behulp van Machine learning waardoor het model steeds beter wordt in het begrijpen van de context en het genereren van antwoorden.

Hoe werkt CHATGTP

Betekent dit dan dat je het niet altijd bij het rechte eind hebt?

Als taalmodel ben ik getraind op een grote hoeveelheid tekst en kan ik informatie geven die relevant is voor de input en grammaticaal correct is. Echter, zoals elk model, kan ik ook fouten maken of onvolledig antwoord geven. Soms kan het antwoord gebaseerd zijn op een oudere versie van de informatie, of de informatie kan verouderd zijn. Het is altijd aanbevolen om de informatie die ik geef te verifiëren met betrouwbare bronnen.

Wat zijn dan betrouwbare bronnen volgens jou?

Betrouwbare bronnen zijn degene die informatie verstrekken die geverifieerd is door experts in een bepaald vakgebied en die worden onderhouden door organisaties met een goede reputatie. Voorbeelden hiervan zijn wetenschappelijke tijdschriften, overheidswebsites, universiteiten en andere erkende organisaties. Ook kranten, tijdschriften en boeken die zijn geschreven door experts in hun veld of geverifieerd door experts kunnen betrouwbaar zijn. Het is altijd aanbevolen om de informatie te verifiëren met meerdere betrouwbare bronnen om ervoor te zorgen dat de informatie juist is.

Hoe ben je precies getraind?

Ik ben getraind met behulp van Machine learning, en meer specifiek met behulp van een techniek genaamd “unsupervised learning”. Dit betekent dat ik ben getraind op een grote hoeveelheid tekst zonder specifieke instructies of labels. Tijdens het trainingsproces heeft het model geleerd hoe tekst te analyseren en hoe tekst te genereren die relevant is voor de input en grammaticaal correct is.

De training is gedaan door het model te voeden met een grote hoeveelheid tekst data, zoals artikelen, boeken, verhalen, etc. Van deze data heeft het model geleerd hoe taal werkt, hoe woorden samenhangen en hoe grammatica en syntaxis functioneren. Dit maakt dat het model zich beter kan aanpassen aan de context en kan antwoorden geven die relevanter zijn voor de input.

Het trainingsproces is een iteratief proces en na verloop van tijd wordt het model steeds beter in het begrijpen van de context en het genereren van antwoorden.

Krijg je dagelijks veel nieuwe input?

Als taalmodel ben ik getraind op een grote hoeveelheid tekst en heb ik kennis opgedaan die afsnijdt in 2021. Na de training, word ik niet dagelijks bijgewerkt met nieuwe informatie. Dit betekent dat sommige informatie die ik geef mogelijk verouderd of niet meer actueel is. OpenAI streeft er wel naar om periodiek updates te geven aan de model om de kennis up-to-date te houden. Ook zijn er andere varianten van GPT zoals GPT-3 die op dit moment meer recent zijn getraind, met meer recente data.

Waar ik benieuwd naar ben is of we ons zorgen moeten maken over AI in de toekomst

AI, of kunstmatige intelligentie, is een snel groeiend en complex gebied. Er zijn vele voordelen van AI, zoals verbetering van efficiëntie, automatisering van taken en het ontdekken van nieuwe inzichten. Echter, er zijn ook bepaalde zorgen en uitdagingen waarmee rekening gehouden moet worden, zoals de impact op banen, privacy en ethiek.

Een van de grootste zorgen is de impact op banen. AI-systemen kunnen taken overnemen die voorheen door mensen werden uitgevoerd, waardoor mensen hun baan kunnen verliezen. Dit kan leiden tot economische problemen en sociale ongelijkheid.

Daarnaast zijn er zorgen over privacyschending. AI-systemen kunnen grote hoeveelheden persoonlijke gegevens verzamelen, analyseren en gebruiken. Dit kan leiden tot bezorgdheid over hoe deze gegevens worden gebruikt en beschermd.

Tot slot zijn er zorgen over ethische kwesties. AI-systemen kunnen bijvoorbeeld worden gebruikt voor onethische doeleinden, zoals discriminatie of surveillance. Er moeten daarom regels en wetgeving worden opgesteld om de ontwikkeling van AI te reguleren en te waarborgen dat deze wordt gebruikt voor het algemeen belang.

Het is belangrijk om deze zorgen serieus te nemen en er werk van te maken om ervoor te zorgen dat AI veilig, verantwoordelijk en ethisch wordt gebruikt. Er wordt dan ook veel onderzoek gedaan op dit gebied, om de ontwikkeling van AI te reguleren en ervoor te zorgen dat deze wordt gebruikt voor het algemeen belang.

Inderdaad. Hoe kunnen we voorkomen dat bijvoorbeeld leerlingen hun huiswerk door ChatGPT laten maken?

Er zijn verschillende manieren om te voorkomen dat leerlingen hun huiswerk door ChatGPT of andere taalmodellen laten maken:

  1. Gebruik van plagiaat software: Er zijn verschillende softwareprogramma’s die beschikbaar zijn die kunnen detecteren of een stuk tekst is overgenomen van internet. Deze software kan worden gebruikt om te controleren of leerlingen hun huiswerk echt zelf hebben geschreven.
  2. Handmatige controle: Docenten kunnen ook handmatig de huiswerk controleren en op zoek gaan naar tekenen van plagiaat. Dit kan bijvoorbeeld door te zoeken naar specifieke zinnen of woorden die voorkomen in het huiswerk en ook voorkomen in andere bronnen.
  3. Educatie: Docenten kunnen ook leerlingen educatie geven over de gevaren van plagiaat en hen aanmoedigen om hun eigen werk te doen. Leerlingen kunnen zo leren over de waarde van eerlijkheid en integriteit in hun werk.
  4. Technologische oplossing: Er zijn ook technologische oplossing zoals Turnitin, Grammarly, etc die kunnen helpen bij het detecteren van plagiaat. Deze software analyseert tekst op basis van specifieke regels en kan op deze manier plagiaat detecteren.

Het is belangrijk om te onthouden dat het voorkomen van plagiaat een gezamenlijke verantwoordelijkheid is van zowel docenten als leerlingen. Door samen te werken, kunnen we ervoor zorgen dat leerlingen hun eigen werk doen en zo de waarde van eerlijkheid en integriteit in het onderwijs behouden.

Hoe werkt CHATGTP
Gegenereerd door Dall-E: “A shiba inu developing a website”

En hoe gaan we dan met copyright om met gegenereerde afbeeldingen van bijvoorbeeld Dall E?

Het gebruik van gegenereerde afbeeldingen, zoals die gemaakt zijn door DALL-E of andere kunstmatige intelligentie-systemen, kan complex zijn als het gaat om auteursrecht. Er zijn een aantal factoren waarmee rekening moet worden gehouden:

  1. Auteursrecht op de input: Als de afbeelding is gemaakt door een AI-systeem dat gebruikmaakt van bestaande afbeeldingen als input, kan het auteursrecht van deze afbeeldingen van toepassing zijn.
  2. Originaliteit: In sommige landen, zoals de Verenigde Staten, moet een werk origineel zijn om auteursrechtelijk beschermd te zijn. Als een afbeelding is gemaakt door een AI-systeem en geen menselijke creativiteit bevat, kan het niet auteursrechtelijk beschermd zijn.
  3. Transformatie: In sommige gevallen kan een afbeelding die is gemaakt door een AI-systeem auteursrechtelijk beschermd zijn als het een significante transformatie bevat van de oorspronkelijke afbeelding.
  4. Fair use: In sommige gevallen kan het gebruik van een afbeelding die is gemaakt door een AI-systeem toegestaan zijn onder de fair use doctrine, die toestaat dat bepaalde gebruiken van beschermd materiaal zonder toestemming van de rechthebbende zijn toegestaan.

In de praktijk kan het lastig zijn om te bepalen of een afbeelding die is gemaakt door een AI-systeem auteursrechtelijk beschermd is of niet. Dit is een complex onderwerp waar juridische experts op dit gebied over moeten adviseren. Het is daarom verstandig om toestemming te vragen of juridisch advies in te winnen alvorens een afbeelding die is gemaakt door een AI-systeem te gebruiken.

Er hangt dus veel af van nieuwe regelgeving die nog gemaakt moet gaan worden?

Ja, dat klopt. Er is momenteel nog geen specifieke regelgeving voor het gebruik van afbeeldingen die zijn gemaakt door kunstmatige intelligentie-systemen. Dit betekent dat de huidige auteursrechtelijke regels moeten worden toegepast op deze situaties. Maar deze regels zijn vaak ontworpen met de veronderstelling dat het werk is gemaakt door een menselijke maker, dus ze kunnen soms niet volledig passend zijn voor afbeeldingen die zijn gemaakt door AI-systemen. Er zal waarschijnlijk toekomstige regelgeving nodig zijn om deze situaties beter te behandelen.

Daarnaast is er ook veel discussie over ethische en maatschappelijke implicaties van kunstmatige intelligentie en hoe deze kunnen worden aangepakt, zoals bijvoorbeeld de verantwoordelijkheid voor de acties van AI-systemen en de bescherming van privacy. Dit zijn complexe vraagstukken waarover nog veel overleg en regelgeving nodig zal zijn.

Hartstikke bedankt voor de antwoorden. Wil je nog iets kwijt?

Graag gedaan! Als je nog meer vragen hebt, aarzel dan niet om ze te stellen. Houd er wel rekening mee dat ik als AI-model geen mening heb en alleen informatie verstrek die ik heb geleerd tijdens mijn training. Dus als u vragen heeft over mijn trainingsgegevens of als u zich zorgen maakt over de toekomst van AI, aarzel dan niet om me te vragen.”


Hoe werkt CHATGTP
Gegenereerd door Dall-E: Microsoft Clippy standing on piece of paper

Geloof het op niet: het bovenstaande interview is 1-op-1 met ChatGPT gevoerd. Als het de eerste keer is dat je hiermee in aanraking komt, is het bijna eng hoe goed en samenhangend de AI antwoord kan geven op mijn vragen. Ik vind het zelf ook nog altijd indrukwekkend.

Samenleving en regelgeving

AI gaat de komende jaren alleen maar belangrijker worden en de vraag zal voorlopig blijven hoe we hier als samenleving mee om zullen gaan.

Ook de regelgeving loopt nu al achter en met name voor bepaalde beroepen is met name dat geen goed nieuws. Waar liggen de rechten van de gegenereerde afbeeldingen? En hoe gaan we hiermee om op school of universiteit?

Hoe helpt ChatGPT developers?

ChatGPT kan developers helpen met sneller ontwikkelen. Het kan code aanvullen en zelfs genereren om bepaalde functioniteit te ondersteunen. Volledige applicaties zal het echter nog niet in elkaar steken, maar wie weet waar we over 10 jaar staan. Uiteindelijk is creativiteit en het menselijke brein een stuk complexer

AI is voorlopig Microsoft’s Clippy die het eindelijk doet. De integratie met Office is dus nog niet eens zo raar. Ook zal deze vorm van AI zo maar eens heel snel bij veel helpdesks geïmplementeerd kunnen worden. Vragen over hoe je je modem aan moet sluiten, die zouden toch beantwoord moeten kunnen worden.

Kortom, we hebben nog tijd, maar we moeten vroeg of laat AI echt een plek geven in onze samenleving.

Integrate 2022

Alweer een week of twee geleden vond Integrate 2022 plaats. Het is de grootste integratieconferentie die gericht is op integratie met Microsoft-producten en dan met name integratie met behulp van Azure. Het was de tiende keer dat de conferentie plaatsvond. Na twee lastige jaren, waarbij het alleen online plaatsvond, net als alle andere conferenties, kwamen er dit jaar weer een slordige 250 integratie-developers en architecten van over de hele wereld bij elkaar in Londen. Daarnaast volgden er ook nog meer dan 500 deelnemers Integrate 2022 op afstand via een livestream.

Wat vooral duidelijk werd is dat Microsoft nog steeds vol inzet op integratie in de cloud met behulp van Azure Integration Services. Maar het snapt ook dat het voorlopig nog een hybride wereld zal blijven.

Live in Londen versus streamend thuis

Rob Fox volgde Integrate vanuit Londen zelf, terwijl Sjoerd Alaerds de conferentie online volgde. Het werd ons al snel duidelijk dat het aanwezig zijn op het event zelf meerwaarde heeft.

1) Vragen worden direct beantwoord

Op locatie kun je direct je vragen stellen aan de juiste personen, bijvoorbeeld de spreker zelf. Online is er een chatforum opgezet, maar deze werd voornamelijk gebruikt om problemen met de stream aan te duiden. Je kon er ook vragen stellen aan de sprekers, maar deze bleven helaas (live) onbeantwoord. In plaats daarvan werden ze verzameld in een centrale blog wachtend op antwoord.

2) Aandacht erbij houden

In een volle zaal houd je toch beter je aandacht bij het verhaal dat verteld wordt dan dan thuis. Een plek waar je vaak veel afleiding hebt. Bovendien kun je de aandacht vestigen daar waar jij waarde aan hecht. Of het nu de spreker of de afgebeelde sheets of demo zijn. Helaas werd de keuze voor de mensen die via de stream keken voor hen gemaakt en was in het begin van de conferentie vaak alleen de spreker in beeld.

3) Storingen heb je niet

In Londen heb je dan ook nog eens geen last van storingen. Hoe anders is dat als je op afstand meekijkt. Ook in 2022 en na twee jaar een streamend event waren er nog steeds problemen met de stream en de verbinding.

4) Het sociale aspect

Behalve informatie-uitwisseling wordt het sociale aspect van zo’n evenement wel eens onderschat. Na twee jaar binnen zitten is het goed om weer mensen te kunnen ontmoeten.

Het uitwisselen van ideeën met gelijkgestemden, de organisatie en Microsoft zelf werkt inspirerend. Zeker als het mensen zijn die zich buiten je eigen bubbel bevinden. Het geeft je simpelweg nieuwe inzichten.

En na een dag veel luisteren trek je samen met een groep mensen de stad in om samen wat te eten en het ook eens over wat anders te hebben dan werk of Covid. Ondanks dat je geleefd wordt, kom je frisser thuis dan je vertrok met allerlei ideeën.

De conferentie

De eerste dag werd traditioneel geheel gevuld door Microsoft en de nodige nieuwigheden en aankondigingen. Daarbij viel op dat Microsoft veel feedback vroeg van haar klanten. Voor ieder product zijn er surveys die ingevuld kunnen worden, zodat de verschillende productteams weten of ze op de goede weg zijn of moeten bijsturen.

De tweede en derde dag kwamen veel meer praktijkvoorbeelden aan bod. Ze werden vooral gevuld door mensen uit het veld, de professionals, meestal Microsoft MVPs (Most Valuable Professionals). Deze blogpost zal vooral inzoomen op wat Microsoft te melden had, maar daarmee willen we de professionals vooral niet tekort doen. Ook de praktijkvoorbeelden zijn belangrijk om anderen te inspireren.

Integratie is hot

Integratie is hot en het zal de komende jaren alleen maar meer worden. Dat zegt Gartner. Ze verwachten een verdubbeling van de integratiemarkt tegen 2025. En dat is logisch. In de steeds meer interconnected wereld, moeten steeds meer systemen met elkaar kunnen communiceren.

Voor deze groei is het belangrijk om de juiste tools te kiezen. Voor Microsoft zit de toekomst in de cloud. Onder de noemer Azure Integration Services (AIS) bundelt Microsoft de verschillende services die het aanbiedt voor integratie in Azure. Denk hierbij aan Logic Apps, Service Bus, Event Grid en Api Management.

Integratie in Azure

Een van de grootste problemen in Azure is het managen van al je integraties die vaak meerdere services gebruiken. Bij veel grote klanten zijn er honderden en honderden integraties. Dat wordt in Azure heel lastig te managen. In BizTalk was dit een stuk gemakkelijker.

Kovai heeft daarvoor Serverless 360 in het leven geroepen, een tool waarmee het managen van integraties in Azure een stuk beter te doen is. Nu steekt Microsoft hand in eigen boezem en gaat er ook mee aan de slag. Het zal er nog niet heel snel aankomen, maar er wordt gewerkt aan een andere view in Azure, speciaal voor integraties.

Logic Apps

Sjoerd

Een van de belangrijkste integratieservices in Azure zijn Logic Apps. Het is daarom niet raar dat Microsoft er het afgelopen jaar weer flink in geïnvesteerd heeft. Verschillende problemen zijn aangepakt en er zijn uiteraard nieuwe features toegevoegd. Hieronder een overzicht van alle productupdates die het afgelopen jaar zijn doorgevoerd.

Naast de verbeteringen die de afgelopen tijd doorgevoerd zijn, is er ook een roadmap voor 2022 gedeeld. Men kijkt daarbij niet alleen naar nieuwe features, maar ook de designer wordt aangepakt. En dat is nodig. Er zijn toch wel wat tekortkomingen in de Designer voor developers waarvoor workarounds nodig zijn. Hieronder de roadmap voor 2022.

Zelf word ik het meest enthousiast van de Data mapper-functionaliteiten. In de integratiewereld is het vertalen van de data een van de belangrijkste onderdelen binnen ons vak. Door slimmere tools en technieken toegereikt te krijgen, worden deze stappen alleen maar makkelijker

Service Bus, Event Hubs & Stream Analytics

Rob

Service Bus was een van de eerste services die Microsoft ooit aanbood in Azure. Dat gaat terug tot 2008, alweer 14 jaar geleden. Maar dat wil niet zeggen dat men stil heeft gezeten. Behalve een nieuwe built-in portal om de berichten op je queues te kunnen managen, ligt de focus de laatste jaren en in de nabije toekomst met name op events. Dat wil niet zeggen dat queuing een “outdated” technologie is. Alles heeft zijn plek in de moderne architectuur. Queues garanderen onder andere vaak volgorde, waar event hubs dat niet doet.

Event Streaming is not “modern” and queues are not “traditional”. Both are patterns of state-of-the-art messaging infrastructures.

Service Bus

Voor Service Bus zijn er de laatste tijd wat updates uitgekomen:

  • Minimum TLS version
    De minimale default TLS-versie is voortaan 1.2, maar je kunt het terugzetten naar oudere versies als je applicaties nog geen gebruik kunnen maken van TLS 1.2.
  • Service Bus Explorer in de portal
    Voor ServiceBus is deze “Quality of Life”-update voor developers en support net uitgekomen in preview.
  • SAS token disablen
    Je kunt nu afdwingen dat je Service Bus alleen gebruikmaakt van Azure Active Directory. Een belangrijke security update.
  • JMS & large messages
    Je kunt nu JMS (Java Message Service) gebruiken om met Service Bus te communiceren. Je hoeft hierdoor bijna niets meer te doen om een applicatie die van JMS gebruikmaakt aan te sluiten op Service Bus.

Maar uiteraard zit het team niet stil en komen er ook nog enkele interessante updates uit de komende tijd:

  • Scale sets
    Je kunt partities maken om tot 256 messaging units te schalen (het waren er 16), waardoor de throughput vele malen groter wordt. De volgorde van berichten kan dan echter niet meer gegarandeerd worden.
  • Consistent low latency queues
    De storage van een queue gaat, net als bij Event Hubs, “lokaal” bij de Service Bus gehost worden. Dat betekent dat de storagelaag van Azure Storage verdwijnt en er minder latency is.
  • Queue purge vanaf een bepaalde tijd
    Ingebouwd in de nieuwe Service Bus Explorer.
  • Durable terminus
    Verbindingen met o.a. containers zullen hierdoor stabieler worden.

Event Hubs

Dat Event Hubs snel is, wisten we eigenlijk al. Kafka is daarbij een van de grootste concurrenten. Wat Microsoft daarbij slim doet is ervoor zorgen dat Kafka-gebruikers gemakkelijk aan kunnen sluiten op Event Hubs op dezelfde manier als ze gewend zijn. Er wordt zelfs gewerkt aan een beleving in de portal die nagenoeg hetzelfde is als de “Kafka-experience”.

Volgens de data van Microsoft zou Event Hubs wel consistenter zijn dan Kafka. Het is vooral consistenter in snelheid en throughput.

Heel lang wordt er echter niet stilgestaan bij Event Hubs. Men wil vooral door met Stream Analytics.

De meest recente toevoeging voor Event Hubs is Self Service dedicated clusters, waardoor je nu zelf je clusters kan upscalen en downscalen.

De roadmap van Event Hubs ziet er als volgt uit:

Stream Analytics

Met Stream Analytics kun je realtime analyses uitvoeren op gestreamde data. Je maakt onder andere gebruik van een vertrouwde SQL-achtige taal om deze analyses uit te kunnen voeren die ook nog eens uit te breiden is met behulp van C# en Javascript. Deze analyses kunnen onder andere gebruikt worden om anomalies in je systemen snel te ontdekken.

Stream Analytics is iets waar Microsoft duidelijk op tijd bij was. Microsoft staat samen met Google op eenzame hoogte volgens Forrester. Het is dan ook niet zo raar dat men hier meer over te vertellen heeft dan over Event Hubs.

Het is dan ook niet voor niets dat er veel nieuwe toevoegingen te zien zijn bij Stream Analytics, zoals het automatisch schalen en een mogelijkheid om geen code te gebruiken in een editor.

En ook voor de komende tijd zit je gebakken. Onder andere de performance krijgt een behoorlijke boost.

Power Automate

Rob

En dan is er nog het Power Platform van Microsoft met o.a. Power Automate. Tools voor de “citizen developers”. Het moet werknemers binnen een bedrijf de mogelijkheid bieden om zelf kleine taken te kunnen automatiseren, zonder dat er bijvoorbeeld een heel supportmodel voor opgetuigd hoeft te worden.

De sessie gaat vooral over het feit dat Azure Integration Services en het Power Platform elkaar aan moeten vullen. Het allermoeilijkste werk wordt gedaan in Azure Integration Services, waarbij bijvoorbeeld een systeem ontsloten wordt met behulp van API’s in API management. Vervolgens kan iemand met behulp van Power Apps of Power Automate gebruik maken van die API’s en de data gebruiken voor het automatiseren van de kleinere, vaak afdelingsspecifieke, taken.

Bicep script en Liquid maps

Twee zaken waar we nog even kort bij stil willen staan zijn Bicep en Liquid maps. Met name Bicep kwam heel veel voorbij. Het is een nieuwe manier van Microsoft om gemakkelijk je services te kunnen deployen naar Azure. Daarnaast kwamen ook soms nog Liquid Maps voorbij, waarvan ook hieronder nog een voorbeeldje te vinden is.

Bicep

Rob

Bicep is een Domain Specific Language (DSL) om Azure infrastructuur deployments te automatiseren, bijvoorbeeld voor het gebruik in je CICD pipelines. De taal verschilt van de ARM (JSON) templates in meerdere opzichten. Het duidelijkste verschil is de overzichtelijkere en gebruiksvriendelijkere code. Maar ook andere zaken zoals idempotentie, een orchestrator die automatisch de volgorde bepaalt en het feit dat je de deployment in aparte kleine modules kan schrijven, zijn allemaal erg handig.

Ik gebruikte het nog niet en gebruikte vooral Terraform, maar ik ga nu in ieder geval met Bicep aan de slag.

Hieronder een voorbeeld van een Bicep file, met daaronder de veel grotere JSON template.

Bicep

param location string = resourceGroup().location
param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'

resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

JSON Template

{
  "$schema": "<https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#>",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "storageAccountName": {
      "type": "string",
      "defaultValue": "[format('toylaunch{0}', uniqueString(resourceGroup().id))]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-06-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "accessTier": "Hot"
      }
    }
  ]
}

Liquid Maps

Sjoerd

Ook in cloudintegratie is data mapping belangrijk, zodat de systemen onafhankelijk van elkaar blijven. Tevens kun je met data mapping ook “Messaging pattern” implementeren.

In de cloud zijn er verschillende mogelijkheden om de data mapping voor elkaar te krijgen

  • BizTalk maps (geconverteerd naar XSL 1.0)
  • XSLT mapping (2.0, 3.0)
  • Liquid Template

Waarbij BizTalk maps en XSLT mapping het beste werkt voor XML to XML, is Liquid mogelijk voor JSON, XML en text (oa. CSV). Bovenstaande mapping methodes zijn niet overal toe te passen, zo is bijvoorbeeld de BizTalk map alleen mogelijk in een Logic App, terwijl XSLT mapping en Liquid Template mogelijk zijn in zowel een Logic App als in Azure Function te gebruiken zijn.

Liquid is een data mapper gebaseerd op een template, zoals hieronder in het voorbeeld goed te zien is, is dat de JSON al wordt opgebouwd. Tussen de “{{}}” worden de parameters gevuld welke uitgelezen dienen te worden vanuit de bron. Wat je daarmee als voordeel hebt, is dat je gelijk ziet hoe het resultaat van de mapping eruit komt te zien.

Liquid map template

{%- assign deviceList = content.devices | Split: ', ' -%}

{
   "fullName": "{{content.firstName | Append: ' ' | Append: content.lastName}}",
   "firstNameUpperCase": "{{content.firstName | Upcase}}",
   "phoneAreaCode": "{{content.phone | Slice: 1, 3}}",
   "devices" : [
      {%- for device in deviceList -%}
         {%- if forloop.Last == true -%}
         "{{device}}"
         {%- else -%}
         "{{device}}",
         {%- endif -%}
      {%- endfor -%}
   ]
}