TIP
💡 Learn more : Azure Logic Apps Documentation (opens new window).
This post brought to you by afnw35342 (opens new window). His LinkedIn profile is available here (opens new window).
# Explicitly Name Logic API Connections in ARM Templates
When creating Logic App API Connections, Azure defaults to rather bland, non-descriptive names such as office365
or keyvault
. After creating a few of them, positively identifying them gets confusing. (Separate connections should be created as each Logic App should have a unique, system-assigned identity.)
# 1. Edit the Connection Specification
In the example below, the name
and displayName
segments are changed to calculated values using [variables('vEmailSender')]
.
{
"type": "Microsoft.Web/connections",
"apiVersion": "2016-06-01",
"name": "[variables('vEmailSender')]",
"location": "[parameters('pLocation')]",
"properties": {
"api": {
"id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('pLocation'), '/managedApis/office365')]"
},
"displayName": "[variables('vEmailSender')]"
}
}
2
3
4
5
6
7
8
9
10
11
12
(Parameters are equally valid here.)
It can cause confusion that both the name
and displayName
segments also default to office365
. Do not change the api/id
segment!
# 2. Modify the dependsOn
segment of the Logic App
{
...
"dependsOn": [
"[resourceId('Microsoft.Web/connections', variables('vEmailSender'))]"
]
...
}
2
3
4
5
6
7
# 3. Modify the $connections
used by the Logic App
The connection definition used in the Logic App must match the resource definition in (1).
{
"$connections": {
"value": {
"office365": {
"connectionId": "[resourceId('Microsoft.Web/connections', variables('vEmailSender'))]",
"connectionName": "[variables('vEmailSender')]",
"id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/',parameters('pLocation'),'/managedApis/office365')]"
}
}
}
}
2
3
4
5
6
7
8
9
10
11
Notice how connectionId
is a concatenation of the resource type and name, and the id
is the same as the api/id
.
# Conclusion
It wasn't entirely clear what specifically needed changing in what locations to modify the defaults. Hopefully, this tip will save you the hit-n-miss process I went through.