Dataverse for Teams on laittanut Power Platformiin vauhtia. Ratkaisujen pohjana voi nyt käyttää (riisuttua) Dataverseä Microsoft 365-lisensseillä. Ympäristön voi tarvittaessa päivittää täyteen Dataverse-versioon. Kaiken kukkuraksi Power Virtual Agentit ovat käytössä samaan (ilmaiseen) hintaan.

Vähemmälle huomiolle on jäänyt mahdollisuus hyödyntää apeja Azure API Managementin avulla.

Tämä on kiinnostavaa koska

  • Power Platformissa API:en käyttö on premium-ominaisuus, joka edellyttää ratkaisun loppukäyttäjiltä Power Apps / Flow plania. Mikäli rajapinnat ovatkin saatavilla Azure API Managementin kautta, tämä lisenssivaade katoaa (Dataverse for Teams ympäristössä).
  • Organisaatiolla voi olla merkittävä määrä omia ja ulkopuolisia palveluja valmiiksi tarjolla Azure API Managementin kautta.

Tutustutaan tällä kertaa hieman tarkemmin API Managementin käyttöön Dataverse for Teamsista (DV4T). Mikäli API Management on sinulle käsitteenä täysin vieras, kannattaa aloittaa lukemalla esittely aiheesta.

Tehdään esimerkki, jossa

  • Lisätään uuden ystävän tiedot (Power Apps)
  • Ystävää vastaava rivi tallennetaan Azure SQL -tietokantaan
  • Tallennus tehdään Logic Appsilla, joka on julkaistu Azure API Management -palvelun avulla DV4T-ympäristön käyttöön

Power Appsista / Flow’sta kutsutaan siis vain API:a, joka lisää uuden ystävän. Power Platform -kehittäjä ei tiedä mihin ja miten tämä tieto tallennetaan. Eikä hänen tarvitsekkaan tietää.

Aloitetaan.

Logic app – Rivin lisääminen tietokantaan

Tietokanta (Azure SQL) meiltä löytyy. Luodaan yksinkertainen Logic app, joka lisää parametrina saamansa ystävän nimen (FriendName) ystäväni-tauluun (MyFriend).

Miten tätä Logic appia päästään käyttämään API Managementin kautta?

Azure API Management -palvelun luominen

Meillä ei vielä ole Azure API Management -palvelua, joten sellainen tulee pystyttää.

Luodaan uusi resurssi (API Management) oletusasetuksia käyttäen. Pidä palvelun taso kehittäjille suunnattuna (Pricing tier = Developer (no SLA)), muuten kokeilusta tulee turhan kallis.

Kärsivällisyyttä. API Management -palvelun luonti voi kestää puolikin tuntia.

Uuden API:n lisääminen

Palvelun valmistuttua lisätään alussa luomamme Logic app sinne API:ksi (APIs -> Add API -> Logic App).

Valitaan (browse) oikea Logic App ja olemme jo lähes valmiit!

Liian helppoa.

API:en käyttöoikeudet

Mikäli API:n ei ole tarkoitus olla kaikille avoin, tulee sen käyttöä kyetä rajaamaan. API Management tarjoaa tähän keinon tilausten (subscription) ja niihin liittyvien avainten (subscription key) avulla.

Tilaus antaa käyttöoikeuden yhteen, useaan tai kaikkiin apeihin. Tilausta vastaa aina kaksi avainta. API:a voi käyttää, kunhan itseltä löytyy sen käyttöön oikeuttava avain.

Luodaan käyttöömme uusi tilaus, joka sallii kaikkien apien käytön.

Oletuksena API:n käyttö edellyttää tilausta (subscription required). Tämän voi ottaa pois päältä, muttemme ota sillä haluamme hallita ketkä ystäviä pääsee lisäämään.

Luomaltamme API:lta puuttuu vaadittava parametri (subscription-key), jolla API:n käyttäjä välittää API Managementille hallussaan olevan avaimen. Lisätään parametri API:n design-välilehden front-end-osiosta.

API on nyt valmis käytettaväksi. Export-komennolla se saadaan helposti Power Platform -työkalujen käyttöön.

Valitaan vain ympäristö, jonne API viedään.

Käytännössä Export-toiminto luo API:sta valittuun ympäristöön uuden custom connectorin.

API:n käyttö Dataverse For Teamsista

API Managementin API:t toimivat kuin mitä tahansa custom connector. Sen voi lisätä tietolähteeksi Power Appsiin.

Sama API näyttää tavallisessa (ei Dataverse for Teams) ympäristössä tältä. Timantti-ikoni kertoo sen merkittävän eron. Täällä API:n käyttö edellyttää loppukäyttäjiltä Power Apps plania.

Näin lisäämme Power Appsista API:a käyttäen uuden ystävän.

Flow’ssa lisäämämme API löytyy luonnollisesti custom connectorien joukosta.

Lisätään lopuksi uusi ystävä Flow’lla.

Toimiiko se?

Logic app on pyörähtänyt nätisti.

Ja siellä uusi ystävä on!

Erilliset testi ja tuotantoympäristöt?

Entä jos käytössä on erilliset testi- ja tuotantoympäristöt? Miten eri ympäristöistä käytetään eri versiota apeista?

Kun käytät custom connectoria Power Appsissa ja siirrät Appsin testistä tuotantoon, haluat siirtää myös sen käyttämän custom connectorin. Muutoin Power Appsisi on siirron jälkeen hajalla tuotannossa.

Mutta tällöin custom connector on sama. Se kutsuu saman API Managementin samoja apeja.

Voit ratkaista ongelman muokkaamalla custom connectoria siten, että se käyttää eri osoitetta saamansa parametrin perusteella. Voit hyödyntää tässä käytäntömalleja (policy templates).

Tai voit luoda API:lle oman parametrin (environment) ja sen perusteella reitittää kutsun API Managementissa oikeaan paikkaan.

Yhteenveto

API Managementin ilmainen käyttö on oiva ominaisuus Dataverse for Teamsissä. Mutta onko sen avulla järkevää kiertää Power Platformin lisenssejä?

Mikäli organisaatiossa ei vielä käytetä Azure API Managementia, ei sitä ole järkeä pystyttää pelkästään Power Platformin lisenssien takia. Sillä Azure API Management luonnollisesti itsessään maksaa.

https://azure.microsoft.com/en-us/pricing/details/api-management/ (29.3.2021)

Ja jonkun sitä tarvitsee myös hallinnoida.

Mutta jos Azure API Management jo löytyy, tai organisaatio haluaa ryhtyä käyttämään sitä laajemminkin API:en hallintaan (suosittelen vähintään pohtimaan tätä), niin ei kun hanaa!