SPN + Azure Runbook + Webhook = Power BI-päivitys (sivu 1)

(Perico Riccardo) (17. elokuuta 2020)

Luin äskettäin iv id: n suuren -artikkelin = ”f7c3c30753″>

Nicky Van Vroenhoven .

Hänen skenaariossaan Nickyn on käynnistettävä Power BI -tietojoukko päivittämällä tietyn jälkeen vaihe SQL Server Agentin työssä ja tämä on tehtävä käyttämättä todellisia käyttäjän tunnistetietoja .

Hän teki sen luomalla PowerShell-komentosarjan, joka kirjautuu sisään ja käynnistää tietojoukon päivityksen SPN: n kautta.

Luettuani tämän aloitan ajatella, voisinko kapseloida tämän erilainen arkkitehtuuri, joka voi olla lähtökohta monentyyppisille erilaisille sovelluksille.

Ajatus on pakata PowerShell-komentosarja Azure Automation Runbook

ja asettakaa se sitten kaikkien sovellusten saataville, jotka voivat yksinkertaisesti lähettää postituspyynnön URI: lle.

Edut:

1. Vain komentosarjan yksi keskitetty versio

2. Power BI -hallintamoduulia ei ole asennettu sovelluslaitteeseen, mutta se on asennettu ja suoritetaan pilvessä joukossa virtuaalikoneita, jotka on järjestetty pyynnöstä, kun suoritus alkaa

3. Runbook voidaan ajoittaa (ehkä se ei ole adavantage, vain lisäominaisuus, koska voimme jo ajoittaa Power BI -päivityksen)

4. Salatut tunnistetiedot tukevat , jotta se toimisi tuntematta SPN-salaisuutta

5. Muuttujat tukevat muuttaaksesi päivityksen kontekstia dynaamisesti

6. Verkkokoukut tukevat paljastaakseen sen mustana laatikkona yksinkertaisella POST-kutsulla

Oletetaan, että seuraavat edellytykset ovat jo olemassa paikallaan:

– SPN luotu ja määritetty AAD: ssä

– Käytössä olevat API: t käytetään Power BI: n vuokratasolla SPN: lle

– Worspace V2, jossa SPN-käyttäjä on järjestelmänvalvoja

Jos tämä on jo käynnissä ja asennus on käynnissä tästä lähtien, se on melko helppoa, Azure Portal voi tehdä sen manuaalisesti, mutta mieluummin PowerShell kanssa Az-moduuli , se on nopeampi, helpompi kopioida ja vähemmän napsahtava-napsautettava 🙂 (käytä PowerShell 7.x -ohjelmaa MSFT: n ehdottamalla, koska löysin joitain virheitä käyttämällä sitä PowerShell 5.1.X -ohjelmassa).

Ensinnäkin asetusparametrit resurssien luomiseen:

$resource\_group\_name = ""
$automation\_account\_name = ""
$automation\_account\_location = ""
$runbook\_name = ""
$tenant\_id = ""
$group\_id = "" # Workspace ID
$dataset\_id = "" # Dataset to Refresh ID
$app\_id = "" # Service PRincipal ID
$Password = ConvertTo-SecureString "ThisIsMyPassword" -AsPlainText -Force # Secret from Service Principal

Sitten yhdistä Azure-tilaukseen

Connect-AzAccount

Luo Azure Automation Tili (voit käyttää olemassa olevaa, jos haluat)

New-AzAutomationAccount -ResourceGroupName $resource\_group\_name -Location $automation\_account\_location -Name $automation\_account\_name

Luo Runbook , joka isännöi PowerShell-koodia (huomaa Type-parametri, joka on yhtä suuri kuin PowerShell)

New-AzAutomationRunbook -Name $runbook\_name -ResourceGroupName $resource\_group\_name -AutomationAccountName $automation\_account\_name -Type PowerShell

Luo 3 muuttujaa, jotka isännöivät arvoja tunnuksille , joita tarvitaan tietojoukon päivittämiseen:

New-AzAutomationVariable -Name ‘TenantID’ -Description ‘Power BI Tenant ID’ -Value $tenant\_id -AutomationAccountName $automation\_account\_name -ResourceGroupName $resource\_group\_name -Encrypted $falseNew-AzAutomationVariable -Name ‘GroupID’ -Description ‘Power BI Workspace ID’ -Value $group\_id -AutomationAccountName $automation\_account\_name -ResourceGroupName $resource\_group\_name -Encrypted $falseNew-AzAutomationVariable -Name ‘DatasetID’ -Description ‘Power BI Dataset ID’ -Value $dataset\_id -AutomationAccountName $automation\_account\_name -ResourceGroupName $resource\_group\_name -Encrypted $false

Säilytä SPN-salaisuuksia turvallisesti hyödyntämällä Azure Automationin tunnistetietoja:

$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $app\_id, $passwordNew-AzAutomationCredential -name ‘SPN’ -Description ‘Service Principal’ -Value $Credential -AutomationAccountName $automation\_account\_name -ResourceGroupName $resource\_group\_name

Koko koodi:

Ympäristö on valmis.

Vain 2 manuaalista vaihetta suoritettavaksi:

1. Tuo MicrosoftPowerBIMgmt.Profile PowerShell-moduuli Azure Automationiin. Tämä sallii Azure Automationin käyttää kyseisen moduulin sisältämiä cmdlet-komentoja.

a. Avaa Azure Portal

b. Siirry Azure Automation -tilillesi

c. Napsauta vasemmanpuoleisessa terässä ”Jaetut resurssit” -kohdassa ”Moduuligalleria”

d. Hae hakusanalla ”MicrosoftPowerBIMgmt.Profile”

e. Valitse se ja napsauta ”Tuo”

2. Lisää PowerShell-komentosarja suorittamaan Power BI -päivitys sovellusliittymäkutsujen kautta

Viimeisimmät artikkelit

Arkistot

Meta