Når alarmen går så haster det med å få Bombshells til å rykke ut. Derfor benytter vi de kanalene vi kan for å alle så fort som mulig i beredskap. En slik kanal er Teams hvor vi sender adaptive cards til medlemmene.
En event trigges i Azure når en funksjon mottar sensor data blir det gjort ett HTTPS kall som starter en flyt i Power Automate. Flyten oppretter en record med sensor dataene i dataverse.
Når en ny record blir opprettet i dataverse starter dette en flyt nummer to som gjør ett HTTPS kall til en tredje flyt. (pga lisens cross tenant)
Denne flyten sender ett dynamisk kort til en chat i Teams.
På kortet har du mulighet til å sende ut Ninja Turtles for å håndtere trusselen.
Stakkars Donatello har ikke kommet så langt som de andre medlemmene av Bombshells. Han har et lidenskapelig og nær forhold til sin Nokia 8210. Problemet hans er at den ikke kan kjøre apper av noe slag, og på toppen av det hele kan han bare ha inntil 160 tegn.
Less is more
Spøk til side. I dagens samfunn så må vi støtte et mylder av telefoner og systemer. Det er derfor viktig at vi klarer å konsentrere riktig informasjon et minimum til de som ikke kan ta imot så mye data, og heller berike data som sender ut til de som kan ta imot.
For å passe på at Donatello får den informasjonen han trenger så har vi implementert en funksjon som stripper ned og filterer ut unødvendig informasjon i meldingene hans, slik at han får beskjed om sted, tid og alvorlighet av hendelsen.
Men hvordan vet vi når vi skal sende ut en begrenset sms og når vi kan legge på mer?
Ved å hente ut brukerne og hvilken device som de er registret med via Office 365 Users-connectoren kan vi fyre av riktig kall fra Power Automate.
Av hensyn til alle med DUS (Digitalt utfordret syndrom) claimer vi Retro-badgen for denne.
Bombshells elsker Dataverse og går mann av huse for å bygge opp kraftfulle datakilder som de kan bruke til å trene opp varslingssytemet sitt. Derfor bruker de Power Automate Flow for å populere dataverse med sensordata.
Ved å kalle en PAF som et restkall bruker vi Dataverse-connectoren til å legge til en ny rad i tabellen.
Input som kommer gjennom kallet blir parset til et JSON-objekt og lastet inn i den nye raden i Dataverse tabellen.
Data er selve oljen. Ettersom Bombshells har samlet inn mer data har de innsett at veien til å forhindre kriminalitet og jobbe prevantivt mot mutantene er å gå på miljøproblematikken og heller fjerne årsaken til at mutantene dukker opp.
Bombshells har derfor valgt å fokusere på å samle inn data om miljøet, samt mulighet til å varsle hvis uheldige hendelser blir avdekket i våre sensorer. De har derfor implmentert en rekke integrasjoner. Vi ønsker å trekker frem følgende:
Sende SMS med varsel:
2. Innhenting av værdata fra https://frost.met.no
3. Hente data om lavvann/ høyvann for en gitt lokasjon
Å ha et motiv betyr å ha en grunn til å gjøre noe. At handlingene våre i en bestemt situasjon er motivert av et eller annet, vil si at vi sikter mot å nå bestemte mål. Det er vanlig å skille mellom indre og ytre motivasjon. Drivkraften ved indre motivasjon er dine egne interesser og nysgjerrighet. Vi støtter de rundt oss med positive ord, men siden vi må fokusere også på egen motivasjon samt at vi er i forskjellige cohorter så har vi valgt å automatisert dette.
En gang i døgnet sender vi en SMS til teamleder av Skill powershells. Dette for å motivere.
Ved behov så kan vi øke frekvensen ytterliger, noe som er nærliggende mot innspurten. Ved behov kan vi også motivere andre lag.
We´ve created a monster! Bombshell koser seg og mekker sensorgalskap! Hver sensorstasjon rundt Oslofjorden er proppet med sensorer som fanger lyd, fuktighet, støvpartikler, UV-lys og masse moro 🙂
Samtidig som vi ikke går av veien for å feire små seiere…
Så fortsetter vi å jobbe utrettelig!
Creating more monsters….
By the way…. Happy Campers are wearing turtle necks 😉
For å rulle ut kode og infrastruktur tar vi i bruk Devops pipelines og ruller ut løsningen ved hjelp av Bicep. Bicep er et DSL (domain-specific language) hvor man deklarativt kan deploye Azure-ressurser.
Vi bygger kildekoden i azure devops ved hjelp av en yaml fil som etter fullført og vellykket bygg utfører en deploy av en azure function og opprettet tilhørende infrastruktur.
Følgende infrastruktur blir opprettet
APIM
Key Vault
Azure Function
Storage
På denne måten sørger vi for at ved hver innsjekking av kode, som for eksempel en azure function, vil koden valideres, bygges og løsmningen deployes trygt.
Vi claimer ACDC Craftsman og Hipster (på grunn av at vi bruker Bicep som er forholdsvis nytt 😉 )
Skill Bobmshells are growing tired of fighting criminal mutants after they have caused trouble and are now moving to use IoT and cloud to predict and prevent trouble. Using i wide range of sensors they will be monitoring the Oslofjord to find signs of trouble and patrol areas based on alerts from these sensors.
Arcitecture
Microbit sensors
Using Microbit sensors we will detect polution around the fjord.
Sensors detecting insidents registers data using Azure, storing the data in Dataverse.
[11:32] Noah Tjelle
All reccords are listed in a PowerApp alerting the Bombshells calling them to action.
Vipps er en av samarbeidspartnerne til Arctic Cloud Developer Challenge 2021, og en av utfordringene vi har fått dere er å integrere mot Vipps sine APIer.
Skill har jobbet med en løsning for betaling for småoppgaver i hjemmet og ukepenger, og har jobbet med følgende deler av Vipps-APIet
Sende betalinger
Sjekke betalingsstatus
Rapportering på Vipps-data med PowerBI
Recurring payments (ukepenger)
Vi har implementert all logikk mot Vipps i Power Automate Cloud Flows som er et grafisk verktøy for lage arbeidsflyter
Vi har benyttes Vipps sitt eCoommerce API https://github.com/vippsas/vipps-ecom-api
Autentisering
Alle våre flyter starter med et autentiseringssteg der vi henter access token som vi benytter i videre steg. Vi har valgt å ikke spare på token mellom de forskjellige operasjonene, for hver flyt så henter vi et nytt access token.
Sende betaling
Vi sender betaling med å bruke
Sjekke betalinger
Vi har flyter som går hver time og sjekker betalingsstatus på de ordrene vi har sendt fra systemet slik at vi til en hver tid har oversikt over hvilke betalinger som står åpne, har blitt avbrutt, eller blitt refundert. Disse statusene blir oppdatert tilbake til Dataverse-tabellen som holder på ordrene slik at man kan se oppdatert betalingsstatus der.
Rapporterings-API og PowerBI
Vi har lagd vårt eget rapporterings-API som er bygd på toppen av ordre i Dataverse og Vipps sitt ecommerce API
Her henter vi ut alle ordre fra dataverse og sammenstiller disse med trasaksjoner
Rapportering blir gjort i PowerBI, her har vi laget rapporter som knytter transaksjoner i Vipps opp mot ordrer sendt fra Power Platform slik at man kan får oversikt over faktisk betalingsstatus, om betalinger er refundert etc.
Her har vi også benyttet Power Automate Cloud Flows for å lage et veldig enkelt mellomlag for dette
Hadde dette vært et produksjonssystem kunne vi nok ikke gjort det på denne måten da vi faktisk spør API-et til Vipps “live” for hver forespørsel fra rapporteringsløsnignen, men måtte heller hentet ut dataene til f.eks en Data Lake i Azure.
Vi har lagd vårt eget enkle JSON-schema for rapportering på transaksjonshistorikk.
Dette API-et har vi benyttet videre inn i PowerBI slik at vi der også kan bruke data fra Vipps som en kilde
Vi har gått enda mer i detalj i følgende bloggposter: