Microsoftin Power Platform on voimakas kokonaisuus, jolla voi tehdä monia hassun hauskoja temppuja… siellä pilvessä?
Mitäpä jos ne datat, joiden kanssa halutaan puljata, sijaitsevatkin siellä kuuluisassa OnPremisessä eli suomeksi: Siellä paikallisessa ympäristössä?
Esimerkkinä muutama simppeli skenaario:
1.
SharePoint Onlinessa olevien datojen perusteella halutaan muodostaa CSV-tiedostoja paikallisen palvelimen levynkulmalle.
2.
Paikallisessa SQL-palvelimessa olevassa tietokannassa/taulussa tapahtuu asioita ja näistä halutaan vaikkapa herätteitä käyttäjille.
3.
Paikallisessa SQL-palvelimessa olevaan tietokantaan/tauluun halutaan kirjoittaa tietoa pilvestä päin.
Tällaisia ja muita paikallisen ympäristön hassutuksia varten on onneksi olemassa Power Platformin Data Gateway. Data Gatewayn idea on nimensä mukaisesti saattaa paikallisessa ympäristössä sijaitsevat datavarannot Power Platformin ulottuville.
Lisensointi
Data Gateway vaatii käyttäjiltä Premim-lisensoinnin joten ihan normi O/M365-lisensseillä tätä ei saada käyttöön:
Mistä sen saa?
https://powerapps.microsoft.com/en-us/downloads/
Miten se asennetaan?
Asennus on pitkälti ATK:n perushumppaa. Next next -sotureille tuttua huttua.
Edeltä mainitusta linkistä ladataan halutulle koneelle asennustiedosto.
Ajetaan se.
Asennuksessa huomioitavaa, että masiina jonne asennetaan, pitää täyttää minimivaatimukset.
Allekirjoittanut esimerkiksi jätti jälleen kerran ohjeet lukematta:
Kun asennus on suoritettu, pitää agentille kertoa tunnus jonka kanssa se alkaa hoitamaan hommia pilven päässä:
Tämän jälkeen kysytään, haluatko asentaa uuden Gatewayn vai kenties siirtää/palauttaa jokin olemassa oleva Gateway.
Asennamme uuden Gatewayn:
Koska olen aikaisemmin asentanut tiedostopalvelimelle jo yhden agentin, kysyy asennus josko haluaisin asentaa tämän agentin johonkin olemassa olevaan klusteriin.
Tässä tapauksessa haluan asentaa tämän SQL-palvelimen samaan klusteriin tiedostopalvelimen kanssa:
Kun asennus on valmis, lävähtää ruutuun yhteenveto ja mahdolliset jälkikonfiguroinnit
Pilvestä kun kurkataan, nähdään että molemmat agentit, yhdessä ja samassa klusterissa ovat online ja valmiita tekemään hommia:
Esimerkkiskenaariot
1.
SharePoint Onlinessa olevien datojen perusteella halutaan muodostaa CSV-tiedostoja paikallisen palvelimen levynkulmalle
Käytetään tässä esimerkkinä allekirjoittaneen erästä hahmotteluvaiheeseen jäänyttä listaa, jossa tarkoitus on kerätä SharePoint-listaan maksumääräyksiä. Näistä sitten pitäisi muodostaa CSV-tiedosto paikalliselle palvelimelle.
Listamme kaikessa yksinkertaisuudessaan:
Ja sitten Power Automate:
Alin palikka on otettu File System -pakasta.
Ensimmäisellä kerralla kysytään yhteyden perustietoja:
Connection name
Tähän kannattaa antaa jokin nimi josta tunnistaa
- Mihin palvelimeen tämä ko. yhteys juttelee
- Mitä käyttötarkoitusta varten yhteys on
esim. Tässä esimerkissä se voisi olla: Palvelimennimi – Maksumaaraykset
Root folder
Nimensä mukaisesti sen kansion juuri jossa halutaan puljata.
Tässä esimerkissä paikallinen jako näyttää tältä:
jolloin annamme tähän arvoksi: C:\SHARES\Maksumaaraykset
Username
Sellaisen tunnuksen tiedot jolla on oikeus tehdä tarvittavat temput siinä jaossa, jossa ollaan puljaamassa.
Tunnuksen voi antaa muodossa DOMAIN\ktunnus
Password
Kyseisen paikallisen tunnuksen salasana
Gateway
Tähän valitaan ensimmäisellä kerralla New on-premises data gateway
Jatkossa jos luodaan uusia File System -yhteyksiä samaan jakoon, voidaan alasvetovalikosta käyttää olemassa olevaa gatewayta.
Tämän jälkeen alkaisi meidän hieno Flow olemaan testiä vaille valmis.
Testataan:
Paikallisessa levyjaossa näyttää tälle:
Eli tiedosto näyttäisi syntyvän nätisti!
Toki CSV:n muotoilussa olisi tehtävää (ääkkösten mahdollistaminen, desimaalit lukuihn jne.) mutta tässä ei nyt lähdetä kyseiseen kaninkoloon sukeltamaan.
2.
Paikallisessa SQL-palvelimessa olevassa tietokannassa/taulussa tapahtuu asioita ja näistä halutaan vaikkapa herätteitä käyttäjille
SQL-palvelimeen, jossa tietokanta ja taulu sijaitsevat, pitää ensin tietysti asentaa Data Gateway -agentti ja konfiguroida se käyttöön.
Tämän jälkeen:
- Luodaan simppeli SQL-taulu jossa muutamia kenttiä.
Tässä esimerkissä luodaan yksinkertainen Orders-taulu johon syötetään uudet tilaukset:
CREATE TABLE [dbo].[Orders] ( [OrderId] [int] IDENTITY(1,1) NOT NULL, [Customer] [nvarchar](50) NULL, [Order number] [int] NULL, [Order details] [nvarchar](max) NULL, [Responsible person] [nvarchar](50) NULL, [Responsible person email] [nvarchar](50) NULL );
HUOM.
Jos SQL-taulussa ei ole IDENTITY-kenttää (yllä keltaisella), Power Automate ei pysty käynnistymään taulussa tapahtuvien muutosten perusteella.
Kenttä varmistaa siis sen että jokaisella rivillä on oma, yksilöllinen ja automaattisesti kasvava ID.
- Luodaan tätä esimerkkiä varten myös SQL-tunnus jolle tarvittavat (luku/kirjoitus) oikeudet tauluun. Tunnuksena voisi myös olla Windows authentication (lokaali domain-tunnus jolla paukut tauluun)
Tunnusta käytetään kun luodaan yhteys Power Automaten ja SQL-taulun välille.
3. Luodaan yhteys Power Automate ja SQL-taulun välille
4. Luodaan Flow joka yksinkertaisesti kyttää luomaamme taulua ja lähettää sähköpostin ”Responsible person email” -kentän osoitteeseen.
Valitaan Flowin käynnistimeksi:
Asetetaan käynnistimeen asetuksiksi aikaisemmin luotu taulumme ja tehdään simppeli sähköpostin lähetys käyttäen taulun kenttiä:
Tallennetaan Flow, laitetaan se päälle ja testataan syöttämällä SQL-tauluun uusi rivi:
USE [KuuDB] GO
INSERT INTO [dbo].[Orders] ([Customer] ,[Order number] ,[Order details] ,[Responsible person] ,[Responsible person email]) VALUES ( 'Testiyritys Oy', '1', 'Verkkolevyt Historiaan', 'Jasu Snell', 'jasu@digikuu.fi' ) GO
Hetken päästä nähdään että meidän hieno Flow lähti käyntiin ja lähetti sen kovasti kaivatun, tietorikkaan sähköpostin:
Ja sähköpostiahan sieltä tuuppasi Herra Automaatio:
3.
Paikallisessa SQL-palvelimessa olevaan tietokantaan/tauluun halutaan kirjoittaa tietoa pilvestä päin
Luodaan aivan simppeli Flow ”kovakoodatuilla” arvoilla jotta nähdään että kirjoitus tauluun onnistuu:
Toim.huom.
Tässä käytetyt, ”kovakoodatut” arvot tulisivat oikeassa elämässä dynaamisesti jostain monimutkaisen himmelin takaa.
Lopputulos
Summa Summarum
Data Gatewayn avulla saadaan se rakas OnPremisekin tarvittaessa mukaan pilven piirileikkeihin, suht. pienellä vaivalla.
Huomioitavaa on kuitenkin aina se lisensointi. Nämä simppelit esimerkitkin vaativat toteutukselta/käyttäjiltä sen kuuluisan Premium-lisensoinnin. Vaatimuksen asettivat sekä Data Gateway että SQL-yhdistin.
Jaaniin, myös Power BI osaa hyödyntää Data Gatewayta, jos vaikkapa ne piirakkakäppyröiden maagiset datat makaavat siellä paikallisessa tietovarannossa. 😉
– Pilviguru / Huru-ukko Jasu Snell