DEV Community

loading...
Cover image for Lendo Api's do azure com Power Bi - exemplo histórico logic apps

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

Lucas Silvério
dotnetcore + angular + dachshund
・4 min read

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!

Discussion (2)

Collapse
dev_jessica_felix profile image
Jéssica Félix

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 Author

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