Logic App backuper - Find correlations between Logic Apps, API connections and On-premises Data Gateways
This template deploys a SaaS solution to backup all your Logic App related resources information utilizing a Logic App and an Integration account:
-
A Logic apps which extracts the resource information via API requests and map the correlations between Logic Apps, API connection resources and On-premises Data Gateways.
-
A free tier Integration Account to enable Inline JavaScript code action in the Logic App.
Important: This template creates multiple Azure resources, which may incur costs. For more information, see Azure Logic Apps pricing and Pricing and billing models for Azure Logic Apps.
Tags: Logic Apps, Integration Account, API connections, On-premises Data Gateways
-
An Azure account and subscription. If you don't have a subscription, Sign up for a free Azure account.
-
A resource group which the Logic App and the Integration Account will be deployed into. (Please make sure there is no existing free tier Integration Account in this resource group.)
-
Make sure the account which you are using to for deployment has the permissions to add role assignments on a subscription scope.
-
Click the Deploy to Azure button at the top of this page, and then put in the parameter values in the opened broswer page.
-
Navigate to the Identity blade and Add a role assignment to the new Logic App with System Managed Identity.
-
Assign a Reader role to the Logic App on a subscription scope.
With the pre-built definitions, the deployed Logic App is capable of retrieve and process the correlations into following format.
[
...
{
LogicApp:"/subscriptions/<subId>/resourceGroups/<resourceGroup>/providers/Microsoft.Logic/workflows/<flowName>",
Connection:"/subscriptions/<subId>/resourceGroups/<resourceGroup>/providers/Microsoft.Web/connections/<connectionName>",
Gateway:"/subscriptions/<subId>/resourceGroups/<resourceGroup>/providers/Microsoft.Web/connectionGateways/<gatewayName>"
}
...
]
Using the data structure of the output from "Execute JavaScript code" action, we have many options to deliver the information to a destination system.
-
Add a Create CSV table action and a Send an email (V2) action to send the formatted data to an inbox periodically.
-
Add a Create CSV table action and a Create blob action to backup the correlation csv file to a blob storage container.
-
Use a For each loop and a Insert row action to populate the data into a Azure SQL database table.
Import: Please make sure you have created suitable table with 3 columns in type of CHAR to store the extracted data.
-
Logic Apps with two or more API connections will be processed into mutiple records.
[ ... { LogicApp:"LogicApp1", Connection:"Connection1", Gateway:"Gateway1" }, { LogicApp:"LogicApp1", Connection:"Connection2", Gateway:null } ... ]
-
Orpahn API connections will be recorded with null Logic App property.
[ ... { LogicApp:null, Connection:"OrphanConnection1", Gateway:"Gateway1" }, { LogicApp:null, Connection:"OrphanConnection2", Gateway:null } ... ]
For detailed walkthrough on the Logic App structure and the methodlogy used for data processing. Please visit my blog here.
In the upcoming series, we will talk about how to retrieve Logic App information accross subscriptions and backup all correlations for disaster recovery solution.
Learn more about Azure Logic Apps: