[Power BI Drops] Economize R$ 2.700,00 por mês automatizando o Power BI Embedded com Azure Logic Apps - Thiago Candido


2022-12-21

O Power BI Embedded é um recurso do Azure que permite que seus relatórios sejam inseridos em páginas web de sistemas internos ou públicos. Por meio dele conseguimos disponibilizar relatórios de forma segura, integrando controles de RLS (Row-level security), além de termos mais controle sobre a periodicidade da atualização dos datasets e sobre o intervalo de atualização no caso de relatórios que usam Direct Query.

Porém, em alguns casos, esses relatórios não precisam ficar disponíveis 24/7. Em tais situações, conseguimos obter uma redução significativa na fatura do Azure automatizando o start/stop da capacidade do Power BI Embedded. Para isso, nesse post, discutiremos sobre como é possível realizarmos essa automação por meio de Azure Logic Apps.

O que são os Azure Logic Apps? Os Azure Logic Apps são uma plataforma de nuvem onde você pode criar e executar fluxos de trabalho automatizados com pouco ou nenhum código. Usando o designer visual e selecionando operações pré-criadas, você pode criar rapidamente um fluxo de trabalho que integra e gerencia seus aplicativos, dados, serviços e sistemas. - Microsoft

Para simplificar as coisas, vamos trabalhar com dois Logic Apps. Um irá iniciar o componente Power BI Embeddeded de segunda a sexta pela manhã e o outro Logic App pausará o mesmo no fim da tarde.

Inicialmente, com os Logic Apps criados, acesse-os, vá até o menu lateral "Identity" e ative o toggle "Status", localizado na aba "System Assigned", e salve suas mudanças.



Em seguida, acesse seu componente do Power BI Embedded e utilize adicione ambos os Logic Apps como "Contributors" - para isso, vá até o menu lateral "Access Control (IAM)", e clique em "Add" e "Add Role Assignment".



Na tela seguinte, na aba "Role", selecione o item "Contributor", e na aba "Members" selecione a opção "Managed Identity". Após isso, basta clicar em "+ Select members" e selecionar as identidades gerenciadas dos Logic Apps criados.



Com os Logic Apps criados e adicionados ao controle de identidade do Power BI Embedded, é hora de adicionar lógica aos nossos Logic Apps. Acesse o Logic App responsável por iniciar a capacidade Power BI Embedded e clique em "Edit".

Primeiramente devemos criar uma atividade que controlará a recorrência da execução, onde vamos definir os dias da semana e os horários que o Logic App será executado. Adicione um novo trigger "Schedule" do tipo "Recurrence" e o configure. No meu caso, irei configurar de segunda a sexta as 7h da manhã, horário de Brasília.



Em seguida, a partir da seguinte URL, substitua os parâmetros destacados (e elimine os espaços em branco):

https://management.azure.com/subscriptions/ {subscriptionId} /resourceGroups/ {resourceGroupName} /providers/Microsoft.PowerBIDedicated/capacities/ {powerBIEmbeddedName} /resume?api-version=2021-01-01

      - subscriptionId: ID da Subscription Azure
      - resourceGroupName: Nome do Resource Group o qual o Power BI Embedded faz parte
      - powerBIEmbeddedName: Nome do recurso do Power BI Embedded

Após isso, adicione uma atividade action do tipo HTTP, selecione o método POST, e insira o link construído no passo anterior. Finalmente, selecione o tipo de "Authentication" como "Managed Identity", e selecione "System Assign Managed Identity".



Após salvar e ativar o Logic App - clicando em "Enable" - é hora de configurarmos nosso segundo Logic App, que irá pausar automaticamente a capacidade Power BI Embedded.

Os passos são idênticos: adicionamos um trigger "Schedule" do tipo "Recurrence", configuramos os dias e as horas de execução, e adicionamos uma action do tipo HTTP, que irá realizar um POST, mas dessa vez, no seguinte link:

https://management.azure.com/subscriptions/ {subscriptionId} /resourceGroups/ {resourceGroupName} /providers/Microsoft.PowerBIDedicated/capacities/ {powerBIEmbeddedName} /suspend?api-version=2021-01-01

Todos os argumentos são os mesmos do que utilizamos no primeiro Logic App - a única diferença é a última parte da rota, antes dos QueryParameters. Não se esqueça de remover os espaços em branco. Configure o método de autenticação para "Managed Identity" e "Self Assigned Managed Identity", salve e habilite seu Logic App.

Bônus: Azure Calculator

Usando como base um mês de 30 dias, sem a automação da instância Power BI Embedded temos um custo de R$3.900,00 por 720 horas de uso da capacidade A1.



Já com a automação, de segunda a sexta, das 7h as 18h, chegamos a 55 horas semanais, ou 220 horas por mês, totalizando R$1.191,67.



Com essa simples automação, é possível de economizar mais de R$2.700,00 reais por mês, em uma instância com capacidade básica como a A1. Em instâncias mais poderosas - e "salgadas" - conseguimos resultados ainda mais significativos.

Por meio de Logic Apps, é possível, em grande parte das aplicações, obter reduções significativas nas faturas mensais do Azure, trazendo assim maior eficiência na gestão dos custos de Cloud e potencializando o ROI de investimentos nas áreas de inteligência de dados.

Algum comentário ou dúvida? Entre em contato comigo via Twitter ou LinkedIn.

Imagem gerada utilizando IA