I have something similar to the above when parameterising parameters.json in relation to KeyVault
If I add the following to parameters.json, the Logic App workflow runs successfully but if I open it in the designer I cannot view the KeyVault action and in fact if I try and make changes it gives me an error about KeyVault tokens.
"value": {
"api": {
"id": "/subscriptions/@appsetting('subscriptionId')/providers/Microsoft.Web/locations/@appsetting('resourceLocation')/managedApis/keyvault"
},
"connection": {
"id": "/subscriptions/@appsetting('subscriptionId')/resourceGroups/@appsetting('resourceGroup')/providers/Microsoft.Web/connections/@appsetting('keyVaultId')"
},
If I add the following to parameters.json it allows me to view the Logic App workflow in the designer but when I run it I get 'The 'managedApiConnections' property in connection.json has a value that cannot be parsed'
"value": {
"api": {
"id": "@appsetting('keyVaultApiId')"
},
"connection": {
"id": "@appsetting('keyVaultConnectionId')"
},
So in the end I have two parameters.json, one for local dev that just has the strings without any @appsetting substitution that I can edit and run locally and then the other one for Azure environments that is setup as per the first parameterised snippet above. As part of our DevOps approach, we use this one for deployment.