Automatically Pause PBI Embedded Capacity using Power Automate - Flow

Or how I call it: How not to f**k it up big time again.

Yeah, I f***ed it up big time.


I often use Embedded Power BI to test the fun stuff reserved to Premium users; I also warn my colleagues that use this capacity to remember turning it off as it becomes quite expensive to leave it on; well I left running the thing for two weeks.


How to avoid doing the same stupid mistake


After confessing my sin to my boss, and being thankful for not being killed I started investigating how to programmatically avoid doing knucklehead stuff; fortunately, we live in a world with APIs and Power Automate.


For doing this we will need to:


1) Register an app in Azure

2) Modifying the App

3) Create a customer connector in Flow

4) Create a flow


1. Registering an app the lazy way


Go to https://dev.powerbi.com/apps

Application type = Server side web application

Home page URL = https://www.powerbi.com

Redirect URL = https://www.powerbi.com


Select only one option in API, it is not relevant, click on "Register," after doing this, your Application ID and Secret will appear, copy them.


2. Modify the App


Go to the address below and select the app you just registered.

https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade


Once in there, go to the authentication section and modify the URI's to the following:


https://global.consent.azure-apim.net/redirect

https://management.azure.com/


If you ever lose your "Application ID" or "Client Secret" you can get them at "Overview" or "Certificates and Secrets", be aware that the secret can not be retrieved, you need to create a new one.


Next, in "API Permissions" you have to add the "Azure Service Management" permission of "user impersonation."




3. Create a custom connector.


Let's head to https://flow.microsoft.com/ and here create a custom connector from blank.


General: The first section refers to the name and description of the connector.

Security: Fill as shown below

Definition


The steps here are, (1) create a new action, (2) description and name of the action, (3) clinck on "import from sample," then do not forget to (4) select "Post", paste the following URL (5):

https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PowerBIDedicated/capacities/{dedicatedCapacityName}/{action}

Finally, we must click in import (6):

Test the connector

To test the connector, first, you will need to provide your credentials (1), then fill in the information of the parameters in the API, this information can be obtained from the Azure Portal.

4. Create a flow that suspends the capacity.


I know I can do the flow more sophisticated, but I wanted something quick no matter if it was dirty, so every six hours the flow goes and suspend the capacity. The second step is from the custom connector we created.

Well I hope you like it, plesae let me know if you would like me to expand on any of the steps.


The blog below was super useful to figure out this one.

https://www.pass.org/PASS-Blog/leverage-power-bi-automation-using-power-automate-and-api


And here is the Microsoft related documentation.

https://docs.microsoft.com/en-us/rest/api/power-bi-embedded/

https://docs.microsoft.com/en-us/rest/api/azure/









4 views

© 2018 Accurity BI

Switzerland - ZH & BE

Mexico - CDMX

contact@accuritybi.com

  • YouTube - Círculo Negro
  • Black LinkedIn Icon
  • Facebook - Círculo Negro
Subscribe our newsletter