This post is basically just a way to refresh my memory when in the next 3 months I completely forget how easy this is. Here’s how you can leverage PowerShell to manage your Logic Apps and their connections more effectively.
# Define variables $resourceGroupName = 'YourResourceGroup' $logicAppName = 'YourLogicAppName' $templateFilePath = 'path/to/your/template.json' $parametersFilePath = 'path/to/your/parameters.json' # Deploy the Logic App New-AzResourceGroupDeployment -Name DeployLogicApp ` -ResourceGroupName $resourceGroupName ` -TemplateFile $templateFilePath ` -TemplateParameterFile $parametersFilePath
If you need a template example or parameters example, check the end of this post!!
Managing Logic App Connections with PowerShell
PowerShell can also simplify the creation and management of Logic App connections, making it easier to connect to services like Office 365 or custom APIs:
# Creating a connection to Office 365 $connectionName = 'office365Connection' $connectionParams = @{ 'token:TenantId' = '<YourTenantId>'; 'token:PrincipalId' = '<YourPrincipalId>'; 'token:ClientSecret' = '<YourClientSecret>' } New-AzResource -ResourceType 'Microsoft.Web/connections' -ResourceName $connectionName ` -ResourceGroupName $resourceGroupName -Location 'eastus' ` -Properties $connectionParams
Sample Template and Parameter Json Files:
Template:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "resources": [ { "type": "Microsoft.Logic/workflows", "apiVersion": "2019-05-01", "name": "[parameters('logicAppName')]", "location": "[parameters('location')]", "properties": { "state": "Enabled", "definition": { "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", "contentVersion": "1.0.0.0", "triggers": { "When_a_HTTP_request_is_received": { "type": "Request", "kind": "Http", "inputs": { "method": "POST", "schema": {} } } }, "actions": { "Send_an_email": { "type": "ApiConnection", "inputs": { "host": { "connection": { "name": "@parameters('$connections')['office365']['connectionId']" } }, "method": "post", "body": { "Subject": "Email Subject Here", "Body": "<p>Email Body Here</p>", "To": "example@example.com" }, "path": "/Mail" } } }, "outputs": {} }, "parameters": { "$connections": { "defaultValue": {}, "type": "Object" } } } } ], "parameters": { "logicAppName": { "defaultValue": "YourLogicAppName", "type": "String" }, "location": { "defaultValue": "eastus", "type": "String" } } }
Parameters:
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "logicAppName": { "value": "YourLogicAppName" }, "location": { "value": "eastus" } } }