Olá galera o/
No dia 23/04/2021 (sexta-feira), tive a oportunidade de palestrar no evento Festival da Tecnologia Microsoft, que foi organizado pela comunidade SQL Vale e patrocinado pela empresa Dataside. Desde já, deixo meus agradecimentos para a Dataside e a comunidade do SQL Vale por me concederem a oportunidade de compartilhar meu conhecimento com a comunidade.
As inscrições foram realizadas através do site do Sympla e toda a palestra foi feita na ferramenta Zoom. Todas as palestras do evento estão disponíveis no Canal do YouTube da Dataside.
Mais informações sobre o evento nos links abaixo:
- Site do evento
- Agenda do Evento
- Link de Inscrição Sympla
- Comunidade SQL Vale
- Dataside
- Canal YouTube Dataside Community
Qual foi o tema da Palestra?
Minha palestra foi sobre como Escalar os DTUS de um Azure SQL Database utilizando o Azure Data Factory e o Azure Automation Account através de runbook e webhook. Além de explicar cada serviço, também realizei um laboratório mostrando como integrar os 3 serviços citados.
Qual foi o passo a passo de laboratório:
- Provisionar um Azure SQL Database.
- Provisionar um Azure Data Factory.
- Provisionar um Azure Automation Account.
- Criar e configurar o runbook para escalar as DTU’s do Azure SQL Database.
- Criar um Webhook vinculado ao runbook de scale.
- Criar um pipeline no Azure Data Factory com uma atividade de Webhook.
- Analisar os DTU’s do Azure SQL Database sendo alterados.
Slide utilizado na apresentação do evento em formato PDF:
Código do Runbook.
Este código recebe como parâmetros:
1 – Nome do grupo de recurso, ex.: rg-resourcegroupName
2 – Nome do Server do Azure SQL Database, ex.: server-serversqlName
3 – Nome da Database do Azure, ex.: bd-databaseName
4 – Nome Webhook. O nome deve ser: ADF-Webhook
param(
[string] $resourceGroupName = "**************",
[string] $ServerName = "***********",
[string] $DatabaseName = "****************",
#[string] $Edition = "*****",
#[string] $Tier = "*****",
#[string] $Location = "East US 2"
#[string] $SubscriptionId = "********-****-****-****-************",
#[string] $azureProfilePath = "c:\~temp\AzureRMContext.txt",
[string] $azureProfilePath = "",
[string] $azureRunAsConnectionName = "AzureRunAsConnection",
[Parameter (Mandatory = $false)]
[object] $WebhookData
)
#If runbook was called from webhook, webhookdata will be NULL.
if ($WebhookData) {
# Collect properties of WebhookData
$WebhookBody = $WebhookData.RequestBody
# Collect individual headers. Input converted from JSON.
$Input = (ConvertFrom-Json -InputObject $WebhookBody)
Write-Verbose "WebhookBody: $Input"
}
else
{
Write-Error -Message 'Runbook was not started from Webhook' -ErrorAction stop
}
$Edition = $Input.Edition
$Tier = $Input.Tier
$Source = $Input.Origin
write-output $Edition
write-output $Tier
write-output $Source
Write-Verbose "Logging in to Azure..."
if($Source -ne "ADF-Webhook")
{
write-output "Runbook was not started from Webhook"
Write-Error -Message 'Runbook was not started from Webhook' -ErrorAction stop
}
# Load the profile from local file
if (-not [string]::IsNullOrEmpty($azureProfilePath))
{
Import-AzureRmContext -Path $azureProfilePath | Out-Null
}
# Load the profile from Azure Automation RunAS connection
elseif (-not [string]::IsNullOrEmpty($azureRunAsConnectionName))
{
$runAsConnectionProfile = Get-AutomationConnection -Name $azureRunAsConnectionName
Add-AzureRmAccount -ServicePrincipal -TenantId $runAsConnectionProfile.TenantId `
-ApplicationId $runAsConnectionProfile.ApplicationId -CertificateThumbprint $runAsConnectionProfile.CertificateThumbprint | Out-Null
}
# Interactive Login
else
{
Add-AzureRmAccount | Out-Null
}
Write-Host " "
Write-Host " Scaling Database "
Set-AzureRmSqlDatabase -DatabaseName $DatabaseName `
-ServerName $ServerName `
-ResourceGroupName $ResourceGroupName `
-Edition $Edition `
-RequestedServiceObjectiveName $Tier
if ($WebhookData)
{
Write-Output $WebhookData
$parameters = (ConvertFrom-Json -InputObject $WebhookData.RequestBody)
if ($parameters.callBackUri)
{
$callbackuri = $parameters.callBackUri
}
}
if ($callbackuri)
{
Invoke-WebRequest -Uri $callbackuri -UseBasicParsing -Method POST
}
Write-Output $callbackuri
Código utilizado no Body do componente de Webhook no pipeline do Azure Data Factory.
{
"Edition":"Basic"
,"Tier":"Basic"
,"Origin":"ADF-Webhook"
}
Vídeo da palestra no youtube!!!

Agradeço a todos que participaram da minha palestra no evento.
Desejo a todos uma boa leitura, boa prática e bons estudos.
Para quem quer estudar:
- Para a Certificação Microsoft MTA Database Fundamentals | Banco de Dados Relacional e Linguagem T-SQL.
- Segue o link do curso na Udemy. >> LINK <<
- Sobre Bancos da Dados no Azure
- Segue o link do curso na Udemy. >> LINK <<
Não se esqueçam de avaliar esta postagem através da ESTRELAS abaixo das redes sociais, isso vai me ajudar muito a melhorar as postagens.
Quem quiser mandar comentários, sugestões, criticas e complementos, fiquem a vontade, pois feedbacks positivos ou negativos engradecem meu conhecimento para que possa melhorar as postagem para vocês.
Até a próxima o/