Power BI: How to call API through VPN in Power BI - python-3.x

For my Pro Power BI Project, I need to consume external API calls through set of automated endpoint calls.
However these set of APIs are accessible only over Private VPN Network and require OpenVPN to access them.
Below is error snapshot in Power BI:
Would Data Dateway resolve above issue or would another alternative - middleware script be required?

First that screenshot you provided looks like it is from Power BI Desktop. The on-premises data gateway is unrelated to Power BI Desktop refreshes. So make sure your laptop is connected to OpenVPN when you refresh in Power BI Desktop.
Once you are happy with the report you have built and want to publish it to the Power BI Service you will need to setup an on-premises data gateway so that the scheduled refreshes will be able to talk to your source APIs over OpenVPN. Typically you install the “standard mode” (see the link above for more details) and put it on a Virtual Machine or server which is always running (rather than a laptop which can be shut down at night during the scheduled refresh). But if you don’t need scheduled refresh during hours when your laptop is off, I suppose you could use “personal mode”. Personal mode isn’t recommended generally.
Make sure OpenVPN is connected on the server where the on-premises data gateway software is installed. If this VPN connection disconnects after a few hours then ask your IT team for a better way to get a Virtual Machine which is on the same network as the source API or on a network which has a site-to-site “always connected” type VPN connection.
You will need to install and configure the gateway software, create a data source with credentials for your source API, ensure your user account is a “User” on that gateway data source, then republish the report from Power BI Desktop so it will bind to the gateway data source and use it during refresh.

Related

PowerBI On-Premises Data Gateway through a VM for customers?

I work in a small company and we develop PowerBI dashboards for a few clients. Data sources tend to change with each client from MySQL, MariaDB, SQL Server, Excel etc. Most clients want to setup scheduled refreshes but in order to do that we need a Data Gateway. So far i've used my machine as a gateway but that requires my computer to be on all the time which is not ideal. Since our clients data is usually stored in their own networks I believe we need an enterprise data gateway to manage all those scheduled refreshes for our current and future projects.
We don't have any physical on prem infrastructure, most of the company's developemnts are managed through AWS linux cloud servers. From what I've read a possible solution is to have a VM running 24/7 with the enterprise data gateway installed, although this seems a bit expensive taking into consideration Azure VM prices. Is there any other solution to my situation or is a VM the only path I can take?
There is no other option available, On prem data gateway requires installation and configuration to connect your data sources to powerBI, for this we require onprem machine or a VM in azure.
As you are aware the recommended machine configuration is:
An 8-core CPU
8 GB of memory
A 64-bit version of Windows 8 or Server 2012 R2 or later
Solid-state drive (SSD) storage for spooling.
If in case, your resources are running in azure you can use vnet data gateway,It doesn’t require any installation Create virtual network data gateways

Power BI Desktop cannot connect to azure SQL

I am trying to establish a connection to an azure SQL database from Power BI Desktop. I enter the server and database names as per the following screenshot:
I keep getting the following error:
Additionally, I am able to connect form the same Power BI Desktop to another azure SQL database on the same azure SQL server.
I checked for typos, for the azure firewall settings including my client IP and for "Allow access to Azure services" set to ON. The fact that one of the databases in the same server is connecting correctly make me consider if there is a limitation on Power BI desktop to one only database per azure SQL server.
I was finally able to establish the connection with the azure SQL server by replacing Server field above with: tcp:myServerName.database.windows.net,1433 and leaving the Database field empty.
This allowed me to connect to both databases in the server and didn't request credentials.
Somehow power pi desktop was not letting me create a new connection to another database under the same server. This has not been made clear in Power BI desktop documentation and examples.

Installing Power BI Gateway on-prem server with Azure Data Management Gateway?

I have an on-prem server that currently has an Azure Data Management Gateway installed on it. Can I also install the Power BI Enterprise Gateway on that same on-prem server? If not, how should I go about installing the Power BI Enterprise Gateway?
I don't see any reason technically why you couldn't install on your Azure DMG however depending on the specifications of that server and the amount of people you expect to use your PowerBI gateway it might be better on a separate server.
The documentation provides a really good walkthrough for installing the gateway... https://powerbi.microsoft.com/en-us/documentation/powerbi-gateway-enterprise/#download-and-install-the-power-bi-gateway---enterprise

error connecting Power BI enterprise gateway on an azure machine

I have created a virtual machine on Azure using Image SQL Server Data Center for SQL Server 2014, and created some SSAS cubes on that machine. I am able to access cubes from management studio. I want to access those cubes from Power Bi. I have installed Power Bi gateway on that machine, and connected cubes using live connect method. I further installed Power Bi Enterprise gateway to enable refresh of my cubes to Power BI cloud. Now when I am trying to connect to SSAS on Azure machine using PBI Gateway I am not able to connect, it gives me error "There are currently no logon servers available to service the logon request." On the other hand when I am trying to connect to SQL Server database engine on the same machine from PBE gateway, I am able to connect without any problem. The azure machine is not part of a domain yet, is this may be a reason why I am getting error connecting to SSAS instance from Power BI gateway.
I made this machine an active directory domain controller, and so this machine is now part of an active directory. Now I am able to connect SSAS instance on this machine to PBI Enterprise gateway, but my problem did not end here, I am still not able to refresh my dataset which I have sourced from the SSAS cube on the same machine. I am getting error "Data source access error. Please contact gateway administrator"
Further I added a new user to Active directory, with same name as I was having an account in Power BI. I further changed UPN of that user in Active directory to that of my Power BI User. Let say name of my domain was domain, and upn was domain.local, and new user I created in AD was NDubey#domain.local, I chnaged the UPN to NDubey#ABC.com, as this was my login name in Power BI. After that I was able to see data in my datasets populated from SSAS cubes.
Verify that the Network Interface for the VM is using the expected Network Security Group, and the Network Security Group has the correct Inbound and Outbound Security Rules for the ports used by the PBI Gateway.

Connect local network with azure

I don't know how to begin on the following. I will explain with the picture below what i want to do.
Like you so you have 2 parts. The local part and the azure part. The azure part is my part. The local network could be a customer, ....
What i went to do is running a service on the pc's and send that data to the local server/gateway. But how can i detect to what server it needs to connect. I don't install any service on the local pc's, that does the customer itself. But i don't want that he needs to do configuration. Just like they install the server/gateway part.
I will run a webservice on azure that gets information from the server/gateway on the local network. So thats no problem. On azure there are some other application that will process the messages.
Also how can you send some message back to the local network? When you say on azure ping the other local computer on the network. You should send a message to the server/gateway on your local network. But how?
So i have 2 questions(see above for more information):
Connecting from the clients to the server/gateway
Send some information back to the local netwerk
You can use Virtual Network, Azure Connect to create a "connection" or "hybrid cloud" between the PCs and the Azure cloud. However, if you are talking about web based/simple messaging and the PCs have internet connectivity why not just route the messages through a secure (SSL/TLS) connection to the cloud?
For broadcasting/push-type notifications, please look at SignalR (http://signalr.net/). Microsoft is making that part of the ASP.NET platform: http://channel9.msdn.com/Events/Build/2012/3-034
It has some real nice functionality like gracefully, falling back on multiple mechanisms if advanced things like WebSockets are not supported by the server/client. This is an ideal solution and super scalable, since it is server based and very light on the client.
If you need to connect only one or more services running on you local network and make them available publicly via azure cloud.
The most straight forward solution i found was to use the services bus. Its require nearly no modification to you business network.

Resources