DEV Community

Cover image for Lendo Api's do azure com Power Bi - exemplo histórico logic apps
Lucas Silvério
Lucas Silvério

Posted on

Lendo Api's do azure com Power Bi - exemplo histórico logic apps

Oi Pessoal!

No post anterior eu falei sobre a alternativa do processo de ETL com logic apps. Nesse post vou mostrar uma solução para monitorar a atividade do logic app. A motivação é centralizar a leitura e monitoramento dos dados, visto que podemos ter vários processos preparando arquivos de forma automatizada e se algo der errado, pode passar despercebido. Além disso quero mostrar a integração das api's do azure e isso pode nos trazer outros insights.

Recursos

É necessário que você já tenha algum conhecimento prévio em API's e Powerbi.

Logic app

Na página do logic app no portal do azure, podemos ver o histórico das execuções do logic app.

history-logic-app

Nós vamos trazer esse histórico para o nosso painel.

Api Rest do Azure

Na documentação oficial da microsoft você encontra uma visão geral sobre as api's .

E nesse post o autor mostrar como obter as credenciais para acessar as api's do azure.

Execute os passo desse tutorial para obter as credenciais:

Os procedimentos a seguir vão depender dessa etapa.

Get AAD Token

Além da api do histórico de execuções também vamos precisar da api para obter o token de acesso.

postman-token

Workflow Runs - Get

Clique aqui para acessar a documentação sobre a api que vamos consumir para obter o histórico de execuções do logic app.

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}/runs/{runName}?api-version=2016-06-01
Enter fullscreen mode Exit fullscreen mode


`
postman-logic-app-history

Power Bi

Vamos criar uma consulta em branco:
blank-query

Parâmetros

Agora crie um parâmetro para cada propriedade das credencias do azure, que obtivemos nas etapas anteriores.

power-bi-new-parameter

param-tenant-id

Depois de registrar todos os parâmetros o resultado será esse:

power-bi-parameters

Token

Crie uma consulta nula como o nome de tokenRequest, onde vamos executar o método para armazenar o token.

nam-token-request

Copie e cole o código abaixo na tela do editor avançado.

`

let authUrl = "https://login.microsoftonline.com/" & tenantId & "/oauth2/token",
    body = "grant_type=client_credentials&
           client_id=" & clientId  & "&
           client_secret=" & clientSecret  & "&
           resource=" & resource  &"",
getToken = Json.Document(Web.Contents(authUrl, [Headers=[#"Content-Type"="application/x-www-form-urlencoded"], Content=Text.ToBinary(body)]))
in getToken[access_token]
Enter fullscreen mode Exit fullscreen mode


`

token-request-code

Histórico de execuções do logic app

Crie uma consulta nula como o nome de historyRequest, onde vamos executar o método para obter o histórico de execuções do logic app.

Copie e cole o código abaixo na tela do editor avançado e não se esqueçam de renomear o
{resourceGroupName} e {workflowName} para os do seu aplicativo.

`

let
    historyRequest = let
    historyRequest = let
    token =  tokenRequest,
    url = "https://management.azure.com/subscriptions/" & subscriptionId &"/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}/runs?api-version=2016-06-01",
    history = Json.Document(
        Web.Contents(url,[
            Headers = [#"Authorization"= "Bearer " & token]
        ])
    )
in
   history
in historyRequest[value],
    #"Convertido para Tabela" = Table.FromList(historyRequest, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Column1 Expandido" = Table.ExpandRecordColumn(#"Convertido para Tabela", "Column1", {"properties", "id", "name", "type"}, {"properties", "id", "name", "type"}),
    #"properties Expandido" = Table.ExpandRecordColumn(#"Column1 Expandido", "properties", {"waitEndTime", "startTime", "endTime", "status", "correlation", "workflow", "trigger", "outputs"}, {"waitEndTime", "startTime", "endTime", "status", "correlation", "workflow", "trigger", "outputs"})
in
    #"properties Expandido"
Enter fullscreen mode Exit fullscreen mode


`
history-request-code

Como estamos executando consultas encadeadas armazenadas em parâmetros diferentes recebemos essa mensagem por questões de segurança do power bi:

error-securtity-message

Para contornar esse problema, vamos configurar o nível de privacidade para ignorar essa mensagem.

options

options-security

Ao atualizar a tela, você já consegue ver o resultado da api.
history-logic-app-result

Eu montei o painel abaixo como exemplo, e não vou detalhar essa etapa pois o foco aqui era as api do logic app do azure.

folder2

Esse é um pequeno exemplo do que podemos fazer com as apis do azure.

Espero que isso te ajude!

Top comments (2)

Collapse
 
jessilyneh profile image
Jessilyneh

achei bem legal voce trazer os pontos de forma bem objetiva, nao repetindo o que já teria de passo a passo publicado rm documentação. Assim, a pessoa que ja sabe ganha mais velocidade e, quem esta aprendendo, ja acostuma s ler documentação.

Collapse
 
silverio27 profile image
Lucas Silvério

Oi Jéssica! Valeu pelo feedback, vou continuar nessa pegada!