
Microsoft Ignite – mars 2021
Oppsummering av Microsoft Ignite-arrangementet i mars 2021.
Nyleg har eg utvikla ei løysing for å hente ut data frå eit Log Analytics-workspace med Azure Data Factory. Då dette blei skrive, hadde Azure Data Factory ingen innebygd connector for Log Analytics-workspaces, så Log Analytics REST API må brukast i staden. Dataa blir deretter lasta inn i ein Azure SQL-database for rapportering.
Sjølv om det er mogleg å eksportere M Queries direkte frå Log Analytics til Power BI, dekkjer dette ikkje scenario med langtidsoppbevaring. Eg trudde først dette var ei enkel oppgåve. Det var feil. I dei neste fire innlegga går eg gjennom stega for å setje opp det første miljøet, hente ut dataa og til slutt behandle og laste dei inn i SQL-databasen.
For å gjere dette raskare har eg laga eit par ARM-malar og tilhøyrande PowerShell-skript på GitHub. PowerShell-koden som blir brukt i dei neste stega, er dokumentert der. Det er verdt å klone mappa til den lokale PC-en.
I seinare innlegg må vi distribuere fleire ressursar, men dei blir distribuerte når dei trengst.
PowerShell-referanse i GitHub-repositoriet for denne delen: Deploy Initial Resources.ps1 Deploy Initial Resources opprettar desse ressursane:
(Viss du ikkje har eit Azure Subscription, opprettar du eitt før du held fram.)
##Køyr dersom Az PowerShell-modulen ikkje allereie er installert
Install-Module Az -AllowClobber
##Køyr dersom Az PowerShell-modulen allereie er installert, men oppdateringskontroll er nødvendig
Update-Module Az
Import-Module Az
Connect-AzAccount
``` [](/images/blog/2021/02/Screenshot-2021-02-25-224732-1.webp)
Get-AzLocation
##Set parametrar som skal brukast av ARM-malen
$resourceGroupName = '<tilfeldigStreng>'
$deploymentLocation = '<shortcode frå førre steg>' ##Må vere ein location-eigenskap frå outputen av førre kommando
$resourceRandomName = '<tilfeldigStreng>' #Må vere globalt unik og på maksimalt seksten teikn
$tenantId = (Get-AzTenant).Id
$currentUser = (Get-AzContext).Account.Id
$principalObjectId = (Get-AzADUser -UserPrincipalName $currentUser).Id
##Distribuer resource group
New-AzSubscriptionDeployment -Location $deploymentLocation -TemplateFile 'arm-template-resource-group.json' -resourceGroupName $resourceGroupName -deploymentLocation $deploymentlocation
##Distribuer ressursane
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile 'arm-template-resources.json' -deploymentLocation $deploymentLocation -resourceRandomName $resourceRandomName -tenantId $tenantId -principalObjectId $principalObjectId

The code reference for this next section is in the GitHub repo as ‘Deploy Service Principal and KeyVault Secrets.ps1’
For å autentisere vellukka mot Log Analytics REST API bør du opprette ein Azure AD Service Principal med avgrensa løyve, slik at kommunikasjon via Azure Data Factory blir mogleg.
##Set variablane våre
$vaultName = $resourceRandomName+,"-kv"
$servicePrincipalName = 'LogAnalyticsReaderService'
$servicePrincipalScope = '/subscriptions/<subscriptionid>/resourceGroups/<resourcegroupname>/providers/Microsoft.OperationalInsights/workspaces/<workspacename>'
##Opprett Azure AD Service Principal
$createServicePrincipal = New-AzADServicePrincipal -DisplayName $servicePrincipalName -Role 'Log Analytics Reader' -Scope $servicePrincipalScope
##Lagre service principal client ID i Key Vault
Set-AzKeyVaultSecret -VaultName $vaultName -Name 'log-analytics-reader-service-client-id' -SecretValue (ConvertTo-SecureString -AsPlainText ($createServicePrincipal.ApplicationId))
##Lagre service principal secret i Key Vault
Set-AzKeyVaultSecret -VaultName $vaultName -Name 'log-analytics-reader-service-secret' -SecretValue $createServicePrincipal.Secret



Den nødvendige kjerneinfrastrukturen er sett opp og klar til bruk.
I del éin er desse aktivitetane fullførte:
Følg med på del 2, der vi konfigurerer Azure Data Factory til å hente ut data frå Log Analytics.